Personalized Service Health enregistre les événements liés à l'état 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 d'Service Health.
Avant de commencer
Make sure that billing is enabled for your Google Cloud project.
- Activez l'API Service Health pour le projet dont vous souhaitez afficher, exporter ou stocker les journaux.
- Accédez aux journaux Service Health.
Schéma de journal
Consultez la documentation de référence sur le schéma des journaux 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 à la console Google Cloud .
- Sélectionnez 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'Service Health. 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'Service Health vers n'importe quelle destination de récepteur Cloud Logging à l'aide de la console Google Cloud , de l'API ou de la gcloud CLI. Pour configurer un récepteur Cloud Logging, consultez Configurer et gérer les récepteurs.
Vous pouvez inclure et exclure les journaux d'Service Health 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 trouvées dans Google Cloud products et locations.
Agréger les journaux Service Health au niveau d'un dossier
L'envoi des journaux liés à l'état des services de tous les projets d'un dossier vers un projet créé pour les journaux d'état des services 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'Service Health à un nouveau projet sous ce dossier. Procédez comme suit :
Créez un projet dans un dossier. Ce projet est attribué 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 qu'il contient.
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 concernés, définissez la valeur LOG_FILTER sur ce qui suit :
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éfinissez les autorisations pour le 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'Service Health 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 sur l'état des services avec BigQuery
Vous pouvez interroger les journaux envoyés à Cloud Logging à l'aide de BigQuery en procédant comme suit :
- Créer des requêtes SQL
- Utiliser 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'Service Health.
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
-
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 journaux enfants 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 offre une durée de conservation limitée des événements.
Si vous devez conserver un enregistrement des événements d'état des services passés au-delà de quelques mois, nous vous recommandons de stocker les journaux Service Health.