Configurer des canaux de notification pour les alertes

Google Distributed Cloud (GDC) avec isolation physique vous permet de configurer des canaux de notification personnalisés pour acheminer les alertes déclenchées vers des personnes, des équipes ou des rotations d'astreinte spécifiques. L'envoi d'alertes via des canaux tels que PagerDuty, les SMS, les webhooks ou les intégrations personnalisées permet de réduire la fatigue liée aux alertes et de répondre aux incidents en temps opportun.

Étant donné que les canaux de notification prédéfinis tels que Slack ou les e-mails ne sont pas disponibles dans GDC, vous devez configurer au moins un canal personnalisé pour recevoir des alertes. Vous définissez le type de canal, le point de terminaison de destination et les identifiants d'authentification dans un objet Alertmanager ConfigMap. Vous importez ensuite cette configuration dans une ressource personnalisée ObservabilityPipeline de l'espace de noms de votre projet.

Avant de commencer

Pour gérer les ressources personnalisées ObservabilityPipeline, vous devez disposer des autorisations nécessaires.

Demander des rôles IAM au niveau de l'organisation

Contactez l'administrateur de l'organisation IAM pour demander les rôles suivants :

  • Créateur de PA ObservabilityPipeline (observabilitypipeline-pa-creator) : permet de créer des ressources personnalisées ObservabilityPipeline.
  • Éditeur de PA ObservabilityPipeline (observabilitypipeline-pa-editor) : modifier les ressources personnalisées ObservabilityPipeline.
  • Lecteur d'AP ObservabilityPipeline (observabilitypipeline-pa-viewer) : permet d'afficher les ressources personnalisées ObservabilityPipeline.
  • Éditeur de ConfigMap (observabilitypipeline-configmap-editor) : crée des objets ConfigMap dans l'espace de noms de la plate-forme.

Demander des rôles IAM au niveau du projet

Contactez l'administrateur de projet IAM pour demander les rôles suivants :

  • Éditeur ObservabilityPipeline (observabilitypipeline-editor) : modifier les ressources personnalisées ObservabilityPipeline dans l'espace de noms du projet.
  • Lecteur ObservabilityPipeline (observabilitypipeline-viewer) : permet d'afficher les ressources personnalisées ObservabilityPipeline dans l'espace de noms du projet.

Configurer des canaux de notification

Configurez des canaux de notification pour les alertes dans l'espace de noms de votre projet :

  1. Définissez votre configuration personnalisée pour les canaux de notification dans un fichier YAML nommé alertmanager.yml. Vous devez suivre la même syntaxe que la spécification Alertmanager :

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

  2. Créez un objet ConfigMap et incluez votre configuration personnalisée du fichier alertmanager.yml dans le champ data.

    L'exemple suivant montre à quoi doit ressembler l'objet ConfigMap avec le fichier alertmanager.yml :

    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
    
      # [...]
    

    Remplacez les éléments suivants :

    • CONFIGMAP_NAME : nom du fichier de définition ConfigMap. Vous utiliserez ce nom ultérieurement dans la ressource personnalisée ObservabilityPipeline.
    • PROJECT_NAMESPACE : espace de noms de votre projet.
  3. Appliquez l'objet ConfigMap au serveur d'API Management dans le même espace de noms que vos alertes configurées :

    kubectl --kubeconfig KUBECONFIG_PATH apply -f CONFIGMAP_NAME.yaml
    

    Remplacez les éléments suivants :

    • KUBECONFIG_PATH : chemin d'accès au fichier kubeconfig du serveur d'API Management.
    • CONFIGMAP_NAME : nom du fichier de définition ConfigMap.
  4. Modifiez la spécification de ressource personnalisée ObservabilityPipeline pour importer votre configuration dans le champ 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
    
      # [...]
    

    Remplacez les éléments suivants :

    • PROJECT_NAMESPACE : espace de noms de votre projet.
    • OBSERVABILITY_PIPELINE_NAME : nom de la ressource personnalisée ObservabilityPipeline.
    • CONFIGMAP_NAME : nom que vous avez utilisé pour le fichier de définition ConfigMap. Le nom doit correspondre exactement.
  5. Enregistrez le fichier.

  6. Appliquez les modifications de la ressource personnalisée ObservabilityPipeline au serveur d'API Management dans le même espace de noms que vos alertes configurées :

    kubectl --kubeconfig KUBECONFIG_PATH apply -f OBSERVABILITY_PIPELINE_NAME.yaml
    

    Remplacez les éléments suivants :

    • KUBECONFIG_PATH : chemin d'accès au fichier kubeconfig du serveur d'API Management.
    • OBSERVABILITY_PIPELINE_NAME : nom du fichier de définition ObservabilityPipeline.