fx|阿里千万实例可观测采集器 - iLogtail 正式开源( 二 )


配置的远程管理:在大规模场景下 , 手工登录机器修改配置基本没有可行性 , 因此需要一套配置的图形化管理、远程存储、自动下发的机制 , 而且还要能够区分不同的应用、不同的Region、不同的归属方等信息 。 同时因为涉及到远程配置的动态加卸载 , Agent还需要能够保证配置Reload期间数据不丢不重 采集配置优先级:当一台机器上有多个采集配置在运行时 , 如果遇到资源不足的情况 , 需要区分每个不同的配置优先级 , 资源优先供给高优先级的配置 , 同时还要确保低优先级的配置不被“饿死” 降级与恢复能力:在阿里 , 大促、秒杀是家常便饭 , 在这种波峰期间 , 可能有很多不重要的应用被降级 , 同样对应应用的数据也需要降级 , 降级后 , 在凌晨波峰过后 , 还需要有足够的Burst能力快速追齐数据 数据采集齐全度:监控、数据分析等场景都要求数据准确度 , 数据准确的前提是都能及时采集到服务端 , 但如何在计算前确定每台机器、每个文件的数据都采集到了对应的时间点 , 需要一套非常复杂的机制去计算
基于以上的背景和挑战下 , 我们从2013年开始 , 不断逐渐优化和改进iLogtail来解决性能、稳定性、可管控等问题 , 并经历了阿里多次双十一、双十二、春晚红包等项目的考验 。 目前iLogtail支持包括Logs、Traces、Metrics多种类型数据的统一收集 , 核心的特点主要如下:
支持多种Logs、Traces、Metrics数据采集 , 尤其对容器、Kubernetes环境支持非常友好 数据采集资源消耗极低 , 单核采集能力100M/s , 相比同类可观测数据采集的Agent性能好5-20倍 高稳定性 , 在阿里巴巴以及数万阿里云客户生产中使用验证 , 部署量近千万 , 每天采集数十PB可观测数据 支持插件化扩展 , 可任意扩充数据采集、处理、聚合、发送模块 支持配置远程管理 , 支持以图形化、SDK、K8s Operator等方式进行配置管理 , 可轻松管理百万台机器的数据采集 支持自监控、流量控制、资源控制、主动告警、采集统计等多种高级管控特性 三 iLogtail发展历程 【fx|阿里千万实例可观测采集器 - 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主要的特点有:
功能:实时日志、监控采集 , 日志抓取延迟毫秒级 性能:单核处理能力10M/s , 5000台集群平均资源占用0.5%CPU核 可靠性:自动监听新文件、新文件夹 , 支持文件轮转 , 处理网络中断 管理:远程Web管理 , 配置文件自动下发 运维:加入集团yum源 , 运行状态监控 , 异常自动上报 规模:3W+部署规模 , 上千采集配置项 , 日10TB数据 2 阿里集团阶段