全部產品
Search
文件中心

Simple Log Service:Logtail機器組問題排查思路(主機情境)

更新時間:Jul 02, 2024

本文主要介紹如何系統排查主機情境下的機器組無心跳問題。

步驟一:檢查Logtail是否正常運行

Linux系統

  1. 登入已安裝Logtail的機器。

  2. 執行如下命令。

    ps -ef | grep ilogtail
    • 返回結果中出現兩條如下類似資訊(分別代表Logtail守護進程和Logtail背景工作處理序)時,說明Logtail正常運行。

      UID          PID    PPID  C STIME TTY          TIME CMD
      ...
      root          12       1  0 Nov10 ?        00:00:00 /usr/local/ilogtail/ilogtail
      root          14      12  0 Nov10 ?        03:07:43 /usr/local/ilogtail/ilogtail
      ...
      重要

      如果返回結果中出現3條及以上Logtail運行資訊,則說明當前伺服器中有多個Logtail執行個體在運行,存在重複採集的風險,請檢查是否為預期行為。

    • 如果返回結果顯示Logtail相關進程未運行,請安裝Logtail。具體操作,請參見安裝Logtail(Linux系統)

      重要

      安裝時,請務必選擇支援安裝Logtail的作業系統、按照Simple Log ServiceProject所屬地區選擇安裝參數以及根據網路類型選擇安裝方式。關於網路類型的更多資訊,請參見選擇網路

Windows系統

  1. 登入Logtail所在的機器。

  2. 開啟運行視窗,輸入services.msc

  3. 查看LogtailDaemon服務(Logtail 1.0.0.0及以上版本)或LogtailWorker服務(Logtail 0.x.x.x版本)的運行狀態。

    如果上述服務未運行,請安裝Logtail。具體操作,請參見安裝Logtail(Windows系統)

    重要

    安裝時,請務必選擇支援安裝Logtail的作業系統、按照Simple Log ServiceProject所屬地區選擇安裝參數以及根據網路類型選擇安裝方式。關於網路類型的更多資訊,請參見選擇網路

步驟二:確認機器組中的IP地址是否為Logtail擷取的IP地址

Logtail擷取伺服器IP地址的方式如下:

  • 如果您沒有設定主機名稱綁定,則Logtail會擷取伺服器中第一塊網卡的IP地址。

  • 如果您在/etc/hosts檔案中設定了主機名稱綁定,則Logtail會擷取綁定的主機名稱對應的IP地址。

您可以根據下述步驟完成排查。

  1. 開啟app_info.json檔案。

    Logtail將擷取的IP地址記錄在app_info.json檔案的ip欄位中,該檔案在不同系統下的預設路徑說明如下表所示。

    作業系統

    Logtail

    app_info.json檔案路徑

    Linux

    Logtail(64位程式)

    /usr/local/ilogtail/app_info.json

    Windows(64位作業系統)

    Logtail (64位程式)

    C:\Program Files\Alibaba\Logtail\app_info.json

    Logtail(32位程式)

    C:\Program Files (x86)\Alibaba\Logtail\app_info.json

    Windows (32位作業系統)

    Logtail(32位程式)

    C:\Program Files\Alibaba\Logtail\app_info.json

  2. 擷取app_info.json檔案中的ip欄位值。

    {
      "UUID" : "",
      "hostname" : "iZ8vbdlzf******azuhZ",
      "instance_id" : "E9633380-***********-00163E1AA597_172.16.2.200_166****11",
      "ip" : "172.**.**.200",
      "logtail_version" : "1.3.1",
      "os" : "Linux; 4.19.91-26.1.al7.x86_64; #1 SMP Tue Jul 26 17:52:28 CST 2022; x86_64",
      "update_time" : "2022-12-27 05:38:33"
    }
  3. 確認機器組中使用的是Logtail擷取的IP地址。

    Simple Log Service機器組包括IP地址機器組和使用者自訂標識機器組。更多資訊,請參見機器組簡介

    • 如果是IP地址機器組,請查看IP地址文字框內的IP地址。具體操作,請參見管理機器組

      IP地址文字框內填寫了目標Logtail的其它IP地址(例如公網地址)時,請修改為Logtail擷取的IP地址,然後觀察機器心跳是否正常。如果正常,則可以結束本次排查。

    • 如果是使用者自訂標識機器組,請使用Logtail擷取的IP地址搜尋目標機器組的狀態資訊。具體操作,請參見管理機器組。如果心跳顯示OK,則可以結束本次排查流程。image..png

步驟三:檢查Logtail啟動參數是否正確

