View a markdown version of this page

監控解決方案 - AWS 上的執行個體排程器

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

監控解決方案

記錄和通知

Instance Scheduler 使用針對 CloudWatch Logs Insights 查詢最佳化的結構化記錄。此解決方案會記錄每個已標記執行個體的處理資訊、執行個體的期間評估結果、該期間執行個體的所需狀態、套用的動作,以及偵錯訊息。

日誌會以兩個日誌群組寫入 Amazon CloudWatch Logs:

{stackName}-{namespace}-administrative-logs

資源註冊和取消註冊、自訂資源操作、CLI 請求和其他管理活動的日誌。

{stackName}-{namespace}-scheduling-logs

排程操作的日誌,包括協同運作和請求處理常式執行。

警告和錯誤日誌也會轉送至解決方案建立的 Amazon SNS 主題,該主題可設定為將訊息傳送至訂閱的電子郵件地址。您可以在解決方案堆疊的輸出索引標籤中找到 Amazon SNS 主題的名稱。

資訊標籤

啟用資訊標記時 (預設值),Instance Scheduler 會將標籤直接寫入受管資源,以提供解決方案排程活動的at-a-glance可見性。這些標籤會使用 AWS 資源群組標記 API 套用,並在每次排程器處理資源時更新。

您可以使用中樞堆疊上的啟用資訊標記參數來啟用或停用此功能。如需詳細資訊,請參閱更新全域組態設定

資訊標籤索引鍵

下列標籤會寫入受管資源:

標籤鍵 Description

IS-ManagedBy

管理此資源之執行個體排程器中樞堆疊的 ARN。在資源首次註冊排程和每個後續排程動作時套用。

IS-LastAction

對資源採取的最後一個排程動作,以及 UTC 時間戳記。例如:Started 2025-06-15 09:00:00 UTCStopped 2025-06-15 17:00:00 UTC。只有在排程器主動啟動或停止資源時,才會更新此標籤 (而不是評估資源並判斷不需要採取任何動作時)。

IS-Error

如果排程器在處理資源時發生錯誤,此標籤會包含錯誤代碼和 UTC 時間戳記。例如:StartFailed 2025-06-15 09:00:05 UTC。下一個成功的排程動作會自動清除此標籤。

IS-ErrorMessage

人類可讀取的錯誤描述。此標籤只有在 IS-Error 也存在且與其一起清除時才存在。

錯誤代碼

IS-Error 標籤中可能會出現下列錯誤代碼:

錯誤碼 Description

UnknownSchedule

資源排程標籤中指定的排程名稱不符合組態表中定義的任何排程。

UnsupportedResource

資源類型不支援排程 (例如,另一個 RDS 執行個體的僅供讀取複本)。

IncompatibleSchedule

指派給資源的排程與資源類型不相容 (例如,使用不支援 cron 表達式的 ASG 排程)。

StartFailed

排程器嘗試啟動資源,但操作失敗。

StopFailed

排程器嘗試停止資源,但操作失敗。

ConfigurationFailed

排程器嘗試在 Auto Scaling 群組上設定排程擴展規則,但操作失敗。

UnknownError

處理資源時發生非預期的錯誤。

標籤行為

  • 第一次註冊資源進行排程時,會立即套用IS-ManagedBy標籤。

  • 取消註冊資源時 (移除排程標籤),所有資訊性標籤 (IS-ManagedByIS-LastActionIS-ErrorIS-ErrorMessage) 都會從資源中移除。

  • 如果相同的錯誤持續存在,且資源上仍存在現有的標籤,則不會在每個排程間隔中重新撰寫錯誤標籤。只有在錯誤碼變更時才會更新。

  • 所有標籤值都會截斷為 256 個字元,以符合 AWS 標記限制。

標籤控管考量事項

重要

