本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控解決方案
記錄和通知
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 |
|---|---|
|
|
管理此資源之執行個體排程器中樞堆疊的 ARN。在資源首次註冊排程和每個後續排程動作時套用。 |
|
|
對資源採取的最後一個排程動作,以及 UTC 時間戳記。例如: |
|
|
如果排程器在處理資源時發生錯誤,此標籤會包含錯誤代碼和 UTC 時間戳記。例如: |
|
|
人類可讀取的錯誤描述。此標籤只有在 |
錯誤代碼
IS-Error 標籤中可能會出現下列錯誤代碼:
| 錯誤碼 | Description |
|---|---|
|
|
資源排程標籤中指定的排程名稱不符合組態表中定義的任何排程。 |
|
|
資源類型不支援排程 (例如,另一個 RDS 執行個體的僅供讀取複本)。 |
|
|
指派給資源的排程與資源類型不相容 (例如,使用不支援 cron 表達式的 ASG 排程)。 |
|
|
排程器嘗試啟動資源,但操作失敗。 |
|
|
排程器嘗試停止資源,但操作失敗。 |
|
|
排程器嘗試在 Auto Scaling 群組上設定排程擴展規則,但操作失敗。 |
|
|
處理資源時發生非預期的錯誤。 |
標籤行為
-
第一次註冊資源進行排程時,會立即套用
IS-ManagedBy標籤。 -
取消註冊資源時 (移除排程標籤),所有資訊性標籤 (
IS-ManagedBy、IS-LastAction、IS-Error、IS-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 |
|---|---|
|
|
由於容量不足,啟動執行個體時要嘗試的替代 EC2 執行個體類型清單以逗號分隔。如需詳細資訊,請參閱處理 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 函數效能指標。
營運洞察儀表板概觀
注意
這些圖表中的資訊取決於解決方案中樞堆疊上設定的排程間隔。更新解決方案的排程間隔時,儀表板只會在排程間隔的最新更新之後顯示 的排程指標。
監控 Lambda 執行時間以確保最佳效能 (請參閱配額)。如果執行時間一致地接近逾時閾值,請考慮增加 Lambda 大小屬性,或將執行個體排程器部署到延遲較低的受管區域。
Lambda 指標顯示持續時間和錯誤計數
與此功能相關的額外費用
此操作儀表板由解決方案收集的自訂 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 規則
若要監控執行個體排程器事件:
-
導覽至 AWS 帳戶中的 EventBridge 主控台
-
建立以
IS-GlobalEvents事件匯流排 (用於集中監控) 或IS-LocalEvents事件匯流排 (用於本機監控) 為目標的新規則 -
定義事件模式以符合執行個體排程器事件
-
設定目標,例如 SNS 主題、Lambda 函數或 CloudWatch Logs
如需 EventBridge 的詳細資訊,請參閱什麼是 Amazon EventBridge? Amazon EventBridge 使用者指南中的 。