通过 IP 添加机器不生效
3. 检查机器组中添加的 IP 是否与 LogListener 识别到的 IP 一致。您可通过执行以下代码查看 LogListener 检测到的 IP。
LogListener 版本≥3.4.0:
//查看心跳及配置
systemctl check loglistener
//核对机器 IP
cd /opt/loglistener/ && grep -n 'agent_ip' conf/loglistener.yaml
LogListener 版本<3.4.0:
/etc/init.d/loglistenerd check
在返回数据中,通过查看 group ip,可确认 LogListener 识别到的 IP,如下图: 以安装路径 C:\\Program Files (x86)\\Tencent\\LogListener 为例,以管理员身份运行 Windows PowerShell,在安装路径下,执行以下命令检查 LogListener 心跳及配置:
.\\loglistener_work.exe check
在返回数据中, 通过查看 group_id,可确认 LogListener 识别到的 IP,如下图: 通过机器标识添加机器不生效
3. 检查 LogListener 的机器标识是否与机器组中配置的机器标识一致。您可参考以下步骤查看 LogListener 的机器标识。
LogListener 版本≥3.4.0:以安装路径 /opt/loglistener 为例, 您可在 /opt/loglistener/conf 路径下,运行以下命令查看并配置 LogListener 配置文件。
grep -n 'agent_labels' loglistener.yaml
无输出时,表示当前机器未配置机器标识,如下图:
其中 agent_labels 则为 LogListener 的机器标识,请确保该标识与机器组中配置的一致。
LogListener 版本<3.4.0:以安装路径 /usr/local/ 为例, 您可在 /usr/local/loglistener/etc 路径下,运行以下命令查看并配置 LogListener 配置文件。
其中 group_label 则为 LogListener 的机器标识,请确保该标识与机器组中配置的一致。
以安装路径 C:\\Program Files (x86)\\Tencent\\LogListener 为例,在安装目录下找到 LogListener 配置文件 loglistener.yaml,并用任意编辑器打开,如下图:
其中 agent_label 则为 LogListener 的机器标识,请确保该标识与机器组中配置的一致。
机器组机器状态异常问题
完成机器组配置后,在机器组管理页中,点击机器组名称可以查看与该机器组关联的机器心跳。状态正常说明机器心跳正常上报,若不为正常(如下图), 则说明该机器上的 LogListener 存在异常。 心跳异常
当状态为心跳异常时, 说明 LogListener 与日志服务后端连接中断,会导致 LogListener 无法正常上传日志。您可通过以下方式进一步排查连接中断的原因:
1. 使用 LogListener 快速诊断工具
LogListener 快速诊断工具可以快速诊断 LogListener 是否启动、心跳是否正常、配置拉取是否正常。在命令行下执行如下指令:
LogListener 版本≥3.4.0:
systemctl check loglistener
LogListener 版本<3.4.0:
/etc/init.d/loglistenerd check
如果 LogListener 运行正常,诊断工具返回的结果如图所示:
LogListener 进程异常:如果出现如下图所示 [ERROR] loglistener is not running 字样,表示 LogListener 没有启动。执行 systemctl start loglistener 启动,更多操作指令参见 LogListener 常用操作指令。 LogListener 心跳异常:如果出现如下图所示 [ERROR] check loglistener heareat fail 字样,表示 LogListener 心跳异常。
引起 LogListener 心跳异常的原因有很多,最常见的情况有:
网络异常。执行以下命令检查网络环境是否连通,命令中的 “cls domain name” 为 CLS 服务域名,请参见 可用地域 文档填写。 telnet <cls domain name> 80
密钥信息错误。进入 LogListener 安装目录执行./bin/check,末尾输出内容如下表示密钥信息错误。
密钥缺少权限。进入 LogListener 安装目录执行./bin/check,末尾输出内容如下表示密钥缺少权限,需要按照 策略模板 配置上报权限。 2. 检查机器组 IP 配置
检查机器组所添加的 IP 地址是否为 LogListener 安装过程中获取的 IP 地址。
1. 进入到 LogListener 安装目录执行如下命令检查 LogListener 配置的 IP 地址。
说明:
若无特殊指定,LogListener 安装目录通常为 /opt/loglistener。
grep agent_ip conf/loglistener.yaml
说明:
若无特殊指定,LogListener 安装目录通常为/usr/local/loglistener。
grep group_ip etc/loglistener.conf
2. 登录 日志服务控制台,单击机器组管理,查看机器组配置的 IP 地址,机器组所配置的 IP 地址必须与 LogListener 获取的 IP 地址完全一致。 目录超限
当状态为目录超限时,会导致 LogListener 超出部分的目录的日志无法被采集。您可通过以下方式进行修复:
1. 执行以下命令查看当前 LogListener 关联的采集配置。
//LogListener 版本≥3.4.0
systemctl check loglistener
//LogListener 版本<3.4.0
/etc/init.d/loglistenerd check
2. 以上返回结果中,logconfig 数组包含了当前 LogListener 的所有采集配置,您可针对每个采集配置,检查 wildpath 是否可能模糊命中大量无需采集的目录,例如/root/**/error.log 这类根目录的模糊路径。
3. 找到目标可优化的采集配置后, 从步骤1的返回数据中查看该采集配置关联的 topicid,并基于该 topicid 前往 CLS 控制台找到目标日志主题,优化或删除该采集配置。
文件超限
当状态为文件超限时,说明 LogListener 监听的采集文件数量已超过规格限制10000,会导致 LogListener 无法采集超出该限制的文件的日志。您可通过以下方式进行修复:
1. 执行以下命令查看当前 LogListener 关联的采集配置。
//LogListener 版本≥3.4.0
systemctl check loglistener
//LogListener 版本<3.4.0
/etc/init.d/loglistenerd check
2. 以上返回结果中,logconfig 数组包含了当前 LogListener 的所有采集配置,您可针对每个采集配置,检查 wildpath 是否可能模糊命中大量无需采集的文件,例如/root/**/*.log 这类从根目录模糊匹配任意名称的日志文件。
3. 找到目标可优化的采集配置后,从步骤1的返回数据中查看该采集配置关联的 topicid,并基于该 topicid 前往 CLS 控制台找到目标日志主题,优化或删除该采集配置。
CPU 超限
当状态为 CPU 超限时,说明 LogListener 所占用 CPU 已超过预先设置的阈值。您可通过以下方式进行排查与修复:
优化目标采集目录
1. 执行以下命令查看当前 LogListener 关联的采集配置。
//LogListener 版本≥3.4.0
systemctl check loglistener
//LogListener 版本<3.4.0
/etc/init.d/loglistenerd check
2. 以上返回结果中,logconfig 数组包含了当前 LogListener 的所有采集配置,您可针对每个采集配置,检查 wildpath 是否可能模糊命中大量无需采集的文件,例如/root/**/*.log 这类从根目录模糊匹配任意名称的日志文件。
3. 找到目标可优化的采集配置后,从步骤1的返回数据中查看该采集配置关联的 topicid,并基于该 topicid 前往 CLS 控制台找到目标日志主题,优化或删除该采集配置。
优化正则表达式
1. 执行以下命令查看当前 LogListener 关联的采集配置。
//LogListener 版本≥3.4.0
systemctl check loglistener
//LogListener 版本<3.4.0
/etc/init.d/loglistenerd check
2. 以上返回结果中,logconfig 数组包含了当前 LogListener 的所有采集配置,您可针对每个带有 fullregex 或 multi_fullregex 字段的采集配置,检查正则是否过于复杂。
3. 找到目标可优化的采集配置后,从步骤1的返回数据中查看该采集配置关联的 topicid,并基于该 topicid 前往 CLS 控制台找到目标日志主题,优化或删除该采集配置。
提升 LogListener CPU 占用的限制
1. 以 LogListener 安装目录为 opt/loglistener 为例,执行以下命令打开 LogListener 配置文件:
vim conf/loglistener.yaml
2. 在 LogListener 配置文件中, 找到 cpu_limit 并按需提升 CPU 利用率限制(建议在保障业务进程资源的前提下按500/1000逐步提升),如下图:
systemctl restart loglistener
1. 以 LogListener 安装目录为/usr/local/loglistener 为例,执行以下命令打开 LogListener 配置文件:
2. 在 LogListener 配置文件中, 找到 cpu_usage_thres 并按需提升 CPU 利用率限制(建议在保障业务进程资源的前提下按500/1000逐步提升), 如下图:
systemctl restart loglistenerd
提升 CPU 资源配额
K8s 场景下,请确保 DaemonSet:tke-log-agent 下 Pod: loglistener 的 CPU 配额充足。
内存超限
当状态为内存超限时,说明 LogListener 所占用内存已超过预先设置的阈值。您可通过以下方式进行修复。
1. LogListener 安装目录为 opt/loglistener 为例,执行以下命令打开 LogListener 配置文件。
vim conf/loglistener.yaml
2. 在 LogListener 配置文件中,找到 max_mem (单位:Bytes)并按需提升内存占用限制,如下图:
说明:
建议在保障业务进程内存资源充足、不影响业务稳定性的前提下,再按当前值的1 - 2倍逐步提升。
systemctl restart loglistener
1. 以 LogListener 安装目录为/usr/local/loglistener 为例,执行以下命令打开 LogListener 配置文件。
2. 在 LogListener 配置文件中,找到 max_mem (单位:Bytes)并按需提升内存占用限制,如下图:
说明:
建议在保障业务进程内存资源充足、不影响业务稳定性的前提下,再按当前值的1 - 2倍逐步提升。
systemctl restart loglistenerd
鉴权失败
确认密钥有效
当状态为鉴权失败时,说明 LogListener 中配置的密钥错误或已失效。您可通过以下方式进行修复。
密钥不再明文暴露在本地配置文件中。如仍出现鉴权失败,通常表示当前实例使用的密钥已失效、权限异常或配置未正确下发。请确认 控制台密钥 及机器组配置是否有效,必要时可以 重新安装 LogListener。 1. 以 LogListener 安装目录为/usr/local/loglistener 为例,执行以下命令打开 LogListener 配置文件。
2. 在 LogListener 配置文件中,找到 secret_id 和 secret_key 并判断是否正确有效,若无效则修改为正确的密钥信息,如下图:
systemctl restart loglistenerd
服务器时间正确
请确保服务器时间准确,否则可能导致鉴权失败。
1. Linux 服务器可参考以下方式检查:
重点确认以下信息:
Local time:当前本地时间是否正确。
Time zone:时区是否符合服务器所在地域,例如中国大陆地域通常为 Asia/Shanghai。
System clock synchronized:是否为 yes。
NTP service:是否为 active。
2. 如时区不正确,可执行以下命令修改时区(以中国大陆地域为例):
sudo timedatectl set-timezone Asia/Shanghai