全部產品
Search
文件中心

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

更新時間:Sep 11, 2026

機器組心跳用於檢測伺服器與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.json中ip欄位的資訊添加到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.json中ip欄位的資訊。

    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.json中ip欄位。若不包含則添加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,該行日誌會包含當前運行中使用的配置,檢查是否和本地檔案一致。

LoongCollector 報錯“fetch ecs token fail Timeout was reached”如何處理?

問題現象

LoongCollector 報錯fetch ecs token fail Timeout was reached,無法擷取 ECS Metadata 服務資訊。

問題原因

LoongCollector 無法訪問 ECS Metadata 服務100.100.100.200。

解決方案

  1. 在 ECS 上執行以下命令,測試 ECS Metadata 服務連通性。

    curl http://100.100.100.200/latest/meta-data/instance-id
  2. 如果命令無法串連到 Metadata 服務,檢查 ECS 安全性群組配置,確認未限制對100.100.100.200的訪問;允許存取後重新執行該命令確認連通性。

同地區 ECS 訪問 SLS 內網 Endpoint 連線逾時如何排查?

問題現象

同地區 ECS 訪問 SLS 內網 Endpoint 時連線逾時。

問題原因

ECS 與 SLS Project 不在同一地區、內網 Endpoint 的 DNS 解析或網路連通性異常、ECS 內部防火牆或安全軟體攔截阿里雲內網網段,或者 DNS 未指向阿里雲內網 DNS,均可能導致連線逾時。

解決方案

按以下順序排查:

  1. 確認 ECS 與 SLS Project 位於同一地區。

  2. 測試內網 OSS Endpoint 和 SLS Endpoint 的 DNS 解析及連通性。執行命令前,將<OSS內網Endpoint>替換為當前地區的 OSS 內網 Endpoint,將<Project名稱>替換為目標 Project 名稱,並將<SLS內網Endpoint>替換為當前地區的 SLS 內網 Endpoint。

    curl -v http://<OSS內網Endpoint>
    curl -v http://<Project名稱>.<SLS內網Endpoint>

    如果命令提示網域名稱無法解析或連線逾時,繼續排查防火牆和 DNS 配置。

  3. 檢查 ECS 內部防火牆(iptables)或安全軟體(例如 Tailscale)是否攔截阿里雲內網網段100.64.0.0/10、100.115.0.0/16等;如果存在攔截規則,將這些網段加入白名單。

  4. 檢查 DNS 配置是否正確指向阿里雲內網 DNS100.100.2.136和100.100.2.138,修正後再次執行 curl 命令確認連通性。

ACK 叢集中 NodeLocalDNS 導致 LoongCollector 擷取錯誤 IP 如何處理?

問題現象

ACK 叢集中啟用 NodeLocalDNS 後,LoongCollector 擷取到錯誤的 IP 位址,導致機器組心跳異常。

問題原因

NodeLocalDNS 建立的虛擬網卡可能干擾 LoongCollector 或 Logtail 擷取伺服器 IP 位址。

解決方案

  1. 在 LoongCollector 或 Logtail 的設定檔中添加working_ip參數,並將其設定為正確的物理 IP 位址。

  2. 儲存配置後重啟採集器,使working_ip配置生效。使用 LoongCollector 時執行以下命令;使用 Logtail 時執行sudo /etc/init.d/ilogtaild restart。

    sudo /etc/init.d/loongcollectord restart

SLS 自動安裝 Logtail 時報錯 ClientNotRunning 且 aliyun service 未啟動如何處理?

問題現象

SLS 自動安裝 Logtail 時出現ClientNotRunning錯誤,且 ECS 執行個體上的 aliyun service 未啟動。

問題原因

自動安裝依賴 Cloud Assistant 服務;該服務未啟動時,無法完成 Logtail 的自動安裝。

解決方案

  1. 在 ECS 執行個體上執行以下命令,啟動並設定 Cloud Assistant 服務開機自動啟動。

    systemctl enable aliyun.service --now
  2. 命令執行成功後,重新執行 SLS 採集組件的自動安裝操作。

LoongCollector 啟動失敗報錯“daemon not found, but found orphaned workers”如何處理?

問題現象

LoongCollector 啟動失敗,並報錯daemon not found, but found orphaned workers。

問題原因

組件進程異常或伺服器資源使用率過高,可能導致殘留 worker 進程並使 LoongCollector 無法啟動。

解決方案

按以下順序處理:

  1. 檢查伺服器記憶體和 CPU 監控,確認資源使用率是否過高;資源使用率過高時,先恢複可用資源後再啟動 LoongCollector。

  2. 在組件管理中嘗試升級 LoongCollector 組件版本。

  3. 如果升級後問題仍未解決,卸載 LoongCollector 組件並重新安裝。

  4. 檢查機器組心跳狀態是否正常,並核對採集配置是否正確。