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

このページでは、アラートを受信するように通知チャンネルを構成するプロセスの概要について説明します。

通知チャンネルは、構成されたアラートの配信メカニズムです。イベントによってアラートがトリガーされると、システムはこれらのチャネルを通じて指定された受信者に通知します。このプロセスにより、重要なアラートが、適切な担当者に、その担当者が希望する通信方法で届くようになります。

Google Distributed Cloud(GDC)エアギャップ環境では、Slack やメールなどの事前定義された通知チャンネルは使用できません。アラートを受信するには、少なくとも 1 つのカスタム通知チャネルを構成する必要があります。プロジェクトの名前空間で ObservabilityPipeline カスタム リソースを編集して、チャネル構成を適用します。

通知チャンネルをカスタマイズすることで、管理者は次のことを実現できます。

  • 特定の受信者をターゲットにする: 問題の解決を担当する個人、チーム、オンコール ローテーションにアラートを送信します。
  • 優先する通信方法を使用する: SMS、PagerDuty、Webhook、カスタム統合などのチャネルを介してアラートを配信し、個人の設定や運用ワークフローに対応します。
  • アラート疲れを防ぐ: ノイズを減らし、対応が必要なユーザーがアラートを受信できるようにします。

GDC で通知チャンネルを実装するには、管理者がシステム内でチャンネル構成を定義する必要があります。このプロセスでは通常、次のようなパラメータを指定します。

  • チャネルタイプ: 使用されているチャネルのタイプ。
  • 宛先: システムが通知を送信するエンドポイント。
  • 認証: 宛先にアクセスするために必要な認証情報。

通知チャンネルを構成することで、管理者はモニタリング プラットフォームが重要なアラートを効果的に配信できるようにし、潜在的な問題に迅速に対応して、GDC 環境の安定性とパフォーマンスを維持できます。

始める前に

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-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 定義ファイルの名前。