可靠的采集神器(11月23日,阿里正式开源可观测数据采集器iLogtail)
优采云 发布时间: 2021-12-18 23:15可靠的采集神器(11月23日,阿里正式开源可观测数据采集器iLogtail)
简介:11月23日,阿里正式开源了可观察数据采集器iLogtail。作为阿里巴巴内部可观察数据采集的基础设施,iLogtail承载了阿里巴巴集团的工作以及蚂蚁的日志、监控、trace、事件等可观察数据采集。iLogtail 运行在服务器、容器、K8s、嵌入式等多种环境中,支持采集数百个可观察数据。已经有数千万的安装量,并且每天有 采集 数十 PB 的数据可用。观察数据广泛应用于在线监控、问题分析/定位、运行分析、安全分析等各种场景。
作者 | 袁毅
来源 | 阿里巴巴技术公众号
11月23日,阿里正式开源了可观察数据采集器iLogtail。作为阿里巴巴内部可观察数据采集的基础设施,iLogtail承载了阿里巴巴集团的工作以及蚂蚁的日志、监控、trace、事件等可观察数据采集。iLogtail 运行在服务器、容器、K8s、嵌入式等多种环境中,支持采集数百个可观察数据。已经有数千万的安装量,并且每天有 采集 数十 PB 的数据可用。观察数据广泛应用于在线监控、问题分析/定位、运行分析、安全分析等各种场景。
一个 iLogtail 和可观察性
可观察性并不是一个新概念,而是从IT系统中的监控、故障排除、稳定性构建、运行分析、BI、安全分析等逐步演化而来。与传统监控相比,可观察性是核心进化是采集尽可能多的可观察数据以达到白盒的目的。iLogtail的核心定位是可观察数据的采集器,可以采集尽可能多的采集各类可观察数据,帮助可观察平台打造各种上层应用场景。
2. 阿里巴巴可观察数据采集的挑战
对于可观察数据采集,有很多开源代理,比如Logstash、Filebeats、Fluentd、Collectd、Telegraf等,这些代理的功能非常丰富,这些代理和一些扩展的组合基本可以满足各种内部数据采集的要求。但由于性能、稳定性、控制等关键挑战不尽人意,我们最终选择进行自研:
1、资源消耗:目前阿里有上百万台主机(物理机/虚拟机/容器),每天产生几十PB的可观察数据,每1M减少内存,每1M/s性能下降。改善对于我们的资源节约来说是巨大的,节约的成本可能是几百万甚至几千万。目前很多开源代理的设计更注重功能而不是性能,改造现有的开源代理基本不可行。例如:
2、 稳定性:稳定性是一个永恒的话题。数据的稳定性采集,除了保证数据本身采集的准确性外,还要保证采集的Agent不能影响业务应用,否则影响是灾难性的。至于稳定性建设,除了Agent本身的基本稳定性外,还有很多目前开源Agents还没有提供的特性:
3、 可控:可观测数据的应用范围很广。几乎所有的业务、运维、BI、安全等部门都会用到它,各种数据都会在一台机器上生成。同一台机器产生的数据也会被多个部门的人使用。例如,在 2018 年,我们计算出平均而言,一个虚拟机上有 100 多种不同类型的数据。采集,设计了10多个不同部门的人想要使用这些数据。除了这些,还有很多其他的企业级功能需要支持,比如:
基于以上背景和挑战,我们从2013年开始逐步优化和改进iLogtail,解决性能、稳定性、可控性等问题。我们经历了多次double十一、double十二、 Spring的考验联欢晚会红包等物品。目前iLogtail支持Logs、Traces、Metrics等多种数据的统一采集。核心功能如下:
三大 iLogtail 发展历程
秉承阿里人简约的特点,iLogtail的命名也很简单。我们一开始就期望有一个统一的工具来记录Tail,所以叫做Logtail。加“i”的原因主要是当时使用了inotify技术。, 可以在毫秒级别控制日志采集的延迟,所以最后称为iLogtail。从2013年开始,iLogtail的整个发展过程大致可以分为三个阶段,分别是飞天5K阶段、阿里集团阶段和云原生阶段。
1个飞天5K舞台
作为中国云计算领域的里程碑,2013年8月15日,阿里巴巴集团正式运营5000(5K)服务器规模的“飞天”集群,成为国内首家自主研发大型云计算的企业。 - 规模的通用计算平台。全球首家对外提供5K云计算服务能力的公司。
飞天5K项目始于2009年,从最初的30台逐步发展到5000台,不断解决系统的规模、稳定性、运维、容灾等核心问题。这个阶段iLogtail诞生的时候,是从5000台机器的监控、问题分析、定位(现在称为“可观察性”)开始的。在从 30 到 5000 的飞跃中,可观察到的问题面临诸多挑战,包括单机瓶颈、问题复杂性、故障排除的难易程度和管理复杂性。
在5K阶段,iLogtail本质上解决了单机、小规模集群到*敏*感*词*运维监控的挑战。iLogtail现阶段的主要特点是:
2 阿里小组赛
iLogtail在阿里云飞天5K项目中的应用,解决了日志统一采集和监控的问题。当时阿里巴巴集团、蚂蚁金服等还缺乏统一的一、可靠日志采集系统,所以我们开始推广iLogtail作为集团和蚂蚁的日志采集基础设施。从一个相对独立的项目比如5K到一个全集团的应用,并不是简单的复制问题,而是我们要面对的是更多的部署、更高的要求、更多的部门:
百万级运维问题:此时整个阿里巴巴和蚂蚁的物理机和虚拟机都超过了百万。我们希望用1/3的人力来运营和维护百万级的Logtail。更高的稳定性:iLogtail 最初,采集的数据主要用于故障排除。集团广泛的应用场景对日志可靠性的要求越来越高,比如计费计量数据和交易数据,同时也需要满足十一、十二级超大压力测试的双重要求数据流。多部门、多团队:从服务5K团队到近千个团队,不同的团队会使用不同的iLogtail,一个iLogtail也会被多个不同的团队使用。
经过与阿里、蚂蚁数年的合作打磨,iLogtail在多租户和稳定性方面取得了长足的进步。iLogtail现阶段的主要特点是:
日志保存采集方案原理(详见《iLogtail技术分享(一):轮询+Inotify组合日志保存采集方案》)
多租户隔离的整体流程(详见《iLogtail技术分享(二):多租户隔离技术+双十一实战效果》)
3 云原生阶段
随着阿里巴巴所有IT基础设施的全面云化,以及iLogtail产品SLS(日志服务)在阿里云上的正式商用,iLogtail开始全面拥抱云原生。从阿里巴巴内部的商业化和对外提供各行业公司的服务来看,iLogtail面临的挑战重点不是性能和可靠性,而是如何适应云原生(容器化、K8s、适应云环境)以及如何兼容有了开源协议,碎片化的需求如何处理。这个阶段是iLogtail发展最快的时期,经历了很多重要的变化:
iLogtail Kubernetes日志采集原理(详见《Kubernetes Log解析采集原理》)
iLogtail插件系统整体流程(详见《iLogtail插件系统介绍》)
四大开源背景与期待
闭源构建的软件永远跟不上时代的潮流,尤其是在如今的云原生时代。我们坚信开源是iLogtail最好的发展策略,也是释放其最大价值的方式。作为可观察领域最基础的软件,我们开源iLogtail,希望与开源社区共同构建,持续优化,努力成为世界一流的可观察数据采集器。对于 iLogail 未来的发展,我们期待:
与其他开源采集软件相比,iLogtail在性能和资源消耗方*敏*感*词*有一定的优势。与开源软件相比,在数千万次部署、每天数十PB数据的规模下,它为我们减少了100TB的内存和一年。1 亿 CPU 核心小时。我们也希望这个采集软件可以为更多的企业提高资源效率,实现可观察数据的“共同繁荣”采集。目前iLogtail只在阿里巴巴内部和极少数云上的公司(虽然有几万,但这个数字在全球几千万家公司面前还是很小的),相对来说还有几个场景。我们希望有更多不同行业、不同特点的公司能够使用iLogtail,并提出更多数据源、处理、输出目标的需求,丰富iLogtail支持的上下游生态。性能和稳定性是iLogtail最基本的追求。我们也希望通过开源社区吸引更多优秀的开发者共同构建iLogtail,继续提升这个可观察数据的性能和稳定性采集器。
原文链接