ilogtail_config.json檔案記錄了Logtail的相關啟動參數。

  1. 登入Logtail所在的機器。

  2. 尋找ilogtail_config.json檔案。

    先執行如下命令確認環境變數中是否指定了該檔案的儲存路徑。

    echo $ALIYUN_LOGTAIL_CONFIG

    如果返回結果為空白,則說明未使用環境變數指定ilogtail_config.json檔案的儲存路徑。您可以通過如下預設路徑尋找。

    作業系統

    Logtail

    ilogtail_config.json檔案路徑

    Linux

    Logtail(64位程式)

    /usr/local/ilogtail/ilogtail_config.json

    Windows(64位作業系統)

    Logtail(64位程式)

    C:\Program Files\Alibaba\Logtail\ilogtail_config.json

    Logtail(32位程式)

    C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json

    Windows (32位作業系統)

    Logtail(32位程式)

    C:\Program Files\Alibaba\Logtail\ilogtail_config.json

    1. 開啟ilogtail_config.json檔案,確認設定檔參數是否正確。

      {
        "config_server_address" : "http://logtail.<config_region>.log.aliyuncs.com",
        "data_server_list" :
        [
          {
            "cluster" : "<project地區>",
            "endpoint" : "<endpoint>"
          }
        ],
        ...
      }
      • 如果ilogtail_config.json檔案中的啟動參數符合下述表格中的說明,則表示Logtail啟動參數正確。

      • 如果Logtail啟動參數錯誤,請根據下述表格修改ilogtail_config.json檔案,然後重啟Logtail。具體操作,請參見附錄:重啟Logtail

        情境

        網路類型

        <config_region>

        <endpoint>

        伺服器為ECS,且與Project屬於同一地區

        阿里雲內網

        <project地區>-intranet

        <project地區>-intranet.log.aliyuncs.com

        其它情況

        公網

        <project地區>

        <project地區>.log.aliyuncs.com

        傳輸加速

        log-global.aliyuncs.com

    步驟四:檢查網路是否通暢

    使用Logtail上傳資料成功,至少需要保證Logtail所在伺服器能夠連通下列地址。

    重要

    如果使用內網,需要在<endpoint>後添加-intranet

    1. ilogtail_config.json檔案中的config_server_address欄位指定的地址及其HTTPS版本。

    2. http://<project名>.<endpoint>

      • Project的名稱和地區,可以通過如下方式查看。

        image

      • <endpoint>ilogtail_config.json檔案中data_server_list.endpoint欄位指定的地址。

    3. http://ali-<project地區>-sls-admin.<endpoint>。其中<endpoint>ilogtail_config.json檔案中data_server_list.endpoint欄位指定的地址。

    具體的網路檢查及解決方案如下:

    Linux系統

    1. 登入Logtail所在的機器。

    2. 執行curl命令依次串連上述地址。

      curl xxx

      所有返回結果都為如下類似資訊,說明網路暢通。

      {"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5D****09"}}

      如果網路不暢通,請檢查網路環境中80和443連接埠是否已經開放、目標地址是否被攔截以及其他網路側的檢查(例如DNS配置、安全性群組等)。

    Windows系統

    1. 登入Logtail所在的機器。

    2. 調用telnet命令依次嘗試串連上述地址。

      telnet xxx 80 # 如果是HTTPS協議,則連接埠號碼為443。

      所有返回結果都為如下類似資訊,說明網路暢通。

      Trying 100*0*7*5...
      Connected to xxx.
      Escape character is '^]'.

      如果網路不暢通,請檢查網路環境中80和443連接埠是否已經開放、目標地址是否被攔截以及其他網路側的檢查(例如DNS配置、安全性群組等)。

    步驟五:檢查Logtail所在伺服器的系統時間是否正確

    Linux系統

    1. 登入Logtail所在的機器。

    2. 執行date命令查看系統時間。

      Wed Dec 28 06:59:26 UTC 2022

      如果系統時間明顯快於或慢於當前真即時間,請嘗試如下修改。

      • 調整系統時間至真即時間。

      • 如果不能修改系統時間,請修改Logtail啟動參數,即在ilogtail_config.json檔案中增加配置項"enable_log_time_auto_adjust": true。修改後,需要重啟Logtail。具體操作,請參見附錄:重啟Logtail。ilogtail_config.json檔案路徑說明,請參見步驟三:檢查Logtail啟動參數是否正確

    Windows系統

    1. 登入Logtail所在的機器。

    2. 查看案頭右下角工作列中時間資訊。

      • 調整系統時間至真即時間。

      • 如果不能修改系統時間,請修改Logtail啟動參數,即在ilogtail_config.json檔案中增加配置項"enable_log_time_auto_adjust": true。修改後,需要重啟Logtail。具體操作,請參見附錄:重啟Logtail。ilogtail_config.json檔案路徑說明,請參見步驟三:檢查Logtail啟動參數是否正確

    步驟六:檢查是否存在使用者標識

    重要

    使用者標識必須是阿里雲帳號ID(主帳號ID)。如何擷取,請參見擷取Log Service所在的阿里雲帳號ID

    您可以通過環境變數ALIYUN_LOGTAIL_USER_ID或指定目錄下的使用者標識檔案判斷是否存在使用者標識。如果已通過環境變數設定使用者標識,則以環境變數配置方式為準。因此,您需要先執行如下命令,確認是否已通過環境變數指定使用者標識。

    echo $ALIYUN_LOGTAIL_USER_ID
    • 如果返回結果中包含當前Project所屬阿里雲帳號ID,則說明已正確配置使用者標識。

    • 如果返回結果非空但未包含當前Project所屬阿里雲帳號ID,則需修改該環境變數的值為Project所屬的阿里雲帳號ID或在現有值後面增加Project所屬的阿里雲帳號ID,以半形逗號(,)分隔。

    • 如果返回結果為空白,則您需要查看指定路徑中是否已有使用者標識檔案。

      說明

      使用者標識檔案路徑如下:

      • Linux系統:/etc/ilogtail/users/

      • Windows系統:C:\LogtailData\users\

      • 如果指定路徑下無使用者標識檔案或使用者標識檔案配置錯誤,請按照如下方法解決。

        • Linux系統:執行cd /etc/ilogtail/users/ && touch <uid>命令,建立使用者標識檔案。其中<uid>為Project所屬的阿里雲帳號ID。

        • Windows系統:進入C:\LogtailData\users\目錄,建立一個名為<uid>的空檔案。其中<uid>為Project所屬的阿里雲帳號ID。

      • 如果指定路徑下存在以當前Project所屬的阿里雲帳號ID命名的檔案,則說明使用者標識配置正確。

    重要

    完成上述修改後,必須重啟Logtail。具體操作,請參見附錄:重啟Logtail

    步驟七:如果是使用者自訂標識機器組,檢查是否已配置自訂標識

    您可以通過環境變數ALIYUN_LOGTAIL_USER_DEFINED_ID或指定目錄下的user_defined_id檔案判斷是否已在伺服器上配置使用者自訂標識。如果已通過環境變數設定使用者自訂標識,則以環境變數配置為準。因此,您需要先執行如下命令,確認是否已通過環境變數指定使用者自訂標識。

    echo $ALIYUN_LOGTAIL_USER_DEFINED_ID
    • 如果返回結果中包含您在機器組中設定的使用者自訂標識,則說明已正確配置使用者自訂標識。

    • 如果返回結果非空但未包含您在機器組中設定的使用者自訂標識,則您需要修改該環境變數的值為您在機器組中設定的使用者自訂標識或在現有值後增加機器組的使用者自訂標識,以半形逗號(,)分隔。

    • 如果返回結果為空白,您需要查看是否存在user_defined_id檔案或該檔案中是否已配置使用者自訂標識。

      說明

      user_defined_id檔案路徑如下:

      • Linux系統:/etc/ilogtail/user_defined_id

      • Windows系統:C:\LogtailData\user_defined_id

      • 如果user_defined_id檔案不存在,則新增一個user_defined_id的檔案,然後在檔案中輸入機器組的使用者自訂標識。具體操作,請參見配置使用者自訂標識

      • 如果user_defined_id檔案中無使用者自訂標識或自訂標識配置錯誤,則在檔案中新增一行,然後輸入機器組的使用者自訂標識。具體操作,請參見配置使用者自訂標識

      • 如果user_defined_id檔案已包含您在機器組中設定的使用者自訂標識,則說明使用者自訂標識配置正確。

    重要

    完成上述修改後,必須重啟Logtail。具體操作,請參見附錄:重啟Logtail方法

    後續步驟

    經過上述排查後,仍未解決問題,請提工單

    附錄:重啟Logtail

    Linux系統

    1. 登入Logtail所在的機器。

    2. 運行如下命令。

      sudo /etc/init.d/ilogtaild restart

    Windows系統

    1. 登入Logtail所在的機器。

    2. 開啟運行視窗,輸入services.msc

    3. 重啟LogtailDaemon服務(Logtail 1.0.0.0及以上版本)或LogtailWorker服務(Logtail 0.x.x.x版本)。