全部產品
Search
文件中心

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

更新時間:Dec 19, 2024

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

機器組安裝樣本

排查預覽

  1. 步驟一:檢查Logtail是否正常運行:檢查Logtail在伺服器是否正常運行。

  2. 步驟二:確認機器組中的IP地址是否為Logtail擷取的IP地址:確認機器組中的IP地址是否和Logtail的app_info.json檔案中的IP地址一致,不一致會導致心跳失敗。

  3. 步驟三:檢查Logtail啟動參數是否正確:檢查ilogtail_config.json檔案中配置的Project地區是否正確。

  4. 步驟四:檢查網路是否通暢:檢查伺服器與Project之間網路是否通暢。

  5. 步驟五:檢查Logtail所在伺服器的系統時間是否正確:如果系統時間明顯快於或慢於當前真即時間,需要修改。

  6. 步驟六:檢查是否存在使用者標識:如果Project和ECS伺服器屬於不同帳號,其他雲或者自建伺服器,必須檢查使用者標識。

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

步驟一:檢查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,請安裝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的作業系統、按照Simple Log ServiceProject所屬地區選擇安裝參數以及根據網路類型選擇安裝方式。關於網路類型的更多資訊,請參見選擇網路

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

說明

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

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

  • 如果想自訂IP地址,可以在步驟三ilogtail_config.json檔案中設定working_ip。設定此參數後,app_info.json檔案中的ip欄位將自動與working_ip欄位值同步更新。關於working_ip,請參見設定啟動參數

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

  1. 擷取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

    Logtail將擷取的IP地址記錄在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"
    }
  2. 確認機器組中使用的是Logtail擷取的IP地址。

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

    • IP地址機器組:請查看IP地址是否包含上一步擷取的IP地址。

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

    • 使用者自訂標識機器組:請查看機器組狀態是否包含上一步擷取的IP地址。如果心跳顯示OK,則可以結束本次排查流程。image..png

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

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

  1. 登入Logtail所在的機器。

  2. 尋找ilogtail_config.json檔案。

    該檔案在不同系統下的預設路徑說明如下表所示:

    作業系統

    Logtail

    ilogtail_config.json檔案路徑

    Linux

    Logtail(64位程式)

    /usr/local/ilogtail/ilogtail_config.json

    Windows(64位作業系統)

    Logtail(64位程式)

    \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

        地區具體Project地區資訊請參見開服地區

        情境

        網路類型

        <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 http://<project名>.cn-hangzhou-intranet.log.aliyuncs.com

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

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

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

Windows系統

  1. 登入Logtail所在的機器。

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

    telnet <project名>.cn-hangzhou-intranet.log.aliyuncs.com 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啟動參數是否正確

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

重要
  • 如果是其他雲或者自建伺服器,或者Project和ECS伺服器屬於不同帳號,必須檢查使用者標識。

  • 使用者標識必須是阿里雲帳號ID(主帳號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命名的檔案,則說明使用者標識配置正確。

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

您可以通過指定目錄下的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版本)。