Ce document explique comment configurer, personnaliser et tester les alertes pour les événements d'état du service.
Personalized Service Health s'intègre aux alertes de journal Cloud Monitoring afin que vous puissiez configurer et recevoir des alertes. Vous pouvez créer des notifications pour les conditions suivantes:
- Lorsque de nouveaux incidents sont signalés.
- Lorsque des incidents existants sont mis à jour, par exemple lorsque l'assistance Google Cloud envoie un nouveau message.
- Lorsque des incidents sont créés ou mis à jour pour des produits Google Cloud ou des emplacements spécifiques, tels que des régions.
- Lorsque des informations spécifiques sur des incidents existants sont mises à jour, telles que l'état et la pertinence.
Étant donné que ces notifications utilisent des alertes de journal, chacune d'elles est associée à un incident de surveillance. Chaque notification inclut des liens vers la page de l'incident et un lien direct vers le tableau de bord "Service Health". En savoir plus sur l'investigation des incidents
Une fois une alerte configurée, vous recevrez une notification chaque fois que les conditions de votre règle d'alerte seront remplies. Ces notifications sont soumises à des limites de surveillance, par exemple 20 alertes par règle et par jour et par projet.
Les sections suivantes expliquent comment configurer une règle d'alerte basée sur les journaux et fournissent des exemples de scénarios d'alerte courants. Les alertes de journal s'appuient sur des canaux de notification, qui prennent en charge diverses intégrations, y compris les e-mails, les SMS, Pub/Sub, les webhooks, Slack et PagerDuty.
Pour acheminer une alerte vers une destination autre que les options listées précédemment, envisagez d'utiliser un webhook. Par exemple, vous pouvez configurer un webhook pour ServiceNow. Pour en savoir plus, consultez la section Configurer un webhook dans Google Cloud dans la documentation ServiceNow.
Formats de notification d'alerte
Les formats de notification d'alerte varient selon le canal de notification.
Si vous configurez l'alerte pour qu'elle envoie un e-mail, un message utilisant l'adresse alerting-noreply@google.com sera envoyé à l'adresse e-mail de votre choix lorsque la condition d'alerte sera remplie.
Slack
Si vous configurez votre notification personnalisée pour qu'elle soit publiée sur Slack, un message de l'application Cloud Monitoring s'affiche dans le canal que vous avez sélectionné lorsque l'événement se produit.
Configurer une règle d'alerte
Une alerte utilise une règle d'alerte, qui décrit les circonstances dans lesquelles vous souhaitez être averti et de quelle manière.
Vous pouvez configurer des règles d'alerte dans le tableau de bord Service Health ou à l'aide de Google Cloud CLI.
Les règles d'alerte nécessitent un canal de notification Cloud Monitoring, qui définit l'emplacement d'envoi de l'alerte. Si vous ne disposez pas de canal de notification, vous pouvez en créer un dans la console Google Cloud ou à l'aide de l'API Monitoring.
Dans le tableau de bord "État du Service Health"
Consultez le guide de démarrage rapide.
Utiliser la CLI gcloud
Pour configurer une règle d'alerte à l'aide de la gcloud CLI:
Obtenez l'ID de votre canal de notification.
a. Listez les ID des canaux de notification.
gcloud config set project PROJECT_ID gcloud beta monitoring channels list
b. Recherchez les entrées avec
projects/PROJECT_ID/notificationChannels/
. Il s'agit des ID des canaux de notification.Créez un fichier
policy.json
avec le contenu suivant:ALERT_NAME s'affiche dans la notification. Exemple: "Incident Google Cloud SQL"
ALERT_CONDITION définit le moment auquel envoyer une alerte.
- Lorsque vous définissez des conditions, utilisez les valeurs des produitsGoogle Cloud et des zones géographiques.
Exemples de conditions d'alerte:
Condition d'alerte Valeur ALERT_CONDITION Recevoir des alertes pour tout événement Cloud SQL jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
Recevoir des alertes pour tout événement se produisant dans la zone us-central1-a
jsonPayload.impactedLocations =~ \"us-central1-a\"
Consultez d'autres exemples de conditions d'alerte.
NOTIFICATION_CHANNEL correspond à l'ID du canal de notification, que vous avez récupéré à l'aide de la commande list à l'étape précédente. Exemple :
projects/PROJECT_ID/notificationChannels/885798905074
L'extrait de code suivant montre un exemple de fichier
policy.json
.{ "displayName": "ALERT_NAME", "combiner": "OR", "conditions": [ { "displayName": "Log match condition", "conditionMatchedLog": { "filter": "ALERT_CONDITION", } } ], "notificationChannels": [ "NOTIFICATION_CHANNEL" ], }
Créez la règle Cloud Monitoring.
gcloud config set project PROJECT_ID gcloud alpha monitoring policies create --policy-from-file="policy.json"
Personnaliser le contenu de l'alerte
Vous pouvez définir les champs dans la notification via les champs suivants du fichier JSON:
labelExtractors
: propriétés à inclure dans l'en-tête de la notification. Pour personnaliser ces propriétés, consultez le guide LabelExtractors.content
: mise en forme de la notification par e-mail. Vous pouvez utiliser la substitution de variables Markdown, qui vous permet d'utiliserlabelExtractors
comme variable. Pour personnaliser ces variables, consultez ce guide.
Consultez les exemples de règles et de conditions d'alerte pour découvrir comment personnaliser vos alertes.
Tester votre alerte
Pour tester l'alerte, vous allez utiliser un exemple de journal de test à l'aide de Cloud Logging. Le journal de test affiche la logique d'alerte que vous avez précédemment configurée.
Utiliser la console Google Cloud
Procédez comme suit :
- Accédez à la page de référence de la méthode entries:write, qui vous permet d'écrire des entrées de journal dans Cloud Logging. Une fenêtre vous permettant d'essayer la méthode s'affiche.
- Dans le corps de la requête, remplacez PROJECT_ID par votre propre projet.
Modifiez les champs
jsonPayload
dans le corps de la requête, en fonction de la condition d'alerte que vous testez. Vous pouvez également vérifier le schéma event_log.proto et ajuster les valeurs du journal pour tester des scénarios spécifiques qui vous intéressent.{ "entries": [ { "logName": "projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity", "resource": { "type": "servicehealth.googleapis.com/Event", "labels": { "resource_container": "PROJECT_ID", "location": "global", "event_id": "U4AqrjwFQYi5fFBmyAX-Gg" } }, "labels": { "servicehealth.googleapis.com/new_event": "true", "servicehealth.googleapis.com/updated_fields": "[]" }, "jsonPayload": { "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "category": "INCIDENT", "title": "EXAMPLE... NOT REAL INCIDENT", "description": "EXAMPLE FOR TESTING, NOT REAL INCIDENT. We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.", "updateTime": "2022-07-15T22:26:40Z", "endTime": "2022-07-16T22:13:20Z", "impactedLocations": "['us-east1', 'australia-southeast2']", "impactedProducts": "['CloudSQL']", "impactedProductIds": "['hV87iK5DcEXKgWU2kDri']", "startTime": "2022-07-13T12:26:40Z", "nextUpdateTime": "2022-07-13T16:26:40Z", "state": "ACTIVE", "detailedState": "CONFIRMED", "relevance": "RELATED" } } ] }
Cliquez sur Exécuter. Une fenêtre s'affiche, dans laquelle Google APIs Explorer demande l'accès à votre compte.
Autorisez l'accès de Google APIs Explorer. La fenêtre contenant le corps de la requête affiche la capture d'écran suivante, qui indique que l'opération a réussi.
Attendez quelques minutes, puis vérifiez que l'alerte s'est déclenchée.
- Dans la console Google Cloud, accédez à Cloud Monitoring > Incidents et recherchez l'alerte.
- Vérifiez si vous avez reçu une alerte sur le canal de notification utilisé par la règle d'alerte.
Si vous devez tester à nouveau l'alerte, attendez au moins cinq minutes avant de le faire.
Utiliser gcloud
Vous pouvez également créer une entrée de journal de test en appelant l'API Cloud Logging à l'aide de la commande gcloud.
(Facultatif) Vérifiez votre projet actuel.
gcloud config list
Définissez votre projet en cours.
gcloud_name config set project PROJECT_ID
Écrivez l'entrée de journal de test.
gcloud logging write --payload-type=json LOG_NAME '{ "category": "INCIDENT", "relevance": "IMPACTED", "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "description": "This is a test log entry"}'
Attendez quelques minutes, puis vérifiez que l'alerte s'est déclenchée.