采集器采集(11月23日,阿里开源可观测数据采集器iLogtail)
优采云 发布时间: 2021-12-10 22:23采集器采集(11月23日,阿里开源可观测数据采集器iLogtail)
WOT全球科技创新大会2022,门票40折抢购!购票立减2320元!
11月23日,阿里正式开源了可观察数据采集器iLogtail。作为阿里巴巴内部可观察数据采集的基础设施,iLogtail承载了阿里巴巴集团的工作以及蚂蚁的日志、监控、trace、事件等可观察数据采集。iLogtail 运行在服务器、容器、K8s、嵌入式等多种环境中,支持采集数百个可观察数据。已经有数千万的安装量,并且每天有 采集 数十 PB 的数据可用。观察数据广泛应用于在线监控、问题分析/定位、运行分析、安全分析等各种场景。
一. iLogtail 和可观察性
可观察性并不是一个新概念,而是从IT系统中的监控、故障排除、稳定性构建、运行分析、BI、安全分析等逐步演化而来。与传统监控相比,可观察性是核心进化是采集尽可能多的可观察数据以达到白盒的目的。iLogtail的核心定位是可观察数据的采集器,可以采集尽可能多的采集各类可观察数据,帮助可观察平台打造各种上层应用场景。
二. 阿里巴巴可观察数据采集 挑战
对于可观察数据采集,有很多开源代理,比如Logstash、Filebeats、Fluentd、Collectd、Telegraf等,这些代理的功能非常丰富,这些代理和一些扩展的组合基本可以满足各种内部数据采集的要求。但由于性能、稳定性、控制等关键挑战不尽人意,我们最终选择进行自研:
1、资源消耗:目前阿里有上百万台主机(物理机/虚拟机/容器),每天产生几十PB的可观察数据,每1M减少内存,每1M/s性能下降。改善对于我们的资源节约来说是巨大的,节约的成本可能是几百万甚至几千万。目前很多开源代理的设计更注重功能而不是性能,改造现有的开源代理基本不可行。例如:
2、 稳定性:稳定性是一个永恒的话题。数据的稳定性采集,除了保证数据本身采集的准确性外,还要保证采集的Agent不能影响业务应用,否则影响是灾难性的。至于稳定性建设,除了Agent本身的基本稳定性外,还有很多目前开源Agents还没有提供的特性:
3、 可控:可观测数据的应用范围很广。几乎所有的业务、运维、BI、安全等部门都会用到它,各种数据都会在一台机器上生成。同一台机器产生的数据也会被多个部门的人使用。例如,在 2018 年,我们计算出平均而言,一个虚拟机上有 100 多种不同类型的数据。采集,设计了10多个不同部门的人想要使用这些数据。除了这些,还有很多其他的企业级功能需要支持,比如:
基于以上背景和挑战,我们从2013年开始逐步优化和改进iLogtail以解决性能、稳定性、可控性等问题,经历了多次双十一、双十二、 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
5K (2013)
监测指标
通过单机飞天神农来聚集系统状态。只能支持1000个单位以内的指标聚合。
数据在本地生成,由iLogtail采集到SLS服务器,包括: SLS根据日志处理需求提供三种处理方式:
日志查询
登录机器进行grep,或者使用pssh工具批量grep。如果速度慢,可能会清理日志,影响机器性能,存在误操作/安全风险。
链路故障排除
在所有机器上只能使用一个 JobID 进行 grep。
离线分析
使用脚本rsync将每台机器上的日志导入离线系统进行计算。性能差,运维管理复杂。
在5K阶段,iLogtail本质上解决了单机、小规模集群到*敏*感*词*运维监控的挑战。iLogtail现阶段的主要特点是:
2. 阿里小组赛
iLogtail在阿里云飞天5K项目中的应用,解决了日志统一采集和监控的问题。当时阿里巴巴集团、蚂蚁金服等还缺乏统一的一、可靠日志采集系统,所以我们开始推广iLogtail作为集团和蚂蚁的日志采集基础设施。从一个相对独立的项目比如5K到一个全集团的应用,并不是简单的复制问题,而是我们要面对的是更多的部署、更高的要求、更多的部门:
经过与阿里、蚂蚁数年的合作打磨,iLogtail在多租户和稳定性方面取得了长足的进步。iLogtail现阶段的主要特点是:
日志保存采集方案原理(详见《iLogtail技术分享(一):Polling+Inotify采集方案组合下的日志保存》)
多租户隔离的整体流程(详见《iLogtail技术分享(二):多租户隔离技术+双十一实战效果》)
3.云原生阶段
随着阿里巴巴所有IT基础设施的全面云化,以及iLogtail产品SLS(日志服务)在阿里云上的正式商用,iLogtail开始全面拥抱云原生。从阿里巴巴内部商业化到对外提供各行各业的服务,iLogtail面临的挑战重点不再是性能和可靠性,而是如何适应云原生(容器化、K8s、适应云环境)以及如何兼容开源协议,碎片化需求如何处理。这个阶段是iLogtail发展最快的时期,经历了很多重要的变化:
iLogtail Kubernetes日志采集原理(详见《Kubernetes Log解析采集原理》)
iLogtail插件系统整体流程(详见《iLogtail插件系统介绍》)
四.开源背景和期望
闭源构建的软件永远跟不上时代的潮流,尤其是在如今的云原生时代。我们坚信开源是iLogtail最好的发展策略,也是释放其最大价值的方式。作为可观察领域最基础的软件,我们开源iLogtail,希望与开源社区共同构建,持续优化,努力成为世界一流的可观察数据采集器。对于 iLogail 未来的发展,我们期待:
链接摘要:
1)阿里官方开源可观察数据采集器iLogtail:
2) 《iLogtail技术分享(一):Polling + Inotify 日志保存组合采集方案》:
3)《iLogtail技术分享(二):多租户隔离技术+双十一实战效果》:
4) 《Kubernetes 日志 采集 原理解析》:
5) 《iLogtail 插件系统介绍》:%26designs/Overview.md
【编辑推荐】
基于Zabbix的开源监控探索与实践。在用“华为浏览器”查看鸿蒙开源的时候,我们会带来一个带有微软新开源工具的“导航树”来分析Android、Linux和Chromium的性能。Apple 将推出重新设计的开源主页。开源技术会吸引你的注意力