檢視 Elastic Beanstalk 環境的部署日誌 - AWS Elastic Beanstalk

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

檢視 Elastic Beanstalk 環境的部署日誌

Elastic Beanstalk 會針對您環境的每個部署產生部署日誌。部署日誌提供部署期間所發生情況的合併時間檢視,包括相依性安裝、建置輸出、應用程式啟動,以及遇到的任何錯誤。您可以使用部署日誌快速診斷失敗的部署,而無需將 SSH 關聯至執行個體或關聯多個日誌檔案。

部署日誌會在本機寫入每個執行個體。對於透過主控台、CLI、API 或受管更新觸發的部署,一個執行個體會在部署期間持續將其日誌上傳至 Amazon S3。Elastic Beanstalk 主控台會從 Amazon S3 讀取日誌,因此您可以監控進度,而無需連線到執行個體。

部署日誌的設計是簡潔的。成功時,日誌只會顯示摘要訊息 (例如,哪些命令執行並完成)。在失敗時,日誌包含來自失敗步驟的最多 50 行輸出,因此您可以看到錯誤,而無需篩選詳細輸出。

注意

部署日誌可在 2026 年 3 月 11 日當天或之後發行的 Amazon Linux 2 和 Amazon Linux 2023 平台版本上取得。目前不支援 Windows 平台。

受支援的操作

部署日誌會針對下列操作產生:

  • 應用程式部署 – 將新的應用程式版本部署到您的環境。

  • 組態更新 – 變更需要執行個體更新的環境組態設定。

  • 環境建立 – 建立新環境時的初始部署。

  • 重新啟動應用程式伺服器 – 重新啟動執行個體上的應用程式伺服器。

不修改執行個體上應用程式或組態狀態的操作,例如請求日誌、交換 CNAMEs 或更新標籤,不會產生部署日誌。

部署日誌內容

部署日誌會在部署期間擷取下列資訊:

  • 部署生命週期 – 每個部署階段的開始和完成訊息,例如 Starting Application deploymentCompleted Application deployment

  • .ebextensions 輸出 – 成功時,執行的命令名稱。失敗時,最後 50 行cfn-init輸出以協助診斷問題。

  • 平台掛鉤輸出 – 成功時,執行的掛鉤指令碼名稱。失敗時,最後 50 行勾點輸出。

  • 相依性安裝 – 從套件管理員輸出pip install,例如 npm installcomposer 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.logeb-engine.log和應用程式日誌)。如需詳細資訊,請參閱在 Elastic Beanstalk 環境中檢視 Amazon EC2 執行個體的日誌

在主控台中檢視部署日誌

Elastic Beanstalk 主控台提供環境儀表板上的部署索引標籤,您可以在其中檢視部署歷史記錄和日誌。

檢視部署歷史記錄

檢視部署歷史記錄
  1. 開啟 Elastic Beanstalk 主控台,然後在區域清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。

  3. 在環境儀表板中,選擇部署索引標籤。

    部署索引標籤會顯示環境的部署資料表。每一列都包含下列資訊:

    • 請求 ID – 部署的唯一識別符。

    • 狀態成功失敗進行中

    • 類型 – 部署類型,例如環境建立應用程式部署組態更新受管平台更新重新啟動應用程式伺服器重建環境還原環境交換環境網域或終止環境

    • 開始時間 – 部署開始時。

    • 持續時間 – 部署完成所需的時間。

部署進行中時,索引標籤會自動輪詢更新。您也可以選擇重新整理按鈕來手動重新載入清單。

檢視部署詳細資訊和日誌

檢視部署詳細資訊
  1. 部署索引標籤上,選擇您要檢查之部署的請求 ID 連結。

  2. 部署詳細資訊頁面會顯示摘要區段,其中包含請求 ID、狀態、部署類型、開始時間、持續時間和部署政策。部署政策 (例如,一次全部滾動與其他批次一起滾動不可變流量分割) 會在可以從部署事件判斷時顯示。

  3. 在摘要下方,選擇下列其中一個索引標籤:

    • 事件 – 與此部署相關的事件時間軸,篩選為僅顯示所選部署的事件。

    • 部署日誌 – 來自執行個體的合併部署日誌。您可以搜尋、依日誌層級篩選,以及下載日誌檔案。

對於進行中的部署,日誌索引標籤會自動重新整理,以顯示寫入的新日誌項目。部署完成後,主控台會擷取最終日誌狀態,以確保您看到完整的輸出。

重要

在主控台中檢視部署日誌需要環境 Amazon S3 儲存貯體 () 的s3:GetObject許可elasticbeanstalk-region-account-id。如果您的 IAM 政策不包含此許可,部署歷史記錄和事件仍然可用,但日誌索引標籤會顯示錯誤。

執行個體上的部署日誌檔案

部署日誌會寫入每個執行個體上的 /var/log/deployments/目錄。日誌檔案名稱取決於如何觸發部署:

  • 工作流程控制部署 (透過主控台、CLI 或 API 觸發) – eb-deployment-request-id.log,其中 request-id 是唯一的部署請求 ID。

  • 自我啟動部署 (執行個體啟動或重新啟動應用程式伺服器) – eb-deployment-unix-timestamp.log

Elastic Beanstalk 會自動輪換這些檔案,在每個執行個體上保留 50 個最新的部署日誌。

對於工作流程控制的部署,日誌會在下列路徑上傳到 Amazon S3:

s3://elasticbeanstalk-region-account-id/resources/environments/logs/deployments/environment-id/log-filename

在多執行個體環境中,第一個開始上傳的執行個體宣告整個部署的角色。該執行個體會在部署期間將其日誌上傳至 Amazon S3。所有執行個體仍會在本機寫入部署日誌。

重要

將部署日誌上傳至 Amazon S3 需要執行個體設定檔中環境 Amazon S3 儲存貯體的s3:PutObject許可,而且 VPC 組態必須允許連線至 Amazon S3。

部署日誌上傳上限為每個檔案 1 MB。如果部署日誌超過此大小,則會截斷上傳的版本,並顯示訊息指出執行個體上有完整的日誌可用。

停用 S3 日誌上傳

若要防止部署日誌上傳至 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。