使用CloudLens排查iLogtail文件重复配置问题

简介: 本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:重复采集配置问题。

本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:重复采集配置问题。

目标读者

数字化系统开发运维(DevOps)工程师、稳定性工程师(SRE)、可观测平台运维人员等。

背景介绍

iLogtail 是阿里云日志服务(SLS)团队自研的可观测数据采集 Agent,拥有的轻量级、高性能、自动化配置等诸多生产级别特性,可以部署于物理机、虚拟机、Kubernetes 等多种环境中来采集遥测数据。目前 iLogtail 广泛应用于线上监控、问题分析/定位、运营分析、安全分析等多种场景,在实战中验证了其强大的性能和稳定性。

CloudLens for SLS是日志服务推出的一款应用,帮助用户监控和管理日志服务Project、Logstore等资产,提升用户对日志服务资产的管理效率、快速了解其消耗情况。

使用场景

文件日志采集是日志采集Agent最常见的数据采集场景,iLogtail目前支持主机上文件采集以及容器场景下的文件采集。但是文件采集在实战中会遇到各种各样的问题,基于此场景,CloudLens for SLS集成了针对iLogtail的状态监控,可以实时的反馈当前iLogtail Agent的运行状况。

问题描述

iLogtail文件采集,默认情况下,同一个日志文件,只允许被一个采集配置采集,如果有两个或者两个以上的采集配置采集了同一个日志文件,那么就会报这个错误。如此设计,主要有两个原因:

  • 重复的采集会导致存储成本翻倍。

  • 用户配置采集文件的时候,通常是采用通配符的方式,在不同的采集配置中,容易导致采集文件容复。日志文件的监控和采集都是需要占用一定资源的,如果不加以限制,会导致资源占用非常大。

问题影响范围

针对同一个日志文件,只会有一个采集配置生效,其他采集配置会跳过该文件(其他文件不受影响)。

错误发现

CloudLens for SLS页面,点击报表中心下采集监控,然后查看iLogtail异常监控:

image.png

可以看到针对日志文件重复配置问题(MULTI_CONFIG_MATCH_ALARM)有一个专门的报表,里面详细展示了问题发生的时间、IP、产生重复的日志文件路径以及两个重复配置所在的project、logstore和采集配置的名字。由此客户可以清晰的看到自己的哪台机、哪个日志文件、在哪两个采集配置中重复了。仪表盘

比如这个图展示了在192.168.XX这个IP的机器上,/var/log/nginx/access.log这个文件存在重复配置问题,两个配置的详情分别是:

配置1:

  • project:xxx-test-hongkong

  • logstore:sls-lens-logtail-test

  • 采集配置名:access_log1

配置2

  • project:xxx-test-hongkong

  • logstore:sls-lens-logtail-test

  • 采集配置名:access_log2

具体场景与方案建议

不需要重复采集同一个日志文件

大多数的场景下,对日志文件的重复配置都不是预期的,通常是采用通配符的方式、或者文件层级配置的过大,导致的误重复,在这种情况下,可以采取如下措施:

由上面展示的报错详情,我们去对应的project/logstore下面分别找到对应的采集配置。

image.png

​

可能会导致文件配置冲突的配置有如下几种:

日志文件路径配置的层级过大

采集配置access_log1:

  • 路径:/var/log/nginx, 文件:access.log

采集配置access_log2:

  • 路径:/var/log, 文件:access.log

image.pngimage.png

此时,两个配置都会命中/var/log/nginx/access.log这个文件,因此会导致日志文件重复配置问题发生。

方案建议

此时需要细化access_log2配置的路径,比如指定/var/log/service,由此可以避免命中同样的文件。

日志文件名通配符匹配的范围过大

采集配置access_log1:

  • 路径:/var/log/nginx, 文件:access.log

采集配置access_log2:

  • 路径:/var/log/nginx, 文件:*.log

image.pngimage.png

此时,两个配置都会命中/var/log/nginx/access.log这个文件,因此会导致日志文件重复配置问题发生。

方案建议

此时需要细化access_log2的文件名配置,比如指定/var/log/nginx/error.log,由此可以避免命中同样的文件。

容器场景下过滤条件范围太大

容器场景下,还存在一个容器过滤条件的可能。

