

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

# 監控解決方案
<a name="monitor-the-solution"></a>

## 記錄和通知
<a name="logging-and-notifications"></a>

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

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

 `{stackName}-{namespace}-administrative-logs`   
資源註冊和取消註冊、自訂資源操作、CLI 請求和其他管理活動的日誌。

 `{stackName}-{namespace}-scheduling-logs`   
排程操作的日誌，包括協同運作和請求處理常式執行。

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

## 資訊標籤
<a name="informational-tags"></a>

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

您可以使用中樞堆疊上的**啟用資訊標記**參數來啟用或停用此功能。如需詳細資訊，請參閱[更新全域組態設定](update-global-configuration-settings.md)。

### 資訊標籤索引鍵
<a name="informational-tag-keys"></a>

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


| 標籤鍵 | Description | 
| --- | --- | 
|   `IS-ManagedBy`   |  管理此資源之執行個體排程器中樞堆疊的 ARN。在資源首次註冊排程和每個後續排程動作時套用。  | 
|   `IS-LastAction`   |  對資源採取的最後一個排程動作，以及 UTC 時間戳記。例如：`Started 2025-06-15 09:00:00 UTC` 或 `Stopped 2025-06-15 17:00:00 UTC`。只有在排程器主動啟動或停止資源時，才會更新此標籤 （而不是評估資源並判斷不需要採取任何動作時）。  | 
|   `IS-Error`   |  如果排程器在處理資源時發生錯誤，此標籤會包含錯誤代碼和 UTC 時間戳記。例如：`StartFailed 2025-06-15 09:00:05 UTC`。下一個成功的排程動作會自動清除此標籤。  | 
|   `IS-ErrorMessage`   |  人類可讀取的錯誤描述。此標籤只有在 `IS-Error` 也存在且與其一起清除時才存在。  | 

### 錯誤代碼
<a name="informational-tag-error-codes"></a>

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


| 錯誤碼 | Description | 
| --- | --- | 
|   `UnknownSchedule`   |  資源排程標籤中指定的排程名稱不符合組態表中定義的任何排程。  | 
|   `UnsupportedResource`   |  資源類型不支援排程 （例如，另一個 RDS 執行個體的僅供讀取複本）。  | 
|   `IncompatibleSchedule`   |  指派給資源的排程與資源類型不相容 （例如，使用不支援 cron 表達式的 ASG 排程）。  | 
|   `StartFailed`   |  排程器嘗試啟動資源，但操作失敗。  | 
|   `StopFailed`   |  排程器嘗試停止資源，但操作失敗。  | 
|   `ConfigurationFailed`   |  排程器嘗試在 Auto Scaling 群組上設定排程擴展規則，但操作失敗。  | 
|   `UnknownError`   |  處理資源時發生非預期的錯誤。  | 

### 標籤行為
<a name="informational-tag-behavior"></a>
+ 第一次註冊資源進行排程時，會立即套用`IS-ManagedBy`標籤。
+ 取消註冊資源時 （移除排程標籤），所有資訊性標籤 (`IS-ManagedBy`、`IS-LastAction`、`IS-Error`、`IS-ErrorMessage`) 都會從資源中移除。
+ 如果相同的錯誤持續存在，且資源上仍存在現有的標籤，則不會在每個排程間隔中重新撰寫錯誤標籤。只有在錯誤碼變更時才會更新。
+ 所有標籤值都會截斷為 256 個字元，以符合 AWS 標記限制。

### 標籤控管考量事項
<a name="informational-tag-conflict-with-tag-policies"></a>

**重要**  
執行個體排程器會在受管資源上建立和更新上述標籤，做為正常操作的一部分。如果您的組織透過 AWS Config 規則、標籤政策、服務控制政策或自動修復強制執行標籤控管，請確定您的變更管理控制項已設定為允許下列標籤金鑰：  
 `IS-ManagedBy` 
 `IS-LastAction` 
 `IS-Error` 
 `IS-ErrorMessage` 
 `IS-PreferredInstanceTypes` （如果使用替代執行個體類型）
 `IS-MinDesiredMax` （如果排程 Auto Scaling 群組）
如果您無法在控管政策中容納這些標籤，請透過將中樞堆疊`No`上的**啟用資訊標記參數設定為 來停用資訊標記**。請注意，這也會停用用於確認資源註冊的`IS-ManagedBy`標籤。

### 控制標籤
<a name="informational-tag-control-tags"></a>

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


| 標籤鍵 | Description | 
| --- | --- | 
|   `IS-PreferredInstanceTypes`   |  由於容量不足，啟動執行個體時要嘗試的替代 EC2 執行個體類型清單以逗號分隔。如需詳細資訊，請參閱[處理 EC2 容量不足錯誤](specifying-alternate-instance-types-for-ec2.md)。  | 
|   `IS-MinDesiredMax`   |  Auto Scaling 群組的最小、所需和最大容量值，格式為 `min,desired,max`。如需詳細資訊，請參閱 [EC2 Auto Scaling 群組排程](ec2-auto-scaling-group-scheduling.md)。  | 

### 標籤容量
<a name="informational-tag-capacity"></a>

**重要**  
AWS 資源通常每個資源有 50 個標籤的限制。執行個體排程器最多可在資源上使用 6 個標籤 (4 個資訊標籤加上最多 2 個控制標籤）。確保您的資源有足夠的標籤容量，以容納執行個體排程器標籤與現有的標記策略。  
如果資源達到或接近 50 個標籤的限制，資訊標籤寫入可能會失敗。排程器會記錄這些失敗，但會繼續排程操作。如果您懷疑標記問題，請檢查 CloudWatch Logs。

## CloudWatch Logs Insights 查詢
<a name="cloudwatch-logs-insights-queries"></a>

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

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

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

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

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

如需 CloudWatch Logs Insights 的詳細資訊，請參閱《Amazon [CloudWatch Logs 使用者指南》中的使用 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。 *Amazon CloudWatch *

## 營運洞察儀表板
<a name="operational-insights-dashboard"></a>

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

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

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

 **營運洞察儀表板概觀** 

![\[OpsDashboardOverview\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/instance-scheduler-on-aws/images/OpsDashboardOverview.png)


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

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

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

![\[OpsDashboardLambdaMetrics\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/instance-scheduler-on-aws/images/OpsDashboardLambdaMetrics.png)


### 與此功能相關的額外費用
<a name="additional-costs-associated-with-this-feature"></a>

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


| 自訂 CloudWatch Dashboard | 3 美元 | 
| --- | --- | 
|  Per-instance-type指標  |  每個執行個體類型 \$10.90\$1  | 
|  API 用量  |  每個[作用中目標](cost.md#calculating-scheduling-targets) \$10.10 USD\$1\$1  | 

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

 ** **\$1** 

## 監控 EventBridge 事件
<a name="monitoring-eventbridge-events"></a>

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

### Event types (事件類型)
<a name="event-types"></a>

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

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

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

### 事件目的地
<a name="event-destinations"></a>

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

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

### 使用 EventBridge 事件
<a name="using-eventbridge-events"></a>

您可以建立 EventBridge 規則以：
+ 監控整個基礎設施的排程操作
+ 執行個體啟動或停止時觸發通知
+ 針對自動化工作流程與其他 AWS 服務整合
+ 實作合規監控和提醒

### 事件結構
<a name="event-structure"></a>

所有事件都使用標準 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 規則
<a name="creating-eventbridge-rules"></a>

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

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

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

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

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

如需 EventBridge 的詳細資訊，請參閱[什麼是 Amazon EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) *Amazon EventBridge 使用者指南*中的 。