通过 LogCollector 采集宿主机文本日志时,如果机器组中的宿主机心跳状态异常,会造成日志采集失败等问题。宿主机心跳异常时,您可以参考本文档逐步排查问题、恢复宿主机心跳状态。
LogCollector 是日志服务自研的日志采集客户端,用于快速上报宿主机日志数据。在宿主机上安装 LogCollector 之后,LogCollector 会定时向服务端发送心跳包。如果在日志服务控制台的机器组配置页面中显示机器无心跳,说明客户端和服务端连接失败。
在日志服务控制台的机器组详情页面,如果心跳状态信息区域中,某些 IP 地址对应的状态栏显示异常,表示此台宿主机 LogLollector 心跳状态异常,宿主机上的 LogCollector 客户端与服务端连接失败。
在心跳异常的状态下,宿主机上的 LogCollector 客户端无法将采集到的日志数据正常上报至服务端,导致日志无法正常采集到日志主题中,控制台上也无法实时查询并检索到新的日志数据。
登录宿主机后,执行以下命令查看 LogCollector 的运行状态。
systemctl status filebeatd.service
安装 LogCollector 之后,需要执行初始化脚本,在初始化时配置鉴权参数,用于鉴权和连接日志服务。如果参数配置错误,可能会造成 LogLollector 心跳异常。
执行以下命令打开 filebeat.yml
文件,检查鉴权参数。
cat /usr/local/filebeat-7.12.0/etc/filebeat.yml
鉴权参数相关说明如下。
参数 | 示例 | 说明 | 获取方式 |
---|---|---|---|
endpoint | https://tls-cn-beijing.ivolces.com | 日志服务连接域名,即服务地址。 | 登录火山引擎控制台后,在日志项目的详情页中查看连接域名。 |
secret_id | AKLY********* | 火山引擎主账号的 Access Key ID。 | 以主账号登录火山引擎控制台后,在页面右上角下拉列表中单击密钥管理,根据页面提示查看并复制 Access Key ID。 |
secret_key | TUdZ******** | 火山引擎主账号的 Secret Access Key。 | 以主账号登录火山引擎控制台后,在页面右上角下拉列表中单击密钥管理,根据页面提示查看并复制 Secret Access Key。 |
region | cn-beijing | 日志项目所在的地域(Region)。 | 在日志服务控制台顶部导航栏中可以查看当前日志项目所在地域。 |
说明
在 output.tls
中,不能同时配置 ip 和 label 参数,否则也会造成心跳失败。
配置文件示例如下。
如果鉴权参数配置错误,请修改后重启 LogCollector,稍后查看机器组状态。若控制台上 LogCollector 心跳状态仍然显示异常,请执行以下步骤继续排查。
LogCollector 1.0.1 版本开始支持机器组,如果宿主机中安装的 LogCollector 版本号不是 1.0.1 或后续版本,可能会出现 LogCollector 心跳异常的现象,服务端无法识别该 LogCollector。所以 LogCollector 心跳异常时需检查 LogCollector 的版本是否符合要求。
执行以下命令,查看 LogCollector 的版本。回显信息中会展示当前安装的 LogCollector 版本号。推荐使用最新版本的 LogCollector,详细说明请参考升级 LogCollector。
/etc/init.d/filebeatd -v
回显信息示例如下。
升级 LogCollector 的版本后,若控制台上宿主机心跳状态仍然显示异常,请执行以下步骤继续排查。
说明
IP 地址类型的机器组,请参考此步骤进行排查。
默认情况下,LogCollector 会读取所在宿主机第一块网卡的 IP 地址,并将其作为宿主机 IP 地址记录在文件 agent_info.json
中。在控制台创建 IP 地址类型的机器组时,您需要将 agent_info.json
中记录的 IP 地址作为宿主机的 IP 地址填写到机器组中,以此将指定宿主机加入到机器组。
如果机器组中配置的 IP 地址和 agent_info.json
中的 IP 地址不一致,控制台会显示此宿主机 LogCollector 心跳状态异常、无法采集日志。
您可以通过以下命令查看 agent_info.json
,检查 ip
字段中填写的 IP 地址与控制台显示的 IP 地址是否一致。
查看agent_info.json
。
cat /usr/local/filebeat-7.12.0/agent_info.json
回显信息中,ip
字段表示 LogCollector 获取的当前宿主机 IP 地址,即第一块网卡的 IP 地址。
{ hostname : C02G64T1MD6R , ip : 10.*.*.* , logcollect_version : 1.0.2 , update_time : 2022.01.07 18:38:12 }
查看控制台配置的 IP 地址。
在机器组的详情页面可以查看机器组内所有宿主机的 IP 地址。如果此处配置的 IP 地址与 agent_info.json
中显示的 IP 地址不一致,请修改机器组配置,并稍后再次检查机器状态。
说明
机器标识地址类型的机器组,请参考此步骤进行排查。
在机器标识地址类型的机器组中,已配置的机器标识必须和 LogCollector 中配置的机器 Label 一致,否则机器组中没有 LogCollector 的心跳状态。
执行以下命令,查看 LogCollector 的配置文件。
cat /usr/local/filebeat-7.12.0/etc/filebeat.yml
系统回显信息如下,其中 label
的值即为 LogCollector 中配置的机器 Label。如果此值与机器组中配置的机器标识不一致,请修改机器组配置,并稍后再次检查机器状态。