

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

# 使用 PagerDuty 作為提醒接收者
<a name="AMP-alertmanager-pagerduty"></a>

您可以設定 Amazon Managed Service for Prometheus 將提醒直接傳送到 PagerDuty。此整合需要您將 PagerDuty 整合金鑰存放在 中， AWS Secrets Manager 並授予 Amazon Managed Service for Prometheus 讀取秘密的許可。

PagerDuty 整合可啟用自動化事件回應工作流程，並確保關鍵警示在正確的時間送達正確的團隊成員。當您使用 PagerDuty 做為提醒接收者時，您可以利用 PagerDuty 的呈報政策、通話中排程和事件管理功能，以確保快速確認和解決提醒。此整合對於快速回應系統問題對於維護服務可用性和滿足 SLA 需求至關重要的生產環境特別重要。如需詳細資訊，請參閱 [PagerDuty 網站上的 PagerDuty 知識庫](https://support.pagerduty.com/)。 *PagerDuty *

## PagerDuty 組態選項
<a name="AMP-alertmanager-pagerduty-configuration-options"></a>




| 選項 | Description | 必要 | 
| --- | --- | --- | 
|  `routing_key`  |  服務上整合的 PagerDuty 路由金鑰。您必須將此指定為 Secrets Manager ARN  |  是  | 
|  `service_key`  |  服務上整合的 PagerDuty 服務金鑰。您必須將此指定為 Secrets Manager ARN  |  是 （適用於 Events API v1)  | 
|  `client`  |  標記符的用戶端識別  |  否  | 
|  `client_url`  |  通知寄件者的連結  |  否  | 
|  `description`  |  事件的描述  |  否  | 
|  `details`  |  一組任意金鑰/值對，提供關於事件的進一步詳細資訊  |  否  | 
|  `severity`  |  事件的嚴重性  |  否  | 
|  `class`  |  事件的類別或類型  |  否  | 
|  `component`  |  負責事件的來源機器元件  |  否  | 
|  `group`  |  元件的邏輯分組  |  否  | 
|  `source`  |  受影響系統的唯一位置  |  否  | 

**注意**  
不支援 `url`、`routing_key_file`、 `service_key_file`和 `http_config`選項。

下列主題說明如何在 Amazon Managed Service for Prometheus 中將 PagerDuty 設定為提醒接收者。

