概述

在日志服务控制台中配置Logtail的采集日志数据,如果Logtail机器组心跳状态不正常,可使用Logtail自动诊断工具或人工诊断的方式排查问题。本文主要介绍Logtail机器组无心跳的排查思路。

详细信息

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

  • Logtail机器无心跳的排查流程如下图所示。
    p11589.png

步骤一:查看是否已经安装Logtail

请根据现场实际情况,选择以下对应的步骤,查看Logtail服务的状态。

  1. 适用于Linux服务器。
    • 执行以下命令,查看Logtail服务的状态。
      sudo /etc/init.d/ilogtaild status
      系统显示类似如下,表示已经安装Logtail服务。
      ilogtail is running
  2. 适用于Windows服务器。
    • 打开运行窗口,输入services.msc,打开服务窗口。
    • 查看LogtailDaemonLogtailWorker服务的运行状态,如果正在运行,表示已经安装Logtail。
      说明:如未安装Logtail客户端,请参见安装Logtail(Linux系统)安装Logtail(Windows系统)进行安装,安装时请务必按照您日志服务Project所属Region以及网络类型进行安装。如果Logtail正在运行,请执行以下步骤进行排查。

步骤二:查看Logtail的安装参数是否正确

安装Logtail时,需要为客户端指定正确的服务端访问入口,即根据日志服务的Project所在地域选择Logtail的安装参数,详情请参见安装Logtail。并根据网络类型选择不同的安装方式,详情请参见网络类型。如果安装参数或安装脚本错误,可能会导致Logtail机器无心跳。关于不同地域的服务入口,请参见服务入口。Logtail的ilogtail_config.json配置文件中记录了Logtail安装参数及所选的安装方式,以下为该文件的路径:

  • Linux服务器:/usr/local/ilogtail/ilogtail_config.json
  • Windows x64位的服务器:C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json
  • Windows x86位的服务器:C:\Program Files\Alibaba\Logtail\ilogtail_config.json
  1. 查看Logtail的安装参数。
    • 在Linux系统中,执行以下命令,查看客户端连接的网络入口所属Region是否与您Project所在的Region一致。
      cat /usr/local/ilogtail/ilogtail_config.json
      系统显示类似如下,表示Logtail安装在华东1(杭州)地域的ECS实例中。
      p21881.png
    • Project所属地域如下图所示。
      p69395.png
  2. 查看安装Logtail的方式,通过测试ilogtail_config.json文件中配置的域名,查看是否根据服务器所属网络环境选择了正确的安装方式。ilogtail_config.json文件中记录Logtail配置的域名,本文以cn-hangzhou-intranet为例。
    • 适用于Linux服务器。
      • 执行以下命令,检查网络的连通性。
        curl logtail.cn-hangzhou-intranet.log.aliyuncs.com
        系统显示类似如下,表示网络连通性正常。
        {"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5DD39230BE9910FC6CF17609"}}
    • 适用于Windows服务器。
      • 单击开始,输入cmd,单击确定,打开命令行工具。
      • 执行以下命令,检查网络连通性。
        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 '^]'. 
        说明:如果检查失败,说明安装Logtail时选择了错误的参数,所以会显示执行了错误的安装命令。请参见安装Logtail(Linux系统)安装Logtail(Windows系统)选择正确的安装参数。如果Logtail已正确安装,请执行以下步骤进行排查。

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

机器组中配置的IP地址必须和Logtail获取到的服务器地址一致,否则机器组无心跳、或无法采集到日志数据。Logtail获取机器IP地址的方式如下:
  • 如果机器内没有设置主机名绑定,会读取服务器的第一块网卡IP地址。
  • 如果在文件/etc/hosts中设置了主机名绑定,则会读取绑定主机名对应的IP地址。
  1. 在Linux服务器中,执行以下命令, 查看Logtail获取的IP地址。
    cat /usr/local/ilogtail/app_info.json
    系统显示类似如下。

    说明:
    • 如果app_info.json文件中ip的值为空,则Logtail无法工作。此时需为服务器设置IP地址并重启Logtail。
    • app_info.json文件仅做记录,修改该文件并不会改变Logtail获取的IP地址。
  2. 登录日志服务控制台,单击Project名称。单击机器组,选择目标机器组名称。
  3. 机器组配置页面,查看机器组的状态,如果服务端机器组内填写的IP地址与客户端获取的IP地址不一致,则需要修改。
    p11586.png
    说明:
    • 若服务端机器组填写了错误的IP地址,请修改机器组内IP地址并保存,等待1分钟再查看心跳状态。
    • 若修改了机器上的网络配置(如修改/etc/hosts文件),请重新启动Logtail服务以获取新的IP地址,并根据app_info.json文件中的ip的值,修改机器组内的IP地址。
  4. 请根据现场情况,选择以下对应的步骤,重启Logtail服务。
    • 在Linux服务器中,依次执行以下命令,重启Logtail服务。
      sudo /etc/init.d/ilogtaild stop 
      sudo /etc/init.d/ilogtaild start
    • 在Windows服务器中,打开运行窗口,输入services.msc,单击确定。打开服务窗口,单击LogtailWorker服务,单击左侧的重启动,重启Logtail服务。

步骤四:查看非本账号下的ECS实例是否已经配置阿里云主账号ID

如果您的ECS服务器和日志服务的Project不在同一账号下,或服务器为其他云厂商服务器、自建IDC,则需要在服务器上配置阿里云主账号ID,为安装Logtail的机器授权,详情请参见配置阿里云主账号ID。请检查/etc/ilogtail/users目录下是否有与阿里云主账号ID同名的文件。如果没有,请参见配置阿里云主账号ID进行操作。

说明:

  • 必须是主账号的ID。
  • 账号ID请在阿里云控制台个人信息中查看。
  • 如果您的问题仍未解决,请提交工单到日志服务。工单中请提供您的Project、Logstore、机器组、app_info.jsonilogtail_config.json以及自助诊断工具的输出内容。

适用于

  • 日志服务