我想從 Amazon Elastic Container Service (Amazon ECS) 收集日誌,以對環境問題進行疑難排解。
簡短描述
使用 Amazon ECS 日誌收集器指令碼收集一般作業系統 (OS)、Docker 和 Amazon ECS 容器代理程式日誌。該指令碼會將日誌壓縮並封存為一個檔案,您可以共用該檔案來對問題進行疑難排解。
您也可以使用 AWSSupport-CollectECSInstanceLogs AWS Systems Manager 執行手冊,從 ECS 執行個體收集日誌,並將日誌上傳到 Amazon Simple Storage Service (Amazon S3) 儲存貯體。在 LogDestination 輸入參數中,提供 Amazon S3 儲存貯體的位置。
**注意:**AWSSupport-CollectECSInstanceLogs 不支援偵錯模式。如需詳細資訊,請參閱執行由 Systems Manager Automation 提供支援的自動化作業。
解決方法
下載並執行 Amazon ECS 日誌收集器
有關如何連線到容器執行個體的說明,請參閱使用 SSH 連線到容器執行個體。有關如何下載並執行適用於 Linux 和 Windows 的日誌收集器的說明,請參閱使用 Amazon ECS 日誌收集器收集容器日誌。
在 Linux 上,您必須使用 curl。若要確認您已安裝 curl,請執行以下命令:
curl --version
命令輸出結果會類似以下範例:
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
**注意:**如果命令未傳回預期結果,則安裝 curl 套件。
執行指令碼後,您可以在指令碼建立的 collect 資料夾中查看所收集的日誌。對於 Linux,所有日誌的壓縮封存檔案名稱格式為 collect-i-ffffffffffffffffff-YYYYMMDDHHmm.tgz。在 Windows 上,該檔案為 collect.tgz。
在偵錯模式下執行 Amazon ECS 日誌收集器
偵錯模式可讓您在 ECS 環境中,對標準日誌詳細資訊可能無法解決的複雜問題進行疑難排解。
若要為 Docker 常駐程式和 Amazon ECS 容器代理程式啟用偵錯日誌記錄,請在 Linux 上使用 --mode=enable-debug,在 Windows 上使用 -RunMode debug。
**注意:**此指令碼會重新啟動 Docker 常駐程式和 Amazon ECS 代理程式,並終止該執行個體上所有正在執行的容器。在執行以下命令之前,請清空容器執行個體,並將重要任務移至其他容器執行個體。
Linux
偵錯模式僅適用於 Amazon Linux OS 和 Systemd init 型系統。
執行指令碼時,請執行以下命令:
[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh --mode=enable-debug
Windows
執行指令碼時,使用具備管理員權限的 Windows PowerShell 執行以下命令:
.\ecs-logs-collector.ps1 -RunMode debug