【最佳实践】使用CloudLens排查iLogtail采集配置错误问题

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文主要介绍如何使用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的运行状况。

问题描述

正确的采集配置是实现日志正常采集的重要基础,如果用户设定的采集配置中有任何错误,那么就会出现CATEGORY_CONFIG_ALARM错误。

问题发现

打开CloudLens for SLS,在左侧的报表中心下拉菜单中选择“采集监控”,然后在右侧的页面中选择相应的Project,点击“Logtail异常监控”选项卡,此时会展示该Project下的所有采集异常信息:

image.png

其中,名为“日志采集配置错误(CATEGORY_CONFIG_ALARM)”的表格展示了logtail的采集配置问题,它会详细地说明问题原因,以及一些帮助排查问题的信息(如logstore,ip等)。

截屏2022-09-23 14.05.25.png

具体场景与方案建议

出现CATEGORY_CONFIG_ALARM错误的原因有多种,这里介绍几种常见的错误场景以及可能的解决方法。

场景一:插件配置错误

错误信息

load plugin config error, invalid config: <错误的配置名称>. please check you config and logtail's plugin log.

截屏2022-09-23 14.12.25.png

影响范围

该采集配置将不会生效,即不会采集容器文件,但对其他采集配置没有影响。

错误原因

当前采集配置使用插件系统来采集或处理日志,但插件配置有问题。

解决方案

根据插件日志提供的信息对采集配置进行修正。

  • 示例:采集容器标准输出,只采集"app":"stdout-test"标签的容器,若在控制台的插件配置框中配置如下:

{
    "inputs":
    {
          "type":"service_docker_stdout",
          "detail":{
              "Stdout":true,
              "Stderr":true,
              "IncludeLabel":{
                  "app":"stdout-test"
              },
          }
      }
}

则会产生CATEGORY_CONFIG_ALARM,原因是误将“IncludeK8sLabel”配置成了“IncludeLabel”,同时inputs的类型有误(应当为array)。修正后的配置为:

{
    "inputs":[
    {
          "type":"service_docker_stdout",
          "detail":{
              "Stdout":true,
              "Stderr":true,
              "IncludeK8sLabel":{
                  "app":"stdout-test"
              },
          }
      }
	]
}

场景二:容器模式错误

错误信息

config is docker_file mode, but logtail is not a purage container, the flag is ignored.

截屏2022-09-23 14.13.14.png

影响范围

该采集配置将不会生效,但对其他采集配置没有影响。

子场景一:K8s Sidecar

错误原因

通过K8s Sidecar的方式采集容器日志或正在采集主机日志,但在配置采集配置时,额外开启了“是否为Docker文件”选项。

解决方案

修改采集配置,关闭“是否为Docker文件”选项,如下所示:

截屏2022-09-19 14.17.52.png

子场景二:K8s Daemonset或纯Docker

错误原因

通过K8s Daemonset的方式采集容器日志或直接使用logtail容器采集Docker容器日志,则至少存在以下一种情况:

  1. 当前环境中没有名为ALIYUN_LOGTAIL_USER_DEFINED_ID的环境变量

  2. 从logtail进程中无法访问/logtail_host目录

解决方案

修改logtail的YAML文件,增加ALIYUN_LOGTAIL_USER_DEFINED_ID变量(如下所示),或/并确认从logtail进程中可以访问/logtail_host目录:

截屏2022-09-19 14.23.20.png

场景三:采集配置中Topic正则提取错误

错误信息

extract topic by regex fail, exception:<异常信息>, path:<文件路径>, regex:<配置的正则表达式>.

截屏2022-09-23 14.13.40.png

影响范围

该采集配置仍将生效,但其中涉及提取Topic的部分将失效,Topic将被设为空。

错误原因

当前配置的Topic生成方式为“文件路径正则”,实际文件路径不能匹配所配置的提取文件名的正则表达式。

解决方案

重新修改Topic提取的正则表达式。

  • 示例:假定用户配置的Topic正则表达式为“/home/app/logs/(.*)”,而文件实际路径为“/home/app/log/example.log”,则此时正则表达式匹配失败,应该修改表达式为“/home/app/log/(.*)”。

场景四:脱敏配置错误

错误信息

The sensitive key XXX is invalid. <进一步信息>

截屏2022-09-23 14.14.39.png

影响范围

该采集配置仍将生效,但其中涉及脱敏配置的部分将失效。

错误原因

当前采集配置中的脱敏配置有误,一般为以下几种情况之一:

  1. 没有key字段或type字段

  2. type字段的值为除“const”和“md5”外的其它内容

  3. 当type字段的值为“const”时,没有“const”字段

  4. regex_begin和regex_content字段所组成的正则表达式有误

解决方法

根据错误定位的结果对sensitive_keys参数进行修改,相关字段的说明如下:

参数名称

数据类型

是否必填

示例值

描述

key

string

content

日志字段名称。

type

string

const

