千万级可观测数据采集器--iLogtail代码完整开源
可观测性数据采集挑战
高性能,低开销:现代应用程序通常在数据中心、公共云和边缘处汇集了数以千计的服务器、虚拟机、容器中运行,采集Agent的每一点性能开销都会被数以千计地放大。目前众多开源Agent的设计更多的是偏重功能而非性能,单核处理性能普遍在2-10M/s左右,而我们希望能达到单核100M/s的性能。在采集目标增加、数据量增加、采集延迟、服务端异常等情况下,开源Agent内存都会呈现爆炸式增长,而我们希望即使在各种环境下,内存也能处在较低的水位。 采集稳定准确,故障多级隔离:可观测性需要比被观测的系统至少可靠一个数量级。数据采集Agent的稳定性,除了保证数据本身采集的准确性外,还需要保证不能影响业务应用,否则将带来灾难性的后果。另一方面,无论怎样出现问题,都需要尽可能的隔离问题,例如一个Agent上有多个采集配置,一个配置出问题,不能影响其他配置。 大规模配置企业级管控:可观测数据的应用范围广泛,一个企业内部往往存在大量配置,需要Agent支持中心化、自动化配置管理能力,代替手工登录机器修改配置的方式,并且能够保证配置Reload期间数据不丢不重。当Agent有多个采集配置时,合理安排资源,既要优先把内存带宽等资源供给高优先级配置,又要确保低优先级的配置不被“饿死”,其需要在波峰过后有足够的Burst能力快速追齐数据。 更原生友好的K8s支持:K8s提供了强悍的运维部署、弹性伸缩、故障恢复能力,极大地便利了分布式系统的开发和管理,然而日志采集的问题也随之而来。K8s多样的数据输出使得同一个Agent需要同时支持采集宿主机日志、容器内日志、容器stdout等多种数据源。K8s的对业务部署的弹性伸缩能力,要求Agent具备容器动态发现、打标的能力,同时也对如何保证数据采集完整性提出了更高的要求。
iLogtail简介
iLogtail发展历程
iLogtail优势
C++内核重要特性
日志文件采集
容器文件采集
无锁化事件处理
多租户隔离
基于Pipeline的新版配置方式
enable: true
inputs:
Type: file_log
LogPath: /log
FilePattern: simple.log
flushers:
Type: flusher_stdout
后续展望
相关资料
GitHub: https://github.com/alibaba/ilogtail
社区版用户手册:https://ilogtail.gitbook.io/ilogtail-docs
企业版官网:https://help.aliyun.com/document_detail/65018.html
技术人如何打造个人品牌影响力?五大顶级创作者独家传授!
开发者社区联合InfoQ特别策划《技术创作训练营》,2位金牌导师+5位顶级作者独家传授写作方法论,带您开启高质量技术创作之路。
点击阅读原文查看详情。
评论