容器A:

  • label配置了test: true 和service: A

  • 采集配置access_log1,配置的Label白名单为service: A,采集路径为/var/log/nginx/access.log。

容器B:

  • label配置了test: true和service: B

  • 采集配置access_log2,配置的Label白名单为test: true,采集路径为/var/log/nginx/access.log。

image.pngimage.png

此时可以知道采集配置access_log2,命中了两个容器A和B,采集配置access_log1只命中了A容器。由于两个容器的采集文件路径配置的相同,B容器中的/var/log/nginx/access.log会同时被1和2两个配置去采集。

方案建议

在这种场景下,需要细化容器过滤条件,确保采集配置access_log1就只采集A容器,采集配置access_log2就只采集B容器,这样可以避免容器场景下的冲突。

​

需要重复采集同一个日志文件

方案建议

如果确实有需求,要把一个日志文件采集多次的话,可以参考操作文档,使用软连接的方案,或者添加强制采集配置,需要注意因为在客户端上对文件中的日志采集多份需要消耗多倍的CPU、内存、磁盘IO和网络IO开销,会对同机部署的其他服务性能造成额外影响,并非优化的日志采集方案。

参考资料

关于iLogtail

iLogtail作为阿里云SLS提供的可观测数据采集器,可以运行在服务器、容器、K8s、嵌入式等多种环境,支持采集数百种可观测数据(日志、监控、Trace、事件等)。目前,iLogtail已正式开源,欢迎使用及参与共建。

GitHub:https://github.com/alibaba/ilogtail

社区版版本:https://ilogtail.gitbook.io/ilogtail-docs/about/readme

企业官网:https://help.aliyun.com/document_detail/65018.html

钉钉群:iLogtail社区

image.png
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
7月前
|
人工智能 自然语言处理 开发工具
SLS智能问答助手:秒解游戏运营客服难题
面向游戏客服的AI自动化排查系统,基于SLS日志与SOP知识库,实现秒级日志查询、精准根因定位及标准话术生成,覆盖充值、道具、匹配等五大高频场景,显著提升响应效率与服务一致性。 并支持钉钉、飞书、企业微信对接
951 2
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
2774 23
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
2549 266
云上数据安全保护:敏感日志扫描与脱敏实践详解
|
存储 JSON 监控
你好,iLogtail 2.0
你好,iLogtail 2.0!
2188 126
|
数据采集 监控 Kubernetes
【最佳实践】使用CloudLens排查iLogtail采集配置错误问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:采集配置错误问题。
2199 0
【最佳实践】使用CloudLens排查iLogtail采集配置错误问题
|
弹性计算 运维 监控
【最佳实践】iLogtail使用Grok语法解析日志
目标读者数字化系统开发运维(DevOps)工程师、稳定性工程师(SRE)、可观测平台运维人员等。背景介绍日志的形式往往多种多样,如果只是简单的读入日志数据,将很难进行搜索、分析及可视化。将原始的日志数据解析为结构化的数据,将大幅提升数据的可用性,方便用户进行快捷的“字段-值”的查询和分析。最基础的解...
1899 1
【最佳实践】iLogtail使用Grok语法解析日志
|
存储 JSON 监控
【最佳实践】使用CloudLens排查日志时间解析错误问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:日志时间解析错误问题。
1389 1
【最佳实践】使用CloudLens排查日志时间解析错误问题
|
监控 Kubernetes 应用服务中间件
【最佳实践】使用CloudLens排查文件/目录数超限问题(STAT_LIMIT_ALARM, DIR_EXCEED_LIMIT_ALARM)
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:包括STAT_LIMIT_ALARM, DIR_EXCEED_LIMIT_ALARM等诊断错误的文件/目录数超限问题,。
2611 0
|
数据采集 运维 Kubernetes
【最佳实践】使用CloudLens排查iLogtail重启问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:iLogtail异常重启问题。
2321 0
【最佳实践】使用CloudLens排查iLogtail重启问题
|
存储 缓存 前端开发
使用CDN来加速OSS上存储的文件资源分发
本文为真实设备电商行业的实践,在网站有大量产品图片上传的场景下,用OSS配合CDN加速,提高了用户的访问速度、站点稳定性,并且提供了节省成本的思路。
2251 1
使用CDN来加速OSS上存储的文件资源分发

热门文章

最新文章