1.一文详解K8s环境下Job类日志采集方案
2.iLogtail 社区开源之夏活动来了!源码
3.OpenKruise x iLogtail:管理可观测数据采集Sidecar容器最佳实践
4.一文详解用eBPF观测HTTP
5.Logtail心跳问题排查手册(主机场景)
6.iLogtail社区版使用入门 - iLogtail日志处理实战
一文详解K8s环境下Job类日志采集方案
针对在Kubernetes(K8s)环境中,源码面对Job容器的源码短生命周期和高并发特性,实现稳定、源码高效日志采集的源码挑战,本文将深入探讨并比较多种日志采集方案,源码电视php代理源码以帮助开发和运维团队优化日志管理流程,源码确保关键业务操作的源码可见性和问题追踪能力。本文旨在提供一套全面的源码方案选择指南,以适应不同场景下的源码Job容器日志采集需求。 ### Job容器的源码特点与挑战 Job容器通常具有以下特点:生命周期短、增删频繁、源码并发量高。源码这使得传统的源码日志采集策略难以应对,特别是源码针对标准输出和容器文件的采集需求。在K8s环境下,高效、稳定地采集Job容器的日志成为了一个重要的技术挑战。 ### 日志采集方案的关键考虑点 在选择日志采集方案时,关键需要考虑以下几点:容器发现速度:确保在容器生命周期结束前能及时发现和开始采集。
开始采集延时:最小化从容器创建到数据开始被采集的时间,避免数据丢失。
弹性支持:方案需灵活支持Job容器的高并发和动态扩缩容需求。
### 常见日志采集方案对比 #### 1. DaemonSet采集方式 利用K8s的DaemonSet控制器在每个节点上部署iLogtail容器,实现对节点上所有容器的日志统一采集。该方式资源开销低,支持完整的容器元信息,对业务容器无侵入。然而,对于Job容器,其容器发现延时和开始采集延时相对较大,约为5-8秒,且弹性支持受限。 #### 2. Sidecar采集方式 在业务Pod内部同时部署业务容器和采集容器,利用共享存储卷实现数据采集。这种方式支持立即发现容器,避免数据丢失,弹性支持优秀。但资源消耗较高,元信息需要手动暴露,存在一定的侵入性。 #### 3. ECI弹性容器产品采集方式 ECI(弹性容器实例)提供了一种小型虚拟机解决方案,适用于突发高并发场景。其采集方式与DaemonSet相似,但通过静态容器信息发现机制,知乎源码APP降低容器发现延时。支持弹性扩缩容,但元信息采集和资源消耗仍存在局限。 #### 4. 同容器采集方式 将采集进程与业务进程部署在同一容器内,通过容器本身实现日志采集。这种方式成本低,但资源消耗大,元信息获取受限。 #### 5. 独立存储采集方式 容器将日志打印到共享存储卷,通过采集容器统一采集。此方案避免了发现容器和开始采集的延时问题,资源占用低,支持弹性容器。但元信息获取和数据一致性需额外配置。 ### 适用场景与推荐方案 针对不同场景(如短生命周期Job、秒退Job、突发大量Job),推荐的采集方案各有侧重,以确保数据完整性和高效率采集。选择时需综合考虑容器特点、业务需求、资源消耗和弹性能力。 ### 总结 在K8s环境下,针对Job容器的日志采集需要深入分析容器特点和业务需求,灵活选用或定制日志采集方案。ECI弹性容器产品采集方式因其弹性能力和低侵入性特性,已成为一种推荐实践。未来,日志采集技术的发展方向将聚焦于进一步优化容器发现速度、减少开始采集延时,以及简化配置流程,以提升用户体验和效率。iLogtail 社区开源之夏活动来了!
作者:玄飏
在这个充满活力的夏日,随着阳光一同灿烂的是开源精神的光辉与创新的火花。
iLogtail 社区高兴地宣布,我们正式加入开源之夏 的行列,诚邀每一位怀揣梦想与激情的学生开发者,共同开启一场探索技术前沿、贡献开源世界的精彩旅程!
开源之夏是由中国科学院软件研究所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的博客首页html源码蓬勃发展,助力开源软件供应链建设。首页: summer-ospp.ac.cn/
本次开源之夏,iLogtail 社区精心策划了一系列项目,旨在提升可观测数据处理能力、增强数据接入能力、以及探索管控能力的新维度。
无论你是热衷于底层技术优化,还是对大数据处理有着浓厚兴趣,这里都有适合你的挑战!
走近 iLogtail 社区什么是 iLogtail
iLogtail 是一款高性能的轻量级可观测数据采集器,由阿里云 SLS 团队官方提供,可以运行在包括服务器、容器和嵌入式等多种环境中,其宗旨在于帮助开发者构建统一的数据采集层,助力可观测平台打造各种上层应用场景。
iLogtail 多年来一直稳定服务阿里集团、蚂蚁集团以及众多公有云上的企业客户,目前已经有千万级的安装量,每天采集数十 PB 的可观测数据,广泛应用于线上监控、问题分析/定位、运营分析、安全分析等多种场景。
作为国内可观测领域领先的开源软件,iLogtail 社区目前正处于快速发展阶段,有大量的开发者踊跃参与贡献。
目前来自阿里云、石墨文档、同程旅行、小红书、字节跳动、哔哩哔哩、嘀嗒出行的多位同学在参与 iLogtail 社区的共建。
iLogtail 的发展历史
iLogtail 的前身源自阿里云的神农项目,自从 年正式孵化以来,iLogtail 始终在不断演进。
起初,iLogtail 旨在解决单机到大规模集群的监控挑战,实现日志实时采集与高效处理。
在阿里集团阶段,iLogtail 已经具备了正则、分隔符、JSON 等多个格式日志的解析能力,支持多种日志编码方式,海淘社区源码支持数据过滤、脱敏等高级处理能力,单核处理能力极简模式下提升到 M/s,正则、分隔符、JSON 等方式 M/s+。
为迎接云原生时代,iLogtail 扩展了容器采集能力,并全面支持 K8S,服务众多客户。
至 年,iLogtail 已经支持容器化、K8S Operator 管控和可扩展插件系统,拥有千万部署规模,数万内外部客户,百万+采集配置项,实现日数十 PB 数据的稳定采集。
年 月 iLogtail 迈出了开源的第一步,将 Golang 插件代码开源。
自开源以来,吸引了数百名开发者的关注,并且也有不少开发者贡献了 processor 跟 flusher 插件。
年 6 月 C++ 核心代码也正式开源了,自此开发者可以基于该版本构建完整的云原生可观测数据采集方案。
GitHub: github.com/alibaba/ilog...
官网: help.aliyun.com/documen...
微信****与钉钉群:
看看我们的项目吧!
今年,我们有两个项目,分别是“iLogtail 数据吞吐性能优化”和“ConfigServer 能力升级 + 体验优化(全栈)”。这两个项目一个侧重于性能优化,一个侧重于管控能力,快来看看吧!
iLogtail 社区开源之夏主页: summer-ospp.ac.cn/org/o...
iLogtail 社区开源之夏宣讲视频: bilibili.com/video/BV1J...
项目一:iLogtail 数据吞吐性能优化
项目编号:eb
项目难度:进阶/Advanced
项目社区导师:阿柄(阿里云)
导师联系邮箱:bingchang.cbc@alibaba-inc.com
项目简述:iLogtail 的部分数据接入能力目前由Golang实现,希望可以升级到C++版本,实现更好的性能、更低的开销。
项目链接: summer-ospp.ac.cn/org/p...
项目二:ConfigServer 能力升级 + 体验优化(全栈)
项目编号:eb
项目难度:进阶/Advanced
项目社区导师:玄飏(阿里云)
导师联系邮箱:yangzehua.yzh@alibaba-inc.com
项目简述:iLogtail 的管控工具 ConfigServer 需要在管控能力、部署能力和使用体验上进行一些优化,这是一个全栈工程(golang 后端 + React 前端)
项目链接: summer-ospp.ac.cn/org/p...
快来报名吧!如何参与活动?
1. 访问开源之夏活动官网( summer-ospp.ac.cn)注册并详细了解项目列表。
2. 浏览 iLogtail 社区的项目介绍,找到让你心动的那一项。
3. 准备一份展现你热情与能力的申请书,与我们的社区导师取得联系,探讨你的连飞软件源码想法与计划。
4. 完成申请流程,静待佳音,准备开启你的开源之旅!
参加活动需要符合什么条件?参加活动可以收获什么?一定要关注的时间节点!
4 月 日-6 月 4 日期间,学生可以通过开源之夏官网注册、与导师沟通项目并提交项目申请。
对 iLogtail 社区开源之夏课题感兴趣的同学,可以通过本文上方导师邮箱,提前联系导师沟通课题需求,找到最适合自己的课题方向。
学生在开源之夏课题参与期间,通过线上工作的形式完成课题,相关项目结项需要在9 月 日前以 PR 的形式提交到 iLogtail 社区仓库,并在 月 日前完成合并,结项的同学根据项目难度获得结项成果及奖金,并有机会获选主办方优秀学生。
让我们在这个夏天,以代码为笔,以创意为墨,共同书写开源世界的崭新篇章。加入 iLogtail 社区,不只是参与一个活动,更是拥抱一个充满无限可能的未来!
点击 此处查看详情!
OpenKruise x iLogtail:管理可观测数据采集Sidecar容器最佳实践
在Kubernetes集群中,Sidecar容器被广泛用于采集业务容器的可观测性数据。然而,这种部署模式在管理和维护上存在高成本和复杂性问题。本文分析了Sidecar采集容器管理的难点,并通过OpenKruise提供的能力逐一解决,以iLogtail为例,给出最佳实践。
Sidecar部署方式在可观测系统中有着重要应用。Kubernetes官方文档中介绍的三种数据采集形式各有优劣。Sidecar方式通过在每个Pod内部署采集agent,虽然资源占用较高,但提供了稳定性、灵活性和多租户隔离等优势。建议在Job类任务采集或作为PaaS平台服务多个业务方的集群中使用此方式。
然而,使用K8s Sidecar模式存在挑战,包括修改业务部署声明、确保采集agent的生命周期与业务容器同步等。本文以iLogtail为例,提供了一种通用的Sidecar采集部署配置。iLogtail是阿里云开源的高性能轻量级可观测性数据采集Agent,支持多种数据类型的采集。
配置中包括volumeMounts部分用于声明共享存储,以及args部分控制Sidecar和业务容器间进程的启动及退出顺序。此配置展示了Sidecar模式的弊端,如资源占用、管理复杂性等。
OpenKruise管理Sidecar容器的利器包括SidecarSet、Container Launch Priority和Job Sidecar Terminator。其中,SidecarSet负责注入和升级Sidecar容器,Container Launch Priority控制容器启动顺序,而Job Sidecar Terminator在业务容器完成后通知Sidecar容器退出。
在iLogtail的Sidecar部署实践中,通过使用OpenKruise的上述能力简化了管理流程。社区中已有iLogtail部署案例。使用OpenKruise管理iLogtail Sidecar容器,能够降低管理难度,解耦Sidecar和业务容器配置,确保容器间的启动顺序,并支持不重建Pod更新Sidecar容器。
通过配置和实践,Sidecar容器的管理得到了简化,确保了iLogtail采集数据的完整性和可靠性。此外,独立升级Sidecar容器也得以实现,进一步提高了灵活性和安全性。
使用OpenKruise管理iLogtail日志采集,能够大幅降低管理难度,提高系统的稳定性和可靠性。然而,关于Sidecar容器资源分配、日志路径规划和业务Pod中Sidecar配置的差异化等问题仍需进一步探索。开发者社区的协作和贡献对于推动Kubernetes生态的发展至关重要。
一文详解用eBPF观测HTTP
随着eBPF技术的兴起,因其高性能、扩展性和安全性等特性,它在多个领域如网络、安全和可观测性中得到了广泛应用,如Cilium、Pixie等项目。iLogtail,作为阿里内外大量实例的观测数据采集器,计划在8月份引入eBPF网络可观测特性。本文将从eBPF观测HTTP 1、HTTP 1.1和HTTP 2的角度,探讨其在可观测场景中的应用,同时回顾HTTP协议的发展历程。
eBPF作为Linux网络领域的重要工具,提供了一种灵活性与性能兼具的方式来定制内核与用户态交互,通过libbpf和bcc等SDK,将业务逻辑安全地嵌入到内核执行,利用BPF Map机制减少数据复制。在可观测性上,eBPF类似Javaagent,无需修改代码即可在关键点添加监控,如TCP连接和数据传输过程中的函数调用。
针对HTTP协议,eBPF通过定义tracepoints和kprobes来监控TCP连接建立、数据发送和接收等操作。例如,对于HTTP 1和HTTP 1.1,由于它们基于TCP,eBPF能轻松关联地址和数据信息,但长连接模式下的eBPF观测会遇到一些挑战。而对于HTTP 2,其多路复用和首部压缩特性使得数据传输更有效率,但对eBPF程序的可观察性提出了新的要求,如处理首部压缩带来的信息量变化和gRPC不同模式带来的观测挑战。
gRPC基于HTTP2构建,简化了通信,但这也使得eBPF观测变得复杂。Uprobe(用户态)和Kprobe(内核态)各有优缺点,Uprobe能获取完整数据但可能影响多语言支持,而Kprobe虽保有流量细节但可能面临数据退化问题。iLogtail计划在cpp开源后引入eBPF观测功能,为开发者提供了高效、安全的可观测性解决方案。
Logtail心跳问题排查手册(主机场景)
本文详细介绍了如何系统排查主机场景下机器组无心跳问题,提供了一套全面的排查流程。排查过程中需关注Logtail是否正常运行,确认IP地址为Logtail获取的IP地址,检查Logtail启动参数是否正确,确保网络通畅,检查系统时间是否准确,配置用户标识及自定义标识。若问题依旧,建议提交工单。具体操作步骤如下:
首先,检查Logtail是否正常运行,通过在命令行运行特定命令验证。注意检查是否存在重复的Logtail实例,以避免数据采集的重复风险。
其次,确认机器组中的IP地址为Logtail获取的IP地址,通过查找并检查app_info.json文件中的ip字段,以及在机器组内验证使用的IP地址。
紧接着,检查Logtail启动参数是否正确。寻找并确认ilogtail_config.json文件,核对其中的参数设置,确保与机器组配置一致。
之后,检查网络是否通畅。使用curl和telnet命令分别尝试连接关键地址,确保Logtail能成功上传数据。
确保系统时间准确。通过命令行和桌面任务栏查看系统时间,确保与Logtail的时间同步。
配置用户标识。对于非同一账号下的ECS或云服务器,需要配置Project所属主账号作为用户标识,确保有权限采集日志。
同样,检查是否配置了自定义标识,对于机器组标识为自定义标识的场景,确保与配置一致。
若排查流程完成,问题仍未解决,请提交工单寻求进一步支持。请记得在修改配置后重启Logtail,以确保更改生效。
通过以上步骤,绝大多数机器组心跳问题应能得到有效解决。在排查过程中如遇到困难,及时反馈以获得专业指导。
iLogtail社区版使用入门 - iLogtail日志处理实战
阿里云日志服务(SLS)团队自研的iLogtail是一款轻量级、高性能、自动化配置的可观测数据采集Agent,支持多种环境,如物理机、虚拟机、Kubernetes等,用于采集遥测数据。
在阿里云上,iLogtail已服务数万家客户的主机和容器,成为淘宝、天猫、支付宝、菜鸟、高德地图等核心产品的默认日志、监控、Trace等多种可观测数据采集工具。目前,iLogtail已有千万级安装量,每天采集数十PB的可观测数据,广泛应用于线上监控、问题分析/定位、运营分析、安全分析等多种场景。
作为云原生时代的产物,iLogtail采用开源策略,旨在与开发者共同打造世界一流的可观测数据采集器。
日志在可观测性建设中扮演重要角色,可记录详细的访问请求和错误信息。在开发场景中,日志分析通常是通过grep搜索关键字进行。但在大规模分布式生产环境下,这种方法效率低下。因此,建立集中式日志收集系统,将所有节点上的日志统一收集、管理、分析,成为一种常见解决方案。
目前,iLogtail致力于打造统一的数据采集层,提供数十种数据源的采集能力和丰富的处理能力,具有高性能、高可靠的特点。iLogtail社区版源自企业版iLogtail,核心采集处理能力与企业版完全对标,可应对大规模线上使用场景。
日志服务SLS作为云原生的可观测平台,提供大规模、低成本、实时的平台化服务,包括数据采集、加工、查询与分析、可视化、告警、消费与投递等功能。iLogtail企业版作为SLS官方标配的可观测数据采集器,可无缝集成,提供一站式便捷的采集能力。
iLogtail采用PipeLine设计,数据处理具有较强扩展性。文本文件采集后,会经过Processor处理,再经过Aggregator插件打包,最终通过Flusher发送到日志存储系统。
本文将详细介绍使用iLogtail社区版进行日志采集时,对常见日志格式的处理实战,包括正则表达式解析及响应过滤、Json格式解析及字段取值过滤、多行日志解析、混合日志模式解析等场景。
开发者可基于实战分享及文档,构建属于自己的data_pipelines。我们还将一些常见的处理模版归档到GitHub供开发者使用,并欢迎开发者共建,分享使用案例给社区开发人员。
关于iLogtail,它作为阿里云SLS提供的可观测数据采集器,支持多种环境,采集数百种可观测数据。目前,iLogtail已正式开源,欢迎使用及参与共建。
GitHub: github.com/alibaba/ilog...
社区版文档: ilogtail.gitbook.io/ilo...
企业版官网: help.aliyun.com/documen...