脱敏方式。可选值如下:

  • const:将敏感内容替换成const字段取值内容。

  • md5:将敏感内容替换为其对应的MD5值。

regex_begin

string

'password':'

敏感内容前缀的正则表达式,用于查找敏感内容。使用RE2语法。更多信息,请参见RE2语法

regex_content

string

[^']*

敏感内容的正则表达式,使用RE2语法。更多信息,请参见RE2语法

all

boolean

true

是否替换该字段中所有的敏感内容。可选值如下:

  • true(推荐):替换。

  • false:只替换字段中匹配正则表达式的第一部分内容。

const

string

"********"

type设置为const时,必须配置。

其它场景

错误信息

<配置名称> is invalid, reason: <错误原因>.

影响范围

根据错误信息的不同,影响范围由局部配置失效到采集配置整体失效不等,但不影响其它采集配置。

错误原因

当前采集配置非法。

解决方法

根据提示的错误原因进行相应的修改。

关于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

1660550445423-bac4f3a7-fdca-4c68-bae4-76fa16142f82.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
存储 数据采集 Kubernetes
一文详解K8s环境下Job类日志采集方案
本文介绍了K8s中Job和Cronjob控制器用于非常驻容器编排的场景,以及Job容器的特点:增删频率高、生命周期短和突发并发大。文章重点讨论了Job日志采集的关键考虑点,包括容器发现速度、开始采集延时和弹性支持,并对比了5种采集方案:DaemonSet采集、Sidecar采集、ECI采集、同容器采集和独立存储采集。对于短生命周期Job,建议使用Sidecar或ECI采集,通过调整参数确保数据完整性。对于突发大量Job,需要关注服务端资源限制和采集容器的资源调整。文章总结了不同场景下的推荐采集方案,并指出iLogtail和SLS未来可能的优化方向。
|
监控 Kubernetes 应用服务中间件
【最佳实践】使用CloudLens排查文件/目录数超限问题(STAT_LIMIT_ALARM, DIR_EXCEED_LIMIT_ALARM)
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:包括STAT_LIMIT_ALARM, DIR_EXCEED_LIMIT_ALARM等诊断错误的文件/目录数超限问题,。
1179 0
【最佳实践】使用CloudLens排查文件/目录数超限问题(STAT_LIMIT_ALARM, DIR_EXCEED_LIMIT_ALARM)
|
数据采集 运维 Kubernetes
【最佳实践】使用CloudLens排查iLogtail重启问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:iLogtail异常重启问题。
1098 0
【最佳实践】使用CloudLens排查iLogtail重启问题
|
SQL 数据采集 Prometheus
PromQL计算原理详解
## 背景 PromQL是Prometheus项目针对时序场景提供的一种查询语言,而PromQL的设计与常规意义上的SQL语句区别较大,其执行引擎的计算逻辑同样也大相径庭。在日常的客服解答中,发现较多客户对PromQL的执行原理有误解,故整理此篇文章对PromQL的原理与执行逻辑进行详细介绍。 ## 对时序的认识 时序场景下的观测对象是 “Metric”,例如这项表示“进程的常驻内存使用量
1718 2
|
存储 JSON 弹性计算
Logtail日志采集支持高精度时间戳
本文为您介绍在使用Logtail进行日志采集时,如何从原始日志中提取毫秒精度时间戳。
397 0
Logtail日志采集支持高精度时间戳
|
存储 JSON 监控
【最佳实践】使用CloudLens排查日志时间解析错误问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:日志时间解析错误问题。
413 1
【最佳实践】使用CloudLens排查日志时间解析错误问题
|
弹性计算 运维 监控
【最佳实践】主机场景下如何使用ilogtail采集超大规模文件
目标读者数字化系统开发运维(DevOps)工程师、稳定性工程师(SRE)、可观测平台运维人员等。使用场景客户的某些场景下,业务拆分的比较细,每个业务会定时输出一个日志文件(比如每小时输出一个文件),那么在一台机器上,可能会产生大量的日志文件。由于某些原因,用户不想在业务服务器上安装采集端,因此采用比...
634 0
【最佳实践】主机场景下如何使用ilogtail采集超大规模文件
|
数据采集 监控 应用服务中间件
使用CloudLens排查iLogtail文件重复配置问题
本文主要介绍如何使用CloudLens for SLS定位和解决iLogtail日常使用中的常见问题之一:重复采集配置问题。
1065 0
使用CloudLens排查iLogtail文件重复配置问题
|
消息中间件 存储 数据采集
iLogtail社区版使用入门 - 如何将业务日志采集到Kafka
本文将会详细介绍如何使用iLogtail社区版将日志采集到Kafka中,从而帮助使用者构建日志采集系统。
1745 0
|
存储 Kubernetes 监控
K8s挂载PVC日志采集“轻量级”玩法
本文介绍一种使用K8s挂载PVC日志采集时的轻量级部署方式。
1269 1
K8s挂载PVC日志采集“轻量级”玩法