通过Logtail采集日志时,如果Logtail机器组心跳状态异常,您可使用Logtail自动诊断工具或人工诊断方式排查问题。本文主要介绍Logtail机器组无心跳的排查思路。

排查流程

使用Logtail采集日志时,在服务器上安装Logtail后,Logtail会定时向服务端发送心跳包。如果机器组无心跳,说明客户端和服务端连接失败。日志服务提供自动诊断和人工诊断两种方式,您可以根据需求选择。
  • 自动诊断:日志服务提供针对Linux服务器的Logtail自动诊断工具。更多信息,请参见Logtail自动诊断工具
  • 人工诊断:Logtail自动诊断工具未检查出问题或服务器为Windows系统时,请参见本文进行人工诊断。
排查方式

步骤一:检查是否已安装Logtail

您可以通过查看Logtail状态确定是否已在目标服务器上安装Logtail。

  1. 查看Logtail状态。
    • Linux服务器

      执行如下命令,查看Logtail状态。

      sudo /etc/init.d/ilogtaild status 
      如果系统返回如下信息,表示已安装Logtail。
      ilogtail is running
    • Windows服务器
      1. 打开运行窗口,输入services.msc,打开服务窗口。
      2. 查看LogtailDaemon服务(Logtail 1.0.0.0及以上版本)或LogtailWorker服务(Logtail 0.x.x.x版本)的运行状态。

        如果正在运行,表示已安装Logtail。

  2. 根据Logtail状态进行操作。

步骤二:检查Logtail安装参数和安装方式是否正确

安装Logtail时,需要为Logtail客户端指定正确的服务端访问入口,即根据日志服务Project所在地域选择Logtail安装参数,然后根据网络类型选择安装方式。如果安装参数或安装脚本错误,可能导致Logtail机器组无心跳。关于不同地域的服务入口,请参见服务入口

Logtail配置文件 ilogtail_config.json中记录了Logtail安装参数及所选的安装方式,该文件路径说明如下:
  • Linux操作系统:/usr/local/ilogtail/ilogtail_config.json
  • Windows 32位操作系统:C:\Program Files\Alibaba\Logtail\ilogtail_config.json
  • Windows 64位操作系统:C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json

您可以根据下述步骤检查Logtail安装参数和安装方式。

  1. 检查ilogtail_config.json文件中客户端连接的服务入口所属地域与您Project所在地域是否一致。
    1. 在服务器上执行如下命令,查看Logtail客户端连接的服务入口的所属地域。
      cat /usr/local/ilogtail/ilogtail_config.json

      系统显示如下信息,表示Logtail被安装在华东1(杭州)地域的ECS实例中。

      检查安装参数
    2. 在日志服务控制台上查看目标Project的所属地域。

      如果Project所属地域与config_server_address字段中记录的地域一致,则说明安装参数正确。

      所属地域
  2. 检查ilogtail_config.json文件中配置的域名,确认是否根据服务器所属网络环境选择了正确的Logtail安装方式。
    例如 ilogtail_config.json中记录Logtail配置的域名为 cn-hangzhou-intranet.log.aliyuncs.com
    • Linux操作系统
      执行如下命令,检查网络连通性。
      curl logtail.cn-hangzhou-intranet.log.aliyuncs.com

      如果系统返回如下类似信息,表示网络连接成功。

      {"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5DD39230BE9910FC6CF17609"}}
    • Windows操作系统
      执行如下命令,检查网络连通性。
      telnet logtail.cn-hangzhou-intranet.log.aliyuncs.com 80

      如果系统返回如下类似信息,表示网络连接成功。

      Trying 100*0*7*5...
      Connected to logtail.cn-hangzhou-intranet.log.aliyuncs.com.
      Escape character is '^]'. 
  3. 判断Logtail安装参数和安装方式是否正确。

步骤三:检查机器组IP地址是否正确

机器组中设置的IP地址必须和Logtail获取到的服务器IP地址一致,否则机器组将无心跳或无法采集日志。Logtail获取服务器IP地址的方式如下:
  • 如果没有设置主机名绑定,则获取服务器中第一块网卡的IP地址。
  • 如果在/etc/hosts文件中设置了主机名绑定,则会获取绑定的主机名对应的IP地址。
    说明 您可以通过 hostname查看主机名。

您可以根据下述步骤检查机器组IP地址是否正确。

  1. 查看Logtail获取的IP地址。
    app_info.json文件中的 ip字段记录了Logtail获取的IP地址,该文件路径说明如下:
    • Linux操作系统:/usr/local/ilogtail/app_info.json
    • Windows 32位操作系统:C:\Program Files\Alibaba\Logtail\app_info.json
    • Windows 64位操作系统:C:\Program Files (x86)\Alibaba\Logtail\app_info.json
    重要
    • 如果app_info.json文件中ip字段为空,Logtail将无法工作。您可以通过Logtail启动参数中的working_ip参数设置服务器的IP地址,然后重启Logtail。更多信息,请参见设置Logtail启动参数
    • app_info.json文件仅做记录,修改该文件并不会改变Logtail获取的IP地址。
    查看Logtail获取的IP地址
  2. 查看机器组中的IP地址。
    具体操作,请参见 管理机器组查看机器组
  3. 判断Logtail客户端获取的IP地址与机器组中设置的IP地址是否一致。
    • 如果一致,请执行步骤四:检查是否已配置用户标识
    • 如果不一致,请根据Logtail客户端获取的IP地址,修改机器组中的IP地址。具体操作,请参见修改机器组
      • 如果机器组中配置的IP地址错误,请修改机器组中的IP地址,然后等待1分钟再查看机器组心跳状态。
      • 如果修改了服务器上的网络配置(例如修改了/etc/hosts文件),则您需要重启Logtail以获取新的IP地址,并根据app_info.json文件中的ip字段修改机器组中的IP地址。
        重启Logtail的方法如下所示。
        • Linux操作系统
          sudo /etc/init.d/ilogtaild stop
          sudo /etc/init.d/ilogtaild start
        • Windows操作系统
          1. 打开运行窗口,输入services.msc,打开服务窗口。
          2. 重启LogtailDaemon服务(Logtail 1.0.0.0及以上版本)或LogtailWorker服务(Logtail 0.x.x.x版本)。

步骤四:检查是否已配置用户标识

如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您要通过Logtail采集该服务器日志,需在服务器上安装Logtail后,手动配置日志服务所在阿里云账号ID为用户标识,表示该账号有权限通过Logtail采集该服务器日志。更多信息,请参见配置用户标识

重要 必须是阿里云账号ID。如何获取,请参见 获取日志服务所在的阿里云账号ID
  • Linux操作系统
    检查 /etc/ilogtail/users目录下是否存在与阿里云账号ID同名的文件。
    • 如果有,表示已配置用户标识。
    • 如果没有,请配置用户标识。具体操作,请参见配置用户标识
  • Windows操作系统
    检查 C:\LogtailData\users目录下是否存在与阿里云账号ID同名的文件。
    • 如果有,表示已配置用户标识。
    • 如果没有,请配置用户标识。具体操作,请参见配置用户标识