You need to enable JavaScript to run this app.
导航

机器组心跳问题排查(宿主机)

最近更新时间2023.11.13 16:31:23

首次发布时间2022.02.15 17:31:42

通过 LogCollector 采集宿主机文本日志时,如果机器组中的宿主机心跳状态异常,会造成日志采集失败等问题。宿主机心跳异常时,您可以参考本文档逐步排查问题、恢复宿主机心跳状态。

背景信息

LogCollector 是日志服务自研的日志采集客户端,用于快速上报宿主机日志数据。在宿主机上安装 LogCollector 之后,LogCollector 会定时向服务端发送心跳包。如果在日志服务控制台的机器组配置页面中显示机器无心跳,说明客户端和服务端连接失败。

问题现象

在日志服务控制台的机器组详情页面,如果心跳状态信息区域中,某些 IP 地址对应的状态栏显示异常,表示此台宿主机 LogLollector 心跳状态异常,宿主机上的 LogCollector 客户端与服务端连接失败。
在心跳异常的状态下,宿主机上的 LogCollector 客户端无法将采集到的日志数据正常上报至服务端,导致日志无法正常采集到日志主题中,控制台上也无法实时查询并检索到新的日志数据。
图片

排查方案

1 检查 LogCollector 状态

登录宿主机后,执行以下命令查看 LogCollector 的运行状态。

systemctl status filebeatd.service
  • 如果回显信息显示 Unit filebeatd.service could not be found,表示该宿主机尚未安装 LogCollector,请参考安装并启动安装并运行 LogCollector。
    请确保按照日志服务所在地域和网络类型正确安装 LogCollector。
  • 如果回显信息显示 active(running),表示当前宿主机已经安装 LogCollector,且运行状态正常。
    此时若控制台上 LogLollector 心跳状态仍然显示异常,请执行以下步骤继续排查。
    图片

2 检查鉴权参数配置

安装 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 心跳状态仍然显示异常,请执行以下步骤继续排查。

3 检查 LogCollector 是否为最新版本

LogCollector 1.0.1 版本开始支持机器组,如果宿主机中安装的 LogCollector 版本号不是 1.0.1 或后续版本,可能会出现 LogCollector 心跳异常的现象,服务端无法识别该 LogCollector。所以 LogCollector 心跳异常时需检查 LogCollector 的版本是否符合要求。
执行以下命令,查看 LogCollector 的版本。回显信息中会展示当前安装的 LogCollector 版本号。推荐使用最新版本的 LogCollector,详细说明请参考升级 LogCollector

/etc/init.d/filebeatd -v

回显信息示例如下。
图片
升级 LogCollector 的版本后,若控制台上宿主机心跳状态仍然显示异常,请执行以下步骤继续排查。

4 检查机器组 IP 地址配置

说明

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 地址不一致,请修改机器组配置,并稍后再次检查机器状态。
    图片

5 检查机器标识配置

说明

机器标识地址类型的机器组,请参考此步骤进行排查。

在机器标识地址类型的机器组中,已配置的机器标识必须和 LogCollector 中配置的机器 Label 一致,否则机器组中没有 LogCollector 的心跳状态。
执行以下命令,查看 LogCollector 的配置文件。

cat /usr/local/filebeat-7.12.0/etc/filebeat.yml

系统回显信息如下,其中 label 的值即为 LogCollector 中配置的机器 Label。如果此值与机器组中配置的机器标识不一致,请修改机器组配置,并稍后再次检查机器状态。
图片