執行個體排程器會在受管資源上建立和更新上述標籤,做為正常操作的一部分。如果您的組織透過 AWS Config 規則、標籤政策、服務控制政策或自動修復強制執行標籤控管,請確定您的變更管理控制項已設定為允許下列標籤金鑰:

  • IS-ManagedBy

  • IS-LastAction

  • IS-Error

  • IS-ErrorMessage

  • IS-PreferredInstanceTypes (如果使用替代執行個體類型)

  • IS-MinDesiredMax (如果排程 Auto Scaling 群組)

如果您無法在控管政策中容納這些標籤,請透過將中樞堆疊No上的啟用資訊標記參數設定為 來停用資訊標記。請注意,這也會停用用於確認資源註冊的IS-ManagedBy標籤。

控制標籤

除了資訊標籤之外,Instance Scheduler 還針對特定功能使用下列控制標籤:

標籤鍵 Description

IS-PreferredInstanceTypes

由於容量不足,啟動執行個體時要嘗試的替代 EC2 執行個體類型清單以逗號分隔。如需詳細資訊,請參閱處理 EC2 容量不足錯誤

IS-MinDesiredMax

Auto Scaling 群組的最小、所需和最大容量值,格式為 min,desired,max。如需詳細資訊,請參閱 EC2 Auto Scaling 群組排程

標籤容量

重要

AWS 資源通常每個資源有 50 個標籤的限制。執行個體排程器最多可在資源上使用 6 個標籤 (4 個資訊標籤加上最多 2 個控制標籤)。確保您的資源有足夠的標籤容量,以容納執行個體排程器標籤與現有的標記策略。

如果資源達到或接近 50 個標籤的限制,資訊標籤寫入可能會失敗。排程器會記錄這些失敗,但會繼續排程操作。如果您懷疑標記問題,請檢查 CloudWatch Logs。

CloudWatch Logs Insights 查詢

Instance Scheduler 的結構化記錄格式可讓您使用 CloudWatch Logs Insights 有效率地查詢。您可以使用 Logs Insights 來搜尋、分析和視覺化日誌資料,以疑難排解操作問題並監控排程活動。

Instance Scheduler 提供預先格式化的日誌查詢,您可以從 CloudWatch Logs 主控台的已儲存查詢區段存取:

SchedulingHistory

查詢對 資源執行的排程動作,包括開始和停止操作。

RegistrationEvents

查詢資源註冊和取消註冊事件。

Errors

查詢錯誤日誌以疑難排解解決方案的問題。

如需 CloudWatch Logs Insights 的詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用 CloudWatch Logs Insights 分析日誌資料Amazon CloudWatch

營運洞察儀表板

Operational Insights 儀表板可讓您了解排程執行個體管理的解決方案效能和節省成本。

若要存取儀表板,請確保在中樞堆疊參數中操作監控設定為「啟用」。導覽至 CloudWatch,然後從導覽功能表中選取「儀表板」。儀表板名稱為 *{stack-name}-Operational-Insights-Dashboard*

儀表板會顯示受管執行個體計數、節省的執行時數,以及 Lambda 函數效能指標。

營運洞察儀表板概觀

OpsDashboardOverview
注意

這些圖表中的資訊取決於解決方案中樞堆疊上設定的排程間隔。更新解決方案的排程間隔時,儀表板只會在排程間隔的最新更新之後顯示 的排程指標。

監控 Lambda 執行時間以確保最佳效能 (請參閱配額)。如果執行時間一致地接近逾時閾值,請考慮增加 Lambda 大小屬性,或將執行個體排程器部署到延遲較低的受管區域。

Lambda 指標顯示持續時間和錯誤計數

OpsDashboardLambdaMetrics

與此功能相關的額外費用

此操作儀表板由解決方案收集的自訂 CloudWatch 指標提供支援,會產生額外費用。在解決方案中樞堆疊上停用「操作監控」可以關閉此功能。此功能每月需額外支付 3.00 USD,加上根據您的部署大小而定的額外擴展成本。成本如下:

