全部產品
Search
文件中心

:採集Docker容器的標準輸出(舊版)

更新時間:Jan 06, 2026

在伺服器上部署Docker後可以採集日誌,Docker的日誌分為兩種類型:標準輸出和檔案日誌。檔案日誌是指容器內產生的日誌被寫入伺服器的指定檔案目錄中,而標準輸出則指容器自身的即時輸出資料流。本文介紹使用Logtail採集容器的標準輸出到LogStore的操作步驟。

概覽

在宿主機中安裝Docker後,針對您在該環境中部署的業務容器所產生的標準輸出(stdout)及標準錯誤(stderr)日誌,您可以使用Logtail進行採集。採集的日誌資料將被傳輸至LogStore中,便於查詢和分析。

image

前提條件

步驟一:安裝Logtail容器並建立機器組

  1. 拉取Logtail鏡像

    登入宿主機,根據Simple Log ServiceProject所在地區,擷取對應的${region_id}。替換${region_id}後,使用以下命令拉取Logtail鏡像。

    重要
    • 各地區對應的${region_id}請參見開服地區,例如華東 1(杭州)對應的${region_id}cn-hangzhou

    #拉取Logtail鏡像:
    docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
    #如果您的伺服器處於阿里雲VPC網路中,請使用如下命令列拉取Logtail鏡像:
    docker pull registry-vpc.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
  2. 啟動Logtail容器

    1. 參數說明

      參數

      參數說明

      ${region_id}

      根據Simple Log ServiceProject所在地區,擷取對應的${region_id},各地區對應的${region_id}請參見開服地區。網路類型選擇請參見Logtail網路類型,啟動參數與設定檔

      • 樣本:若Project位於華東1(杭州),則以阿里雲內網訪問時${region_id}cn-hangzhou,公網訪問時使用cn-hangzhou-internet

      ${aliyun_account_id}

      Simple Log Service所在的阿里雲帳號(主帳號)ID。擷取方法,請參見擷取Log Service所在的阿里雲帳號(主帳號)ID

      ${user_defined_id}

      設定機器組的使用者自訂標識,例如user-defined-docker-1。該標識在Project所在地區內必須唯一。

    2. 根據參數說明,替換命令模板中的3個參數:${region_id}${aliyun_account_id}${user_defined_id},然後執行以下命令啟動Logtail容器。

      # 啟動Logtail容器,替換${region_id},${aliyun_account_id},${user_defined_id}
      docker run -d \
          -v /:/logtail_host:ro \
          -v /var/run/docker.sock:/var/run/docker.sock \
          --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${region_id}/ilogtail_config.json \
          --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \
          --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \
          registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
      重要

      如果您要自訂配置Logtail容器的啟動參數,只需保證以下前提條件。

      • 啟動時,必須配置3個環境變數ALIYUN_LOGTAIL_CONFIGALIYUN_LOGTAIL_USER_IDALIYUN_LOGTAIL_USER_DEFINED_ID

      • 將宿主機上的/var/run目錄掛載到Logtail容器的/var/run目錄。

      • 將宿主機根目錄掛載到Logtail容器的/logtail_host目錄。

      • 如果Logtail日誌(/usr/local/ilogtail/ilogtail.LOG)中出現The parameter is invalid : uuid=none的錯誤記錄檔,請在宿主機上建立一個product_uuid檔案,在其中輸入任意合法UUID(例如169E98C9-ABC0-4A92-B1D2-AA6239C0D261),並把該檔案掛載到Logtail容器的/sys/class/dmi/id/product_uuid目錄。

    3. 輸入docker ps查看容器是否啟動成功。image

  3. 建立使用者自訂標識機器組

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

    2. 左側導覽列中,選擇資源 > 機器組。在開啟的機器組頁面中,選擇機器組右側的機器組 > 建立機器組image

    3. 在建立機器組頁面填寫名稱,機器組標識選擇使用者自訂標識,並在使用者自訂標識中填入步驟一中參數${user_defined_id}的值,本例為user-defined-docker-1image

      參數

      說明

      機器組Topic

      (可選)機器組Topic用於區分不同伺服器產生的日誌資料。更多資訊,請參見日誌主題

  4. 檢查機器組狀態

    機器組列表中,單擊目標機器組。在機器組配置頁面,可查看機器組配置資訊以及伺服器狀態。image

    如果心跳狀態顯示OK,說明配置成功,如果顯示FAIL,請等待1分鐘後單擊重新整理重試,若心跳狀態仍為FAIL,請檢查:

    1. Logtail容器與Project是否同地區。

    2. 宿主機安全性群組是否允許存取Logtail出方向流量(預設連接埠80)。

    處理操作請參見如何排查容器日誌採集異常

步驟二:建立Logtail採集配置

  1. 日誌儲存 > 日誌庫頁簽中,單擊目標Logstore。

  2. 展開LogStore功能表列,單擊Logtail配置,然後單擊添加Logtail配置image

  3. 快速資料接入頁面,單擊Docker標準輸出-舊版image

  4. 由於步驟一建立了機器組,此處請單擊使用現有機器組image

  5. 機器組配置步驟中,選擇步驟一中建立的機器組,單擊>添加機器組到應用機器組中,並單擊下一步image

  6. Logtail配置步驟中,輸入配置名稱,單擊下一步image

  7. 查詢分析配置步驟中,單擊重新整理,可預覽採集到的日誌。若無日誌,請確認容器是否持續產生標準輸出日誌,一般來說,標準輸出預設在/var/lib/docker/containers/容器ID/容器ID-json.log中。若確認後仍無預覽日誌,請查看如何排查容器日誌採集異常image

步驟三: 查看上傳結果

重要

Logtail只採集增量日誌,如果下發Logtail配置後標準輸出無新日誌產生,則Logtail不會採集以前的日誌。更多資訊,請參見讀取日誌

image

Docker標準輸出的每條日誌預設包含如下欄位:

欄位名

說明

__source__

Logtail容器的IP地址。

__tag__:__hostname__

Logtail所在Docker主機的名稱。

__tag__:__receive_time__

日誌到達服務端的時間。

_time_

資料上傳時間,例如2024-02-02T02:18:41.979147844Z

_source_

輸入源類型,stdout或stderr。

_image_name_

鏡像名。

_container_name_

容器名。

_container_ip_

業務容器IP地址。

相關文檔