**Topics**
+ [PagerDuty 組態選項](#AMP-alertmanager-pagerduty-configuration-options)
+ [設定 AWS Secrets Manager 和 許可](AMP-alertmanager-pagerduty-permissions.md)
+ [設定警示管理員以將警示傳送至 PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md)

# 設定 AWS Secrets Manager 和 許可
<a name="AMP-alertmanager-pagerduty-permissions"></a>

您必須先安全地存放 PagerDuty 整合金鑰並設定必要的許可，才能傳送提醒至 PagerDuty。此程序涉及在 中建立秘密 AWS Secrets Manager、使用客戶受管 AWS Key Management Service (AWS KMS) 金鑰加密秘密，以及授予 Amazon Managed Service for Prometheus 存取秘密及其加密金鑰所需的許可。下列程序會引導您完成此組態程序的每個步驟。

**在 Secrets Manager for PagerDuty 中建立秘密**  
若要使用 PagerDuty 作為提醒接收者，您必須將 PagerDuty 整合金鑰存放在 Secrets Manager 中。請遵循下列步驟：

1. 開啟 [Secrets Manager 主控台](https://console.aws.amazon.com/secretsmanager/)。

1. 選擇**存放新的機密**。

1. 針對**機密類型**，選擇**其他類型的機密**。

1. 對於**金鑰/值對**，輸入您的 PagerDuty 整合金鑰作為秘密值。這是來自 PagerDuty 整合的路由金鑰或服務金鑰。

1. 選擇**下一步**。

1. 輸入秘密的名稱和描述，然後選擇**下一步**。

1. 視需要設定輪換設定，然後選擇**下一步**。

1. 檢閱您的設定，然後選擇**儲存**。

1. 建立秘密後，請注意其 ARN。設定警示管理員時，您將需要此項目。

**使用客戶受管 AWS KMS 金鑰加密秘密**

您必須授予 Amazon Managed Service for Prometheus 存取秘密及其加密金鑰的許可：

1. **秘密資源政策**：在 [Secrets Manager 主控台](https://console.aws.amazon.com/secretsmanager/)中開啟秘密。

   1. 選擇**資源許可**。

   1. 選擇**編輯許可**。

   1. 新增下列政策陳述式。在 陳述式中，將*反白顯示的值*取代為您的特定值。

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "secretsmanager:GetSecretValue",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. 選擇**儲存**。

1. **KMS 金鑰政策**：在 [AWS KMS 主控台](https://console.aws.amazon.com/kms)中開啟您的 AWS KMS 金鑰。

   1. 選擇**金鑰政策**。

   1. 選擇**編輯**。

   1. 新增下列政策陳述式。在 陳述式中，將*反白顯示的值*取代為您的特定值。

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "kms:Decrypt",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. 選擇**儲存**。

**後續步驟** – 繼續下一個主題：[設定警示管理員以將警示傳送至 PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md)。

# 設定警示管理員以將警示傳送至 PagerDuty
<a name="AMP-alertmanager-pagerduty-configure-alertmanager"></a>

若要設定警示管理員將警示傳送至 PagerDuty，您需要更新警示管理員定義。您可以使用 AWS 管理主控台 AWS CLI、 或 AWS SDKs來執行此操作。

**Example 警示管理員組態**  
以下範例警示管理員組態會將警示傳送至 PagerDuty。在範例中，將*反白顯示的值*取代為您的特定值。  

```
alertmanager_config: |
  route:
    receiver: 'pagerduty-receiver'
    group_by: ['alertname']
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 1h
  receivers:
    - name: 'pagerduty-receiver'
      pagerduty_configs:
      - routing_key: 
          aws_secrets_manager:
            secret_arn: 'arn:aws:secretsmanager:aws-region:123456789012:secret:YOUR_SECRET_NAME'
            secret_key: 'YOUR_SECRET_KEY'
            refresh_interval: 5m
        description: '{{ .CommonLabels.alertname }}'
        severity: 'critical'
        details:
          firing: '{{ .Alerts.Firing | len }}'
          status: '{{ .Status }}'
          instance: '{{ .CommonLabels.instance }}'
```

**Example AWS CLI**  
以下是用來更新提醒管理員定義的 AWS CLI 命令。在範例中，將*反白顯示的值*取代為您的特定值。  

```
aws amp put-alert-manager-definition \
  --workspace-id WORKSPACE_ID \
  --data file://alertmanager-config.yaml
```

## 故障診斷 PagerDuty 整合
<a name="AMP-alertmanager-pagerduty-troubleshooting"></a>

如果警示未傳送至 PagerDuty，請檢查下列項目：
+ 確認您的秘密存在並包含正確的 PagerDuty 整合金鑰。
+ 確認您的秘密已使用客戶管理的 KMS 金鑰加密。
+ 確保秘密和 KMS 金鑰的資源政策將必要的許可授予 Amazon Managed Service for Prometheus。
+ 檢查警示管理員組態中的 ARN 是否正確參考您的秘密。
+ 確認您的 PagerDuty 整合金鑰在您的 PagerDuty 帳戶中有效且有效。

Amazon Managed Service for Prometheus 支援 Amazon CloudWatch Logs 和下列 CloudWatch 指標，以協助故障診斷。如需詳細資訊，請參閱[使用 CloudWatch Logs 監控 Amazon Managed Service for Prometheus 事件](CW-logs.md)及[使用 CloudWatch 指標監控 Amazon Managed Service for Prometheus 資源](AMP-CW-usage-metrics.md)。CloudWatch 指標
+ `SecretFetchFailure`
+ `AlertManagerNotificationsThrottledByIntegration`
+ `AlertManagerNotificationsFailedByIntegration`