自訂 CloudWatch Dashboard 3 美元

Per-instance-type指標

每個執行個體類型 $0.90*

API 用量

每個作用中目標 ~0.10 USD**

*這些成本會依服務類別 (EC2/RDS) 追蹤,且僅適用於實際用於排程的執行個體類型。

*

監控 EventBridge 事件

Instance Scheduler 會將排程和註冊事件發佈至 EventBridge 事件匯流排,以提供解決方案操作的可見性,並啟用與其他 AWS 服務的整合。

Event types (事件類型)

解決方案會發佈兩個主要類別的事件:

排程事件:在執行個體排程器採取動作啟動、停止或設定受管資源時發佈。這些事件包括有關執行個體、排程和所採取動作的詳細資訊。 啟動、停止或設定受管資源。這些事件包含有關執行個體、排程和所採取動作的詳細資訊。

註冊事件:根據標記操作註冊或取消註冊資源以進行排程時發佈。

事件目的地

IS-LocalEvents 事件匯流排IS-LocalEvents事件匯流排會部署在每個成員帳戶 (包括中樞帳戶) 的每個受管區域中。每個匯流排都會接收在該區域內排程動作和資源註冊的事件。

IS-GlobalEvents 事件匯流排:中樞帳戶中IS-GlobalEvents的事件匯流排會收到傳送至任何事件匯流排的每個IS-LocalEvents事件的副本,提供所有帳戶和區域的集中監控。

使用 EventBridge 事件

您可以建立 EventBridge 規則以:

  • 監控整個基礎設施的排程操作

  • 執行個體啟動或停止時觸發通知

  • 針對自動化工作流程與其他 AWS 服務整合

  • 實作合規監控和提醒

事件結構

所有事件都使用標準 EventBridge 格式。下列範例顯示每個事件類型的結構:

排程事件:

{ "Source": "instance-scheduler", "DetailType": "Scheduling Action", "Resources": ["arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"], "Detail": { "account": "123456789012", "region": "us-east-1", "service": "ec2", "resource_id": "i-1234567890abcdef0", "requested_action": "Start", "action_taken": "Started", "schedule": "office-hours" } }

註冊事件:

{ "Source": "instance-scheduler", "DetailType": "Resource Registered", "Resources": ["arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"], "Detail": { "account": "123456789012", "region": "us-east-1", "service": "ec2", "resource_id": "i-1234567890abcdef0", "schedule": "office-hours" } }

每個事件都包含下列索引鍵欄位:

  • Source - 將事件來源識別為「instance-scheduler」

  • DetailType - 指定事件類別:執行個體操作的「排程動作」或標記事件的「已註冊資源」

  • Resources - 包含受影響 AWS 資源 ARNs陣列

  • Detail - 包含具有帳戶 ID、區域、服務類型 (ec2/rds)、資源 ID、排程名稱,以及排程事件的事件承載,包括請求的動作和實際結果

排程事件的可能requested_action值:

  • Start:用於啟動執行個體的排程器

  • Stop:排程器旨在停止執行個體

  • Configure:用於設定執行個體的排程器

排程事件的可能action_taken值:

  • Started:執行個體已啟動

  • Stopped:執行個體已停止

  • Hibernated:執行個體已休眠

  • Configured:已修改執行個體組態

  • Error:排程操作期間發生錯誤

建立 EventBridge 規則

若要監控執行個體排程器事件:

  1. 導覽至 AWS 帳戶中的 EventBridge 主控台

  2. 建立以IS-GlobalEvents事件匯流排 (用於集中監控) 或IS-LocalEvents事件匯流排 (用於本機監控) 為目標的新規則

  3. 定義事件模式以符合執行個體排程器事件

  4. 設定目標,例如 SNS 主題、Lambda 函數或 CloudWatch Logs

如需 EventBridge 的詳細資訊,請參閱什麼是 Amazon EventBridge? Amazon EventBridge 使用者指南中的 。