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執行個體時才能通過環境變數自訂配置日誌採集,更新執行個體時傳入的日誌相關環境變數不會生效。
對於自訂配置的日誌Project和Logtail配置,如果後續不再使用,請及時刪除相關Project和Logtail配置,避免產生不必要的費用。
配置說明
建立ECI執行個體時,可以通過容器的環境變數傳入日誌相關的自訂配置,包括專案(Project)、日誌庫(Logstore)、Logtail配置、機器組(Machinegroup)、分區(Shard)、日誌保留時間、標籤(Tag)等。可配置的環境變數如下:
日誌相關環境變數名稱的格式首碼為aliyun_logs_{key}
,{key}
表示Log Service中Logtail配置的名稱,只能包含小寫字母、數字和短劃線(-)。
設定物件 | 環境變數名稱 | 環境變數取值說明 |
Logtail配置 | aliyun_logs_{key} | 建立Logtail配置。取值為日誌採集路徑。
|
專案 | aliyun_logs_{key}_project | 指定Project。Project名稱格式要求如下:
說明 專案名稱必須全域唯一,建立後不可修改。如果名稱格式校正不通過,將直接忽略該配置,採用預設專案。 |
日誌庫 | aliyun_logs_{key}_logstore | 指定Logstore。Logstore名稱格式要求如下:
說明 如果名稱格式校正不通過,將直接忽略該配置,採用預設日誌庫。預設情況下,日誌庫名稱與Logtail配置名稱 |
機器組 | aliyun_logs_{key}_machinegroup | 指定機器組。機器組名稱格式要求如下:
說明 如果名稱格式校正不通過,將直接忽略該配置,採用預設機器組。 |
分區 | aliyun_logs_{key}_shard | 設定日誌分區數。取值範圍為1~10。 Logstore讀寫日誌必須儲存在某一個分區上,預設情況下,每個日誌庫有2個分區。 |
日誌保留時間 | aliyun_logs_{key}_ttl | 設定日誌保留時間,單位為天。取值範圍為1~3650。
|
標籤 | aliyun_logs_{key}_tags | 綁定標籤。取值格式為 |
配置樣本
假設您需要自訂以下日誌相關配置項:
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執行個體時,您可以在容器配置地區選取項目容器,展開該容器的進階配置,然後開啟環境變數開關,添加環境變數。樣本如下:
效果樣本
在Log Service控制台找到目標Project,單擊Project名稱後進入日誌庫,可查看日誌資訊。樣本如下: