全部產品
Search
文件中心

Elastic Container Instance:自訂配置ECI日誌採集

更新時間:Aug 01, 2024

ECI支援對接阿里雲Log ServiceSLS,將ECI日誌採集到SLS中。本文介紹如何通過環境變數自訂配置ECI日誌採集,包括指定專案、日誌庫、機器組等。

背景資訊

阿里雲Log ServiceSLS是針對日誌資料的一站式服務,您無需開發就能快捷完成日誌資料擷取、消費、投遞以及查詢分析等功能。更多資訊,請參見Log Service簡介

重要

Log Service支援隨用隨付,即按照您的實際使用量收費。關於Log Service如何計費,請參見計費概述

預設情況下,建立ECI執行個體時如果開啟了日誌採集功能,系統會自動產生一個專案和一個機器組:

  • 專案名稱為eci-log-default-project-{Region}-{帳號ID}

  • 機器組名稱為eci-log-default-machine-group-{Region}

如果您有自訂日誌採集的需求,例如需要將日誌收集到自訂的專案和日誌庫,或者需要將不同應用對應的ECI執行個體加入到不同的機器組,可以通過容器的環境變數傳入日誌相關的自訂配置,如果Log Service沒有環境變數對應的專案、日誌庫和機器組等,系統將自動建立。

重要

僅在建立ECI執行個體時才能通過環境變數自訂配置日誌採集,更新執行個體時傳入的日誌相關環境變數不會生效。

配置說明

建立ECI執行個體時,可以通過容器的環境變數傳入日誌相關的自訂配置,包括專案(Project)、日誌庫(Logstore)、Logtail配置、機器組(Machinegroup)、分區(Shard)、日誌保留時間、標籤(Tag)等。可配置的環境變數如下:

說明

日誌相關環境變數名稱的格式首碼為aliyun_logs_{key}{key}表示Log Service中Logtail配置的名稱,只能包含小寫字母、數字和短劃線(-)。

設定物件

環境變數名稱

環境變數取值說明

Logtail配置

aliyun_logs_{key}

建立Logtail配置。取值為日誌採集路徑。

  • 採集標準輸出時,取值如下:

    • stdout:採集正常輸出和錯誤資訊。

    • stderr-only:只採集錯誤資訊,不採集正常輸出。

    • stdout-only:只採集正常輸出,不採集錯誤資訊。

  • 採集文字檔時,取值為容器內的檔案目錄。

專案

aliyun_logs_{key}_project

指定Project。Project名稱格式要求如下:

  • 長度為3~63個字元。

  • 僅支援小寫字母、數字和短劃線(-),且必須以小寫字母和數字作為開頭和結尾。

說明

專案名稱必須全域唯一,建立後不可修改。如果名稱格式校正不通過,將直接忽略該配置,採用預設專案。

日誌庫

aliyun_logs_{key}_logstore

指定Logstore。Logstore名稱格式要求如下:

  • 長度為3~63個字元。

  • 僅支援小寫字母、數字、短劃線(-)和底線(_),且必須以小寫字母和數字作為開頭和結尾。

說明

如果名稱格式校正不通過,將直接忽略該配置,採用預設日誌庫。預設情況下,日誌庫名稱與Logtail配置名稱{key}相同。

機器組

aliyun_logs_{key}_machinegroup

指定機器組。機器組名稱格式要求如下:

  • 長度為3~63個字元。

  • 僅支援小寫字母、數字、短劃線(-)和底線(_),且必須以小寫字母和數字作為開頭和結尾。

說明

如果名稱格式校正不通過,將直接忽略該配置,採用預設機器組。

分區

aliyun_logs_{key}_shard

設定日誌分區數。取值範圍為1~10。

Logstore讀寫日誌必須儲存在某一個分區上,預設情況下,每個日誌庫有2個分區。

日誌保留時間

aliyun_logs_{key}_ttl

設定日誌保留時間,單位為天。取值範圍為1~3650。

  • 取值為3650時,表示持續保留日誌。

  • 預設保留90天。

標籤

aliyun_logs_{key}_tags

綁定標籤。取值格式為tag-key=tag-value,用於對日誌進行標識。

配置樣本

假設您需要自訂以下日誌相關配置項:

  • Logtail配置和Logstore名稱:標準輸出日誌儲存到stdout-eci,文字檔日誌儲存到file-eci。

  • Project名稱:project-eci-test

  • 機器組名稱:mg-eci-test

說明

以下為樣本配置,實際配置請使用您自訂的配置,確保Project名稱唯一。

OpenAPI

調用CreateContainerGroup介面建立ECI執行個體時,可以通過Container.N.EnvironmentVar.N.Key和Container.N.EnvironmentVar.N.Value來設定環境變數。樣本如下:

ContainerGroupName=test-sls
Container.1.Name=busybox
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
Container.1.Command.1=/bin/sh
Container.1.Arg.1=-c
Container.1.Arg.2=mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
# 採集標準輸出
Container.1.EnvironmentVar.1.Key=aliyun_logs_stdout-eci
Container.1.EnvironmentVar.1.Value=stdout
Container.1.EnvironmentVar.2.Key=aliyun_logs_stdout-eci_project
Container.1.EnvironmentVar.2.Value=project-eci-test
Container.1.EnvironmentVar.3.Key=aliyun_logs_stdout-eci_machinegroup
Container.1.EnvironmentVar.3.Value=mg-eci-test
# 採集文字檔
Container.1.EnvironmentVar.4.Key=aliyun_logs_file-eci
Container.1.EnvironmentVar.4.Value=/log/*.log
Container.1.EnvironmentVar.5.Key=aliyun_logs_file-eci_project
Container.1.EnvironmentVar.5.Value=project-eci-test
Container.1.EnvironmentVar.6.Key=aliyun_logs_file-eci_machinegroup
Container.1.EnvironmentVar.6.Value=mg-eci-test

控制台

通過Elastic Container Instance控制台建立ECI執行個體時,您可以在容器配置地區選取項目容器,展開該容器的進階配置,然後開啟環境變數開關,添加環境變數。樣本如下:

設定環境變數採集日誌.png

效果樣本

Log Service控制台找到目標Project,單擊Project名稱後進入日誌庫,可查看日誌資訊。樣本如下:

標準輸出

日誌-標準.png

文字檔

日誌-文本.png