ECI支持對接阿里云日志服務SLS,將ECI日志采集到SLS中。本文介紹如何通過環境變量自定義配置ECI日志采集,包括指定項目、日志庫、機器組等。
背景信息
阿里云日志服務SLS是針對日志數據的一站式服務,您無需開發就能快捷完成日志數據采集、消費、投遞以及查詢分析等功能。更多信息,請參見日志服務簡介。
日志服務按照您的實際使用量收費。關于日志服務如何計費,請參見計費概述。
默認情況下,創建ECI實例時如果開啟了日志采集功能,系統會自動生成一個項目和一個機器組:
項目名稱為
eci-log-default-project-{Region}-{賬號ID}
。機器組名稱為
eci-log-default-machine-group-{Region}
。
如果您有自定義日志采集的需求,例如需要將日志收集到自定義的項目和日志庫,或者需要將不同應用對應的ECI實例加入到不同的機器組,可以通過容器的環境變量傳入日志相關的自定義配置,如果日志服務沒有環境變量對應的項目、日志庫和機器組等,系統將自動創建。
注意事項
僅在創建ECI實例時才能通過環境變量自定義配置日志采集,更新實例時傳入的日志相關環境變量不會生效。
對于自定義配置的日志Project和Logtail配置,如果后續不再使用,請及時刪除相關Project和Logtail配置,避免產生不必要的費用。
配置說明
創建ECI實例時,可以通過容器的環境變量傳入日志相關的自定義配置,包括項目(Project)、日志庫(Logstore)、Logtail配置、機器組(Machinegroup)、分區(Shard)、日志保留時間、標簽(Tag)等。可配置的環境變量如下:
日志相關環境變量名稱的格式前綴為aliyun_logs_{key}
,{key}
表示日志服務中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
控制臺
通過彈性容器實例控制臺創建ECI實例時,您可以在容器配置區域選擇容器,展開該容器的高級配置,然后打開環境變量開關,添加環境變量。示例如下:
效果示例
在日志服務控制臺找到目標Project,單擊Project名稱后進入日志庫,可查看日志信息。示例如下: