本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
檢視 Elastic Beanstalk 環境的部署日誌
Elastic Beanstalk 會針對您環境的每個部署產生部署日誌。部署日誌提供部署期間所發生情況的合併檢視,讓您可以診斷失敗,而無需自行收集多個日誌。日誌包含的內容及其可用時間取決於環境是 Beanstalk 標準環境還是 Beanstalk 叢集環境。
使用 Beanstalk Standard,部署日誌會在本機寫入每個執行個體。對於透過主控台、CLI、API 或受管更新觸發的部署,一個執行個體會在部署期間持續將其日誌上傳至 Amazon S3。Elastic Beanstalk 主控台會從 Amazon S3 讀取日誌,因此您可以監控進度,而無需連線到執行個體。
標準部署日誌的設計是簡潔的。成功時,日誌只會顯示摘要訊息 (例如,哪些命令執行並完成)。失敗時,日誌包含來自失敗步驟的最多 50 行輸出,因此您可以看到錯誤,而無需篩選詳細輸出。
使用 Beanstalk 叢集時,Elastic Beanstalk 會在操作完成後收集部署日誌。它會收集環境中每個 Pod 的容器日誌,以及環境命名空間的 Kubernetes 事件,並將其作為單一 zip 檔案上傳至您環境的 Amazon S3 儲存貯體。Elastic Beanstalk 主控台會從 Amazon S3 讀取 zip 檔案並顯示其內容,因此您可以在不連線至叢集的情況下讀取它。可用性不取決於平台版本,Elastic Beanstalk 也不會將部署日誌檔案寫入節點。
注意
對於 Beanstalk 標準環境,部署日誌可在 2026 年 3 月 11 日當天或之後發行的 Amazon Linux 2 和 Amazon Linux 2023 平台版本,以及在 2026 年 4 月 22 日當天或之後發行的 Windows 平台版本上使用。
受支援的操作
對於 Beanstalk 標準環境,會針對下列操作產生部署日誌:
應用程式部署 – 將新的應用程式版本部署到您的環境。
組態更新 – 變更套用至現有執行個體的環境組態設定,以及將新執行個體新增至環境的更新。
環境建立 – 建立新環境時的初始部署。
重新啟動應用程式伺服器 – 重新啟動執行個體上的應用程式伺服器。
受管平台更新 – Elastic Beanstalk 在排程維護時段期間自動套用的平台更新。
不修改執行個體上應用程式或組態狀態的操作,例如請求日誌、交換 CNAMEs 或更新標籤,不會產生部署日誌。
對於 Beanstalk 叢集環境,會為環境建立、應用程式部署、組態更新、重新啟動應用程式伺服器和終止環境產生部署日誌。終止環境會產生部署日誌,不適用於 Beanstalk Standard。受管平台更新不適用,因為 Beanstalk 叢集環境會執行容器映像,而非平台版本。
Elastic Beanstalk 會在部署步驟之後收集 Beanstalk 叢集環境的部署日誌。如果操作在該步驟之前失敗,例如在建置容器映像、建立叢集、佈建資源或產生 Kubernetes 規格時,沒有部署日誌,且環境的事件會描述發生的情況。如需詳細資訊,請參閱檢視 Elastic Beanstalk 環境的事件資料流。
部署日誌內容
針對 Beanstalk 標準環境,部署日誌會在部署期間擷取下列資訊:
-
部署生命週期 – 每個部署階段的開始和完成訊息,例如
Starting Application deployment和Completed Application deployment。 -
.ebextensions 輸出 – 成功時,執行的命令名稱。失敗時,最後 50 行
cfn-init輸出以協助診斷問題。 -
平台掛鉤輸出 – 成功時,執行的掛鉤指令碼名稱。失敗時,最後 50 行勾點輸出。
-
相依性安裝 – 來自套件管理員的輸出pip install,例如 npm install、composer install、 和 bundle install。成功時,只會記錄完成訊息。失敗時,包含最後 50 行輸出。
-
組建輸出 – 來自組建命令的輸出docker build,例如 go build、 和 Java 組建。失敗時,包含最後 50 行輸出。
-
應用程式啟動輸出 – 應用程式啟動後的初始輸出。來源取決於您的平台:
Docker – 來自 docker logs或 的容器日誌 docker compose logs
Java SE、Go、Node.js、Python、Ruby、.NET – 程序 stdout 日誌
Tomcat – Catalina 日誌輸出
PHP – PHP-FPM 主要和集區錯誤日誌
ECS – 來自每個任務容器的容器日誌
注意
應用程式輸出會在應用程式啟動後 2 秒開始擷取。僅包含初始啟動訊息 – 如果您的應用程式需要更長的時間來產生輸出,則不會出現在部署日誌中。若要查看完整的應用程式日誌,請請求套件日誌或直接連線至執行個體。如需詳細資訊,請參閱檢視執行個體日誌。
當部署步驟失敗時,日誌會標記它,[ERROR]並包含失敗步驟中最多 50 行的輸出。如果部署日誌未包含足夠的詳細資訊,您可以從日誌索引標籤擷取完整的執行個體日誌 (包括 eb-hooks.log、 eb-engine.log和應用程式日誌)。如需詳細資訊,請參閱在 Elastic Beanstalk 環境中檢視 Amazon EC2 執行個體的日誌。
Beanstalk 叢集環境的部署日誌內容
對於 Beanstalk 叢集環境,部署日誌是 zip 檔案。它會在 1-environment/目錄下保留全環境事件檔案和每個 Pod 一個檔案:
1-environment/
_k8Events.txt
pod-name.txt
_k8Events.txt 會將 Kubernetes 事件保留在環境命名空間中,而這些事件不會繫結至單一 Pod,例如排程、磁碟區、擴展和負載平衡器事件。前導底線會先排序。
每個 都從保留該 Pod 事件的=====EVENTS=====區塊開始,最舊的先,接著是保留 Pod 中每個容器日誌的pod-name.txt=====LOGS=====區塊。初始化容器會顯示為自己的容器區塊,因此當初始化容器失敗時,預期應用程式容器會有空白日誌,而不是第二個問題。
對於正在重新啟動的容器,該 Pod 的=====EVENTS=====區塊會命名原因 (例如 BackOff),而=====LOGS=====區塊會在收集時保留容器的日誌。不包含舊版 容器執行個體的日誌。
每個容器的日誌上限為 5 MiB,沒有行限制。到達上限的日誌會標記為已截斷。除了該上限之外,無論操作成功或失敗,日誌都不會移除任何內容。如果 Elastic Beanstalk 無法讀取一個容器的日誌,則集合會繼續,且該容器的區塊會記錄錯誤。
相依性安裝和建置輸出不在 Beanstalk 叢集環境的部署日誌中。當 Elastic Beanstalk 建置您的容器映像時,就會發生這些情況。如需詳細資訊,請參閱為 Beanstalk 叢集環境建置容器映像。
在主控台中檢視部署日誌
Elastic Beanstalk 主控台提供環境儀表板上的部署索引標籤,您可以在其中檢視部署歷史記錄和日誌。部署歷史記錄時,會顯示過去 42 天 (6 週) 的部署。
檢視部署歷史記錄
檢視部署歷史記錄
開啟 Elastic Beanstalk 主控台
,然後在區域清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
-
在環境儀表板中,選擇部署索引標籤。
部署索引標籤會顯示環境的部署資料表。每一列都包含下列資訊:
請求 ID – 部署的唯一識別符。
狀態 – 成功、失敗或進行中。
類型 – 部署類型,例如環境建立、應用程式部署、組態更新、受管平台更新、重新啟動應用程式伺服器、重建環境、還原環境、交換環境網域或終止環境。
政策 – 部署政策,例如一次全部、滾動、與其他批次一起滾動、不可變或流量分割。
開始時間 – 部署開始時。
持續時間 – 部署完成所需的時間。
部署進行中時,索引標籤會自動輪詢更新。您也可以選擇重新整理按鈕來手動重新載入清單。
檢視部署詳細資訊和日誌
檢視部署詳細資訊
-
在部署索引標籤上,選擇您要檢查之部署的請求 ID 連結。
-
部署詳細資訊頁面會顯示摘要區段,其中包含請求 ID、狀態、部署類型、開始時間、持續時間和部署政策。部署政策 (例如,一次全部、滾動、與其他批次一起滾動、不可變或流量分割) 會在可以從部署事件判斷時顯示。
-
在摘要下方,選擇下列其中一個索引標籤:
-
事件 – 與此部署相關的事件時間軸,篩選為僅顯示所選部署的事件。
-
部署日誌 – 來自執行個體的合併部署日誌。您可以搜尋、依日誌層級篩選,以及下載日誌檔案。
-
對於 Beanstalk 標準環境中進行中的部署,日誌索引標籤會在寫入時自動重新整理以顯示新的日誌項目。部署完成後,主控台會擷取最終日誌狀態,以確保您看到完整的輸出。
對於 Beanstalk 叢集環境,部署日誌會在操作完成後顯示,因此日誌索引標籤不會在操作執行時重新整理。首先顯示全環境事件檔案,後面接著每個 Pod 檔案。如果壓縮的 zip 檔案大於 5 MiB,主控台會要求您從 Amazon S3 下載它,而不是顯示它。該限制適用於整個封存,不適用於任何單一容器的日誌。
重要
在主控台中檢視部署日誌需要環境 Amazon S3 儲存貯體 () 的s3:GetObject許可elasticbeanstalk-。如果您的 IAM 政策不包含此許可,部署歷史記錄和事件仍然可用,但日誌索引標籤會顯示錯誤。region-account-id
部署日誌存放位置
Beanstalk Standard 執行個體上的部署日誌檔案
部署日誌會寫入每個執行個體上的 /var/log/deployments/目錄。日誌檔案名稱取決於如何觸發部署:
-
工作流程控制的部署 (透過主控台、CLI 或 API 觸發) –
eb-deployment-,其中request-id.logrequest-id是唯一的部署請求 ID。 -
自我啟動部署 (執行個體啟動) –
eb-deployment-,其中timestamp-instance-id.log時間戳記為 UTC 格式 (例如20260317T151315Z),執行個體 ID是 Amazon EC2 執行個體 ID。
Elastic Beanstalk 會自動輪換這些檔案,在每個執行個體上保留 50 個最新的部署日誌。
對於工作流程控制的部署,日誌會在下列路徑上傳到 Amazon S3:
s3://elasticbeanstalk-region-account-id/resources/environments/logs/deployments/environment-id/log-filename
對於自我啟動部署,日誌會在selfstartup/子目錄下上傳至 Amazon S3:
s3://elasticbeanstalk-region-account-id/resources/environments/logs/deployments/environment-id/selfstartup/log-filename
對於工作流程控制部署,開始上傳的第一個執行個體宣告整個部署的角色。該執行個體會在部署期間將其日誌上傳至 Amazon S3。對於自我啟動部署,每個執行個體都會獨立上傳自己的日誌。所有執行個體仍會在本機寫入部署日誌。
重要
將部署日誌上傳至 Amazon S3 需要執行個體設定檔中環境 Amazon S3 儲存貯體的s3:PutObject許可,而且 VPC 組態必須允許連線至 Amazon S3。
部署日誌上傳上限為每個檔案 1 MB。如果部署日誌超過此大小,則會截斷上傳的版本,並顯示訊息,指出執行個體上有完整的日誌可用。
停用 S3 日誌上傳
對於 Beanstalk 標準環境,若要防止部署日誌上傳至 Amazon S3,請在您的環境中設定下列環境屬性:
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: EB_DEPLOYMENT_LOG_S3_DISABLED
value: true
設定此環境屬性時,部署日誌仍會在每個執行個體/var/log/deployments/本機寫入 ,但不會上傳至 Amazon S3,而且無法在主控台部署索引標籤中使用。您也可以在軟體下的組態頁面或使用 EB CLI 或 來設定此屬性 AWS CLI。
EB_DEPLOYMENT_LOG_S3_DISABLED 屬性會在您的執行個體上讀取,因此不會影響 Beanstalk 叢集環境。目前無法防止 Elastic Beanstalk 上傳 Beanstalk 叢集環境的部署日誌。
Beanstalk 叢集環境的部署日誌檔案
對於 Beanstalk 叢集環境,Elastic Beanstalk 會將部署日誌上傳至您環境的 Amazon S3 儲存貯體,路徑如下:
s3://elasticbeanstalk-region-account-id/resources/environments/logs/deployments/environment-id/deployment-environment-name-request-id.zip
Elastic Beanstalk 會使用環境的操作角色自行執行上傳,因此不會涉及執行個體描述檔許可,也不需要從您的節點連線到 Amazon S3。
上傳是最好的方式。如果不成功,操作仍會完成,不會產生環境事件,而且主控台會將部署日誌報告為無法使用。