アラートの通知チャンネルを構成する

Google Distributed Cloud(GDC)エアギャップ アプライアンスを使用すると、カスタム通知チャンネルを構成して、トリガーされたアラートを特定の個人、チーム、またはオンコール ローテーションにルーティングできます。PagerDuty、SMS、Webhook、カスタム統合などのチャネルを介してアラートを配信すると、アラート疲れを軽減し、タイムリーなインシデント対応をサポートできます。

Slack やメールなどの事前定義された通知チャンネルは GDC では使用できないため、アラートを受信するには、少なくとも 1 つのカスタム チャンネルを構成する必要があります。チャンネル タイプ、宛先エンドポイント、認証情報は、Alertmanager の ConfigMap オブジェクトで定義します。次に、その構成をプロジェクトの名前空間の ObservabilityPipeline カスタム リソースにインポートします。

始める前に

ObservabilityPipeline カスタム リソースを管理するには、必要な権限が必要です。

IAM 組織ロールをリクエストする

組織の IAM 管理者に連絡して、次のロールをリクエストしてください。

  • ObservabilityPipeline PA 作成者(observabilitypipeline-pa-creator): ObservabilityPipeline カスタム リソースを作成します。
  • ObservabilityPipeline PA 編集者(observabilitypipeline-pa-editor): ObservabilityPipeline カスタム リソースを編集または削除します。
  • ObservabilityPipeline PA 閲覧者(observabilitypipeline-pa-viewer): ObservabilityPipeline カスタム リソースを表示します。
  • ConfigMap 編集者(observabilitypipeline-configmap-editor): プラットフォームの名前空間に ConfigMap オブジェクトを作成します。

IAM プロジェクト ロールをリクエストする

プロジェクトの IAM 管理者に連絡して、次のロールをリクエストしてください。

  • ObservabilityPipeline 編集者(observabilitypipeline-editor): プロジェクトの名前空間内の ObservabilityPipeline カスタム リソースを編集または削除します。
  • ObservabilityPipeline 閲覧者(observabilitypipeline-viewer): プロジェクトの名前空間内の ObservabilityPipeline カスタム リソースを表示します。

通知チャンネルを構成する

プロジェクトの名前空間でアラートの通知チャンネルを構成します。

  1. alertmanager.yml という名前の YAML ファイルで、通知チャネルのカスタム構成を定義します。Alertmanager の仕様と同じ構文に従う必要があります。

    https://prometheus.io/docs/alerting/latest/configuration/.

  2. ConfigMap オブジェクトを作成し、alertmanager.yml ファイルのカスタム構成を data フィールドに含めます。

    次の例は、alertmanager.yml ファイルを含む ConfigMap オブジェクトの形式を示しています。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: CONFIGMAP_NAME
      # The namespace must match your project namespace.
      namespace: PROJECT_NAMESPACE
    data:
      # The file name must be alertmanager.yml
      alertmanager.yml: |
        # Define your notification channels.
        # Add the custom configuration in the following lines of this file.
        # Follow the same syntax as in https://prometheus.io/docs/alerting/latest/configuration
    
      [...]
    

    次のように置き換えます。

    • CONFIGMAP_NAME: ConfigMap 定義ファイルの名前。この名前は、後で ObservabilityPipeline カスタム リソースで使用します。
    • PROJECT_NAMESPACE: プロジェクトの名前空間。
  3. 構成したアラートと同じ Namespace 内の Management API サーバーに ConfigMap オブジェクトを適用します。

    kubectl --kubeconfig KUBECONFIG_PATH apply -f CONFIGMAP_NAME.yaml
    

    次のように置き換えます。

    • KUBECONFIG_PATH: Management API サーバーの kubeconfig ファイルへのパス。
    • CONFIGMAP_NAME: ConfigMap 定義ファイルの名前。
  4. ObservabilityPipeline カスタム リソース仕様を編集して、構成を alertmanagerConfig フィールドにインポートします。

     # Configure the observability pipeline.
    apiVersion: observability.gdc.goog/v1
    kind: ObservabilityPipeline
    metadata:
      # The namespace must match your project namespace.
      namespace: PROJECT_NAMESPACE
      name: OBSERVABILITY_PIPELINE_NAME
    spec:
      # Configure alerts.
      alerting:
        # The alerting configuration must be in the ConfigMap.
        # The value must match the ConfigMap name exactly.
        alertmanagerConfig: CONFIGMAP_NAME
    
      [...]
    

    次のように置き換えます。

    • PROJECT_NAMESPACE: プロジェクトの名前空間。
    • OBSERVABILITY_PIPELINE_NAME: ObservabilityPipeline カスタム リソースの名前。
    • CONFIGMAP_NAME: ConfigMap 定義ファイルに使用した名前。名前が完全に一致している必要があります。
  5. ファイルを保存します。

  6. 構成したアラートと同じ名前空間内の Management API サーバーに、ObservabilityPipeline カスタム リソースの変更を適用します。

    kubectl --kubeconfig KUBECONFIG_PATH apply -f OBSERVABILITY_PIPELINE_NAME.yaml
    

    次のように置き換えます。

    • KUBECONFIG_PATH: Management API サーバーの kubeconfig ファイルへのパス。
    • OBSERVABILITY_PIPELINE_NAME: ObservabilityPipeline 定義ファイルの名前。