全部產品
Search
文件中心

Simple Log Service:心跳異常問題匯總排查

更新時間:Nov 14, 2025

機器組心跳用於檢測伺服器與Log Service間的通訊狀態,若心跳異常將導致資料無法傳輸至Log Service。本文將分析心跳異常的產生原因及常見情境的解決方案。

心跳異常原因分析

伺服器上的LoongCollector通過以下配置項,來確定目標Project並上報心跳,因此解決心跳異常並不複雜,僅需確認配置項取值,並檢查網路情況即可。

  • Log ServiceProject所屬阿里雲主帳號:指定該帳號有許可權訪問、採集這台伺服器的日誌。

  • Project所屬地區與傳輸方式:Log Service訪問網域名稱由地區和傳輸方式動態拼接產生,需確保伺服器與訪問網域名稱之間網路通暢。相關概念請參考網路傳輸方式與網域名稱

  • 使用者自訂標識/IP:通過IP或使用者自訂標識與機器組關聯,建立心跳。

建立心跳的過程

  1. LoongCollector擷取配置的一個或多個阿里雲帳號ID資訊,地區與傳輸方式拼接組成的訪問網域名稱,使用者自訂標識或IP資訊。

  2. LoongCollector上報心跳與上述資訊至指定地區中的Project。

  3. 合格一個或多個Project比較機器組中IP或使用者自訂標識與上送資訊是否一致。

  4. 資訊一致的一個或多個Project將成功建立心跳,機器組顯示心跳為OK。

常見心跳異常情境

新增加的伺服器心跳為FAIL

心跳為FAIL時,可能是初次建立心跳需要花費一些時間,請等待兩分鐘左右後重新整理心跳狀態,若仍為FAIL,請按如下步驟檢查:

  1. 檢查LoongCollector安裝情境選擇是否有誤,若安裝情境正確進行下一步。否則請卸載後重新安裝。

    安裝方式

    適用情境

    同帳號同地區

    僅當伺服器為阿里雲ECS,且ECS與Project屬於同一個阿里雲帳號,所屬地區也相同時適用。

    同帳號不同地區

    當伺服器為阿里雲ECS,且ECS與Project屬於同一個阿里雲帳號,但不屬於同一個地區時適用。

    不同帳號同地區

    當伺服器為阿里雲ECS,且ECS與Project屬於同一個地區,但不屬於同一個阿里雲帳號時適用。

    其他雲/自建伺服器

    • 當伺服器不是阿里雲ECS,例如自建伺服器或其他雲端服務器時適用。

    • 當伺服器為阿里雲ECS,但ECS與Project不屬於同一個阿里雲帳號,也不在同一個地區時,可視為自建伺服器。

  2. 在伺服器上通過sudo /etc/init.d/loongcollectord status 查看LoongCollector啟動狀態,返回loongcollector is running表示啟動成功。否則執行如下命令啟動LoongCollector:

    若使用的是Logtail採集器,則查看Logtail啟動狀態命令為:sudo /etc/init.d/ilogtaild status,啟動Logtail命令為:sudo /etc/init.d/ilogtaild start
    sudo /etc/init.d/loongcollectord start
  3. 若是跨帳號情境(Project所屬阿里雲帳號與伺服器所屬帳號不同):需手動設定使用者ID檔案,使該帳號有許可權訪問、採集這台伺服器的日誌。

    檢查使用者ID檔案內容

    1. 請檢查是否存在/etc/ilogtail/users/{阿里雲帳號ID}檔案,若不存在請建立。

      1. 登入Log Service控制台,滑鼠懸浮在右上方帳戶圖片上,在彈出的標籤頁中查看並複製帳號ID。注意需要複製主帳號ID。

      2. 在安裝了LoongCollector的伺服器上,以主帳號ID作為檔案名稱,建立使用者ID檔案。

        touch /etc/ilogtail/users/{阿里雲帳號ID} #以主帳號ID作為檔案名稱,無需設定檔尾碼。
    2. 檢查檔案名稱是否滿足下列要求,不滿足請修改。

      • {阿里雲帳號ID}必須為主帳號ID。

      • {阿里雲帳號ID}應為Log ServiceProject所屬的主帳號ID,而非伺服器所屬的帳號。

  4. 確認地區與傳輸方式正確,並能聯通訪問網域名稱:查看伺服器上/usr/local/ilogtail/ilogtail_config.json檔案中region資訊是否與Log ServiceProject地區的RegionID一致。一致則排查下一步,若不一致則修改:

    測試訪問網域名稱聯通性並修改伺服器配置

    1. 登入Log Service控制台,在Project列表中,單擊目標Project。

    2. 單擊Project名稱右側的image進入專案概覽頁面。

    3. 訪問網域名稱中可查看當前Project的網域名稱資訊,替換${project名稱}為Project名稱,${網域名稱資訊}為公網網域名稱後在伺服器上執行命令。

      curl https://${project名稱}.${網域名稱資訊}
    4. 返回類似資訊{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5D****09"}},說明網路暢通。否則檢查目標地址是否被攔截以及其他網路方面的檢查(例如出口方向是否開放80(HTTP)連接埠和443(HTTPS)連接埠、DNS配置、安全性群組等)。

      返回Error資訊是因為訪問連結缺少必要參數。當前測試僅驗證網路連通性,未使用完整連結,因此在網路正常的情況下會顯示Error的提示資訊。
    5. 修改/usr/local/ilogtail/ilogtail_config.json中參數:

      • config_servers:此參數為擷取採集配置路徑,修改為"http://logtail.${網域名稱資訊}",其中${網域名稱資訊}替換為公網網域名稱。

      • data_servers:

        • region:此參數為資料轉送使用的地區資訊,修改為"${RegionID}",其中${RegionID}替換為Log ServiceProject地區的RegionID

        • endpoint_list:此參數為資料轉送使用的路徑,修改為"${網域名稱資訊}",其中${網域名稱資訊}替換為公網網域名稱。

    6. 儲存修改後重啟LoongCollector。

      若使用的是Logtail採集器,重啟命令為:sudo /etc/init.d/ilogtaild restart
      sudo /etc/init.d/loongcollectord restart
  5. 檢查使用者自訂標識或IP的值:

    1. 登入Log Service控制台在Project列表中,單擊目標Project。

    2. 單擊image資源,單擊機器組,在機器組中單擊目標機器組。

    3. 查看機器組配置頁面,並確認機器組標識內容後選擇對應操作:

      使用者自訂標識

      1. 確認伺服器上是否存在/etc/ilogtail/user_defined_id檔案,若不存在請建立。

      2. 向該檔案中寫入自訂的字串作為使用者自訂標識,此處以user-defined-test-1為例。

        #向指定檔案寫入自訂字串
        echo "user-defined-test-1" > /etc/ilogtail/user_defined_id 
      3. 修改使用者自訂標識的取值為自訂的字串,此例為user-defined-test-1

      IP地址

      將伺服器上/usr/local/ilogtail/app_info.jsonip欄位的資訊添加到IP地址中。

      ip取值規則:若已在伺服器的/etc/hosts檔案中設定了主機名稱與IP地址綁定,則自動擷取綁定的IP地址。若沒有設定主機名稱綁定,自動擷取本機第一塊網卡的IP地址。若設定了/usr/local/ilogtail/ilogtail_config.json中的working_ip參數,則以working_ip值作為伺服器的IP地址。請至少保證一種情況下能擷取到ip,否則ip欄位值為空白,無法建立心跳。

伺服器曾經心跳成功但當前為FAIL

曾經心跳成功說明配置項正確,若機器群組類型為使用者自訂標識型,則配置項中阿里雲主帳號資訊,地區與傳輸方式,使用者自訂標識等是固定值,未修改不會改變心跳狀態,可能需要檢查網路能否聯通訪問網域名稱。若機器群組類型為IP型,則最有可能是IP地址衝突或IP改變導致心跳為FAIL,請參考如下步驟解決:

  1. 在伺服器上重啟LoongCollector以擷取最新IP資訊。

    若使用的是Logtail採集器,重啟命令為:sudo /etc/init.d/ilogtaild restart
    sudo /etc/init.d/loongcollectord restart
  2. 在伺服器上查看/usr/local/ilogtail/app_info.jsonip欄位的資訊。

    ip取值規則:若已在伺服器的/etc/hosts檔案中設定了主機名稱與IP地址綁定,則自動擷取綁定的IP地址。若沒有設定主機名稱綁定,自動擷取本機第一塊網卡的IP地址。若設定了/usr/local/ilogtail/ilogtail_config.json中的working_ip參數,則以working_ip值作為伺服器的IP地址。
  3. 登入Log Service控制台在Project列表中,單擊目標Project。

  4. 單擊image資源,單擊機器組,在機器組中單擊目標機器組。

  5. 查看機器組配置頁面,確認IP地址中資訊是否包含/usr/local/ilogtail/app_info.jsonip欄位。若不包含則添加ip欄位的值到IP地址中。

  6. 若一致但心跳仍為FAIL,則不適合使用IP型機器組,請切換機器群組類型後嘗試。

切換機器組標識類型後心跳FAIL

出現IP地址衝突或IP改變等情況時,不再適合使用IP型機器組,需切換為使用者自訂標識型機器組。切換機器群組類型並不影響網路聯通情況,阿里雲主帳號資訊,地區與傳輸方式等資訊,因此僅需關注使用者自訂標識取值是否正確。

  1. 確認是否存在/etc/ilogtail/user_defined_id檔案,若不存在請建立。

  2. 向該檔案中寫入自訂的字串作為使用者自訂標識,此處以user-defined-test-1為例。

    #向指定檔案寫入自訂字串
    echo "user-defined-test-1" > /etc/ilogtail/user_defined_id 
  3. 登入Log Service控制台在Project列表中,單擊目標Project。

  4. 單擊image資源,單擊機器組,在機器組中單擊目標機器組。

  5. 查看機器組配置頁面,並確認以下兩項參數取值,若不正確請單擊右上方修改,修改後儲存。

    • 機器組標識:使用者自訂標識。

    • 使用者自訂標識:自訂的字串,此例為user-defined-test-1

常見問題

按文檔排查後,各項配置均正確添加,為何心跳仍FAIL?

如果確認配置正確且網路正常,心跳為FAIL一般有兩種可能:

  • 在該地區較長一段時間內無採集配置,心跳發送間隔被抑制

    • 向每個返回的地區發送請求擷取配置時,為了降低對服務端的壓力,如果從一個地區得不到採集配置,會降低對該地區的請求頻率,最長間隔可達到 12 分鐘,如果該值超過了該地區心跳 FAIL 的閾值,就會導致心跳 FAIL。

    • 解決辦法:忽略心跳 FAIL,直接向該機器所在的機器組上應用採集配置,然後等待下一次向該地區發起請求,心跳即可恢複。如果希望立即恢複的話,重啟即可。

  • 當前使用的配置並不是 ilogtail_config.json 中配置

    • 樣本:使用了一個非預設配置啟動後,運行期間 ilogtail_config.json 被修改而未重啟。

    • 檢查方法:

      • 最簡單的辦法:重啟後自動載入最新配置。

      • 查看日誌:如果擔心對採集有影響,可以查看 /usr/local/ilogtail/ilogtail.LOG 檔案,從開頭處尋找關鍵字 load logtail config file,該行日誌會包含當前運行中使用的配置,檢查是否和本地檔案一致。