使用 awslogs 日誌驅動程式 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 awslogs 日誌驅動程式

依預設,AWS Batch啟用記awslogs錄驅動程式將記錄檔資訊傳送至 CloudWatch 記錄檔。您可以使用此功能,在一個方便的位置檢視容器中的不同記錄,並防止容器記錄佔用容器執行個體上的磁碟空間。本主題可協助您在工作定義中設定awslogs記錄驅動程式。

注意

在AWS Batch主控台中,您可以在建立工作定義時,在 [記錄設定] 區段中設定記錄驅動程式。awslogs

注意

工作中容器記錄的資訊類型主要取決於它們的ENTRYPOINT命令。根據預設,如果您在本機執行容器 (STDOUTSTDERR I/O 串流),擷取的記錄會顯示您通常會在互動式終端機中看到的命令輸出。日awslogs誌驅動程序只是將這些日誌從 Docker 傳遞到 CloudWatch 日誌。如需 Docker 日誌處理方式 (包括擷取不同檔案資料或串流的替代方法) 的詳細資訊,請參閱 Docker 文件中的檢視容器或服務的日誌

若要將容器執行個體的系統記錄檔傳送至 CloudWatch Logs,請參閱搭配使用 CloudWatch 記錄 AWS Batch。如需有關 CloudWatch 日誌的詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的監控 CloudWatch 日誌和日誌配額

可用的 awslogs 日誌驅動程式選項

awslogs錄驅動程式支援工AWS Batch作定義中的下列選項。如需詳細資訊,請參閱 Docker 文件中的CloudWatch 記錄記錄驅動程式

awslogs-region

必要:否

指定記awslogs錄驅動程式應傳送 Docker 記錄檔的區域。根據預設,所使用的區域與工作所使用的區域相同。您可以選擇將不同區域中的工作中的所有記錄傳送至 CloudWatch 記錄中的單一區域。這樣做可以讓它們從一個位置全部可見。或者,您可以按區域將它們分開,以獲得更精細的方法。不過,當您選擇此選項時,請確定指定的記錄群組存在於您指定的 [區域] 中。

awslogs-group

必要:選擇性

使用此選awslogs-group項,您可以指定記錄驅動程式將其awslogs記錄串流傳送到的記錄群組。如果未指定,aws/batch/job則使用。

awslogs-stream-prefix

必要:選擇性

使用此awslogs-stream-prefix選項,您可以將日誌串流與指定的前置詞以及容器所屬任務的 Amazon ECS 任務 ID 建立關聯。AWS Batch如果您使用此選項指定前綴,則日誌串流會使用下列格式:

prefix-name/default/ecs-task-id
awslogs-datetime-format

必要:否

此選項會以 Python strftime 格式定義多行開始模式。日誌消息由匹配模式的行以及不匹配模式的任何以下行組成。因此,符合的行是日誌訊息之間的分隔符號。

使用此格式的一個使用案例範例是用於剖析輸出,例如堆疊傾印,在其他情形下這可能會記錄在多個項目中。正確的模式可允許將它擷取在單一項目中。

如需詳細資訊,請參閱awslogs-datetime-format

如果 awslogs-datetime-formatawslogs-multiline-pattern 都設定,則一律以此選項優先。

注意

多行記錄會執行常規表達式剖析並比對所有日誌訊息。這可能會對記錄效能造成負面影響。

awslogs-multiline-pattern

必要:否

此選項使用規則表達式來定義多行開始模式。日誌消息由匹配模式的行以及不匹配模式的任何以下行組成。因此,匹配的行是日誌消息之間的分隔符。

如需詳細資訊,請參閱 Docker 文件awslogs-multiline-pattern中的。

如果同時設定 awslogs-datetime-format,會忽略此選項。

注意

多行記錄會執行常規表達式剖析並比對所有日誌訊息。這可能會對記錄效能造成負面影響。

awslogs-create-group

必要:否

指定您是否希望自動建立日誌群組。若未指定此選項,則預設為 false

警告

不建議使用此選項。建議您在每個工作嘗試建立記錄群組時,使用 CloudWatch 記錄 CreateLogGroupAPI 動作預先建立記錄群組,從而增加工作失敗的機會。

注意

您的執行角色的 IAM 政策必須包含logs:CreateLogGroup權限,然後才能嘗試使用awslogs-create-group

在工作定義中指定記錄組態

依預設,會AWS Batch啟用記awslogs錄驅動程式。本節說明如何自訂工作的awslogs記錄組態。如需詳細資訊,請參閱建立單一節點工作定義

下列記錄組態 JSON 片段具有針對每個工作指定的logConfiguration物件。一種是將日誌發送到名為的日誌組的 WordPress 工作awslogs-wordpress,另一個用於將日誌發送到名為的日誌組的 MySQL 容器awslogs-mysql。兩個容器使用的日誌串流前綴皆為 awslogs-example

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-wordpress", "awslogs-stream-prefix": "awslogs-example" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-mysql", "awslogs-stream-prefix": "awslogs-example" } }

在AWS Batch主控台中,會指定wordpress工作定義的記錄組態,如下圖所示。

主控台日誌組態

在工作定義記錄組態中使用記awslogs錄驅動程式註冊工作定義之後,您可以提交具有該工作定義的工作,以開始將記錄檔傳送至 CloudWatch 記錄檔。如需詳細資訊,請參閱 提交工作