Créer des règles d'alerte avec Terraform

Ce document explique comment utiliser le fournisseur Terraform Google Cloud pour créer des règles d'alerte dans votre projet Google Cloud . Le fournisseur Terraform Google Cloud fournit les ressources suivantes pour les règles d'alerte et les canaux de notification :

Terraform est un outil permettant de créer, de modifier et de gérer les versions d'infrastructure. Il utilise des fichiers de configuration pour décrire les composants nécessaires à l'exécution d'une application donnée ou de l'ensemble de votre infrastructure. Pour en savoir plus sur l'utilisation de Terraform, consultez les documents suivants :

Avant de commencer

Pour obtenir les autorisations nécessaires pour créer des règles d'alerte à l'aide de Terraform, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Monitoring (roles/monitoring.editor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles Cloud Monitoring, consultez Contrôler l'accès avec Identity and Access Management.

Créer une règle d'alerte

Pour créer une règle d'alerte dans votre projet Google Cloud , procédez comme suit :

  1. Installez et configurez Terraform.

  2. Dans Cloud Shell, accédez au répertoire contenant votre configuration Terraform.

  3. Modifiez le fichier de configuration et ajoutez votre règle d'alerte.

    Par exemple, la configuration suivante définit une règle d'alerte qui envoie une notification lorsque l'utilisation du processeur d'une instance de VM est supérieure à 50 % pendant plus d'une minute, avec des notifications répétées envoyées toutes les 30 minutes.

    resource "google_monitoring_alert_policy" "alert_policy" {
      display_name = "CPU Utilization > 50%"
      documentation {
        content = "The $${metric.display_name} of the $${resource.type} $${resource.label.instance_id} in $${resource.project} has exceeded 50% for over 1 minute."
      }
      combiner     = "OR"
      conditions {
        display_name = "Condition 1"
        condition_threshold {
            comparison = "COMPARISON_GT"
            duration = "60s"
            filter = "resource.type = \"gce_instance\" AND metric.type = \"compute.googleapis.com/instance/cpu/utilization\""
            threshold_value = "0.5"
            trigger {
              count = "1"
            }
        }
      }
    
      alert_strategy {
        notification_channel_strategy {
            renotify_interval = "1800s"
            notification_channel_names = [google_monitoring_notification_channel.email.name]
        }
      }
    
      notification_channels = [google_monitoring_notification_channel.email.name]
    
      user_labels = {
        severity = "warning"
      }
    }
    

    Dans l'exemple précédent, le champ notification_channels définit le canal de notification pour la règle d'alerte. Le champ notification_channel_names configure ce canal de notification pour qu'il envoie des notifications répétées. Les deux champs font référence à un canal de notification avec un display_name de email, qui est défini ailleurs dans la configuration Terraform. Pour en savoir plus, consultez Créer et gérer des canaux de notification avec Terraform.

    Vous pouvez utiliser des libellés pour associer une règle d'alerte à une application App Hub. Pour en savoir plus, consultez Associer une règle d'alerte à une application App Hub.

  4. Dans Cloud Shell, saisissez terraform apply.

Pour modifier votre règle d'alerte, apportez les modifications souhaitées, puis appliquez à nouveau la configuration Terraform. Pour en savoir plus, consultez Gérer les règles d'alerte avec Terraform.

Étapes suivantes

  • Apprenez-en plus sur Terraform.
  • Testez des exemples de code qui utilisent le fournisseur TerraformGoogle Cloud avec Cloud Monitoring.
  • Consultez le dépôt GitHub du fournisseur Terraform Google Cloud .
  • Ouvrez une demande sur GitHub pour signaler un bug ou poser une question sur Terraform.