Personalized Service Health consigne les événements de santé des services dans Cloud Logging. Il enregistre toutes les modifications apportées à la description, à la pertinence ou à l'état de l'événement sous la forme d'un journal distinct.
Ce document explique comment afficher, exporter et stocker les journaux de l'état du service.
Avant de commencer
Make sure that billing is enabled for your Google Cloud project.
Vous devez avoir accès aux journaux Service Health.
Schéma de journalisation
Consultez la référence du schéma de journalisation pour connaître les champs que vous pouvez définir dans votre requête.
Afficher les journaux Service Health
Pour afficher les journaux Service Health:
- Accédez à Google Cloud Console.
- Sélectionnez Operations > Logging > Logs Explorer (Opérations > Journalisation > Explorateur de journaux).
- Sélectionnez un projet Google Cloud en haut de la page.
Dans le menu déroulant Nom du journal, sélectionnez État du service.
Une liste des journaux pour
type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
s'affiche.Développez une entrée de journal pour afficher les détails de l'événement. L'exemple suivant montre un événement type.
"insertId":"1pw1msgf6a3zc6", "timestamp":"2022-06-14T17:17:55.722035096Z", "receiveTimestamp":"2022-06-14T17:17:55.722035096Z", "logName":"projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity", "resource":{ "type":"servicehealth.googleapis.com/Event", "labels":{ "resource_container":"797731824162", "location":"global", "event_id":"U4AqrjwFQYi5fFBmyAX-Gg" } } "labels":{ "new_event":"true" "updated_fields": "[]" }, "jsonPayload":{ "@type":"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "category":"INCIDENT", "title":"We are experiencing a connectivity issue affecting Cloud SQL in us-east1, australia-southeast2.", "description":"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":"2023-11-14T22:26:40Z", "endTime":"2023-11-14T22:13:20Z", "impactedLocations":"['us-east1','australia-southeast2']", "impactedProducts":"['Google Cloud SQL']", "impactedProductIds":"['hV87iK5DcEXKgWU2kDri']", "nextUpdateTime":"2023-11-14T22:40:00Z", "startTime":"2020-09-13T12:26:40Z", "state":"ACTIVE", "detailedState":"CONFIRMED", "relevance":"RELATED", }
Interroger les journaux Service Health
Vous pouvez utiliser l'explorateur de journaux pour interroger les journaux d'état du service. Vous aurez peut-être besoin des références suivantes pour créer votre requête:
Exemples :
Condition | Requête |
Obtenir des journaux avec une pertinence d'incident spécifique | jsonPayload.relevance = ("IMPACTED" OR "RELATED")
|
Combiner plusieurs filtres | jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"
|
Exporter les journaux Service Health
Vous pouvez exporter les journaux d'état du service vers n'importe quelle destination de destination Cloud Logging à l'aide de la console, de l'API ou de la Google Cloud CLI. Pour configurer un récepteur Cloud Logging, consultez la page Configurer et gérer les récepteurs.
Vous pouvez inclure et exclure des journaux de santé du service en configurant les filtres d'inclusion et d'exclusion pour le récepteur.
Lorsque vous définissez le produit ou l'emplacement, utilisez les valeurs indiquées dans Google Cloud products (produits) et locations (emplacements).
Agréger les journaux Service Health au niveau d'un dossier
Envoyer des journaux liés à l'état du service de tous les projets d'un dossier vers un projet créé pour les journaux d'état du service vous permet d'effectuer des requêtes plus complexes sur ces journaux.
Vous allez créer un récepteur au niveau du dossier pour envoyer tous les journaux liés à l'état du service à un nouveau projet sous ce dossier. Procédez comme suit :
Créez un projet dans un dossier. Ce projet est alloué aux journaux Service Health.
gcloud projects create PROJECT_ID --folder FOLDER_ID
Créez un récepteur agrégé au niveau du dossier pour les autres projets du dossier.
gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="LOG_FILTER"
Pour obtenir les journaux de tous les incidents pertinents, définissez la valeur LOG_FILTER sur la valeur suivante:
resource.type=servicehealth.googleapis.com/Event AND jsonPayload.category=INCIDENT AND jsonPayload.relevance!=NOT_IMPACTED AND jsonPayload.@type=type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
Définir les autorisations du compte de service du récepteur
gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.bucketWriter gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.logWriter
(Facultatif) Si vous ne souhaitez pas envoyer les journaux au récepteur
_Default
, créez un bucket de journaux pour les journaux liés à l'état du service dans le projet.gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
Si vous avez créé un bucket de journaux, créez un récepteur pour y envoyer ces journaux.
gcloud logging sinks create SINK_NAME_BUCKET \ logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \ --project=PROJECT_ID --log-filter="LOG_FILTER"
Interroger les journaux de l'état du service avec BigQuery
Vous pouvez interroger les journaux envoyés à Cloud Logging à l'aide de BigQuery:
- Créer des requêtes SQL
- Utilisation de l'API BigQuery pour transmettre les résultats des requêtes à des systèmes externes.
Procédez comme suit :
Créez un bucket de journaux dans le projet que vous avez créé pour les journaux d'état du service.
gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
Activez l'Analyse de journaux.
gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
Créez un ensemble de données BigQuery associé au bucket contenant les journaux de l'état du service.
gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
Si nécessaire, activez l'API BigQuery.
gcloud services enable bigquery.googleapis.com
Vous pouvez désormais exécuter des requêtes SQL complexes sur BigQuery, par exemple:
Condition | Requête |
Obtenir des journaux avec une pertinence d'incident spécifique | gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
|
Obtenir tous les événements de journal enfant pour un événement parent | gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["parentEvent"]) = "projects/PROJECT_ID/locations/global/events/EVENT_ID"'
|
Conserver les événements passés
Personalized Service Health conserve une quantité limitée d'événements.
Si vous devez conserver un enregistrement des événements d'état du service passés pendant plus de quelques mois, nous vous recommandons de stocker des journaux Service Health.