Questo documento spiega come configurare, personalizzare e testare gli avvisi per gli eventi di integrità del servizio.
Personalized Service Health si integra con gli avvisi dei log di Cloud Monitoring per consentirti di configurare e ricevere avvisi. Puoi creare notifiche per le seguenti condizioni:
- Quando vengono segnalati nuovi incidenti.
- Quando gli incidenti esistenti vengono aggiornati, ad esempio quando Google Cloud l'assistenza invia un nuovo messaggio.
- Quando vengono creati o aggiornati incidenti relativi a prodotti o località specifici, ad esempio regioni. Google Cloud
- Quando vengono aggiornati dettagli specifici degli incidenti esistenti, ad esempio stato e pertinenza.
Poiché queste notifiche utilizzano avvisi dei log, ogni notifica è associata a un incidente di Monitoring. Ogni notifica include link alla pagina dell'incidente e un link diretto alla dashboard Service Health. Scopri di più su come esaminare gli incidenti.
Una volta configurato un avviso, riceverai una notifica ogni volta che vengono soddisfatte le condizioni del criterio di avviso. Queste notifiche sono soggette a limiti di monitoraggio; un esempio è 20 avvisi per norma al giorno per progetto.
Le sezioni seguenti mostrano come configurare un criterio di avviso basato sui log e forniscono esempi per scenari di avviso comuni. Gli avvisi basati sui log si basano sui canali di notifica, che supportano una serie di integrazioni tra cui email, SMS, Pub/Sub, webhook, Slack e PagerDuty.
Per indirizzare un avviso a una destinazione diversa dalle opzioni elencate in precedenza, valuta la possibilità di utilizzare un webhook. Ad esempio, puoi configurare un webhook per ServiceNow. Per saperne di più, consulta la sezione Configurare il webhook in Google Cloud nella documentazione di ServiceNow.
Formati delle notifiche di avviso
I formati delle notifiche di avviso variano a seconda del canale di notifica.
Se configuri l'avviso per inviare un'email, quando la condizione di avviso viene soddisfatta, un messaggio con l'indirizzo alerting-noreply@google.com verrà inviato all'indirizzo email che hai scelto.
Slack
Se configuri la notifica personalizzata in modo che venga pubblicata su Slack, nel canale selezionato verrà visualizzato un messaggio dell'applicazione Cloud Monitoring quando si verifica l'evento.
Configura un criterio di avviso
Un avviso utilizza un criterio di avviso, che descrive le circostanze in cui vuoi ricevere un avviso e come vuoi ricevere le notifiche.
Puoi configurare i criteri di avviso all'interno della dashboard Service Health o utilizzando Google Cloud CLI.
I criteri di avviso richiedono un canale di notifica Cloud Monitoring, che definisce la destinazione di un avviso. Se non hai un canale di notifica, puoi crearne uno nella consoleGoogle Cloud o utilizzando l'API Monitoring.
Nella dashboard Service Health
Consulta la guida rapida.
Utilizzo di gcloud CLI
Per configurare un criterio di avviso utilizzando gcloud CLI:
Recupera l'ID del canale di notifica.
a. Elenca gli ID dei canali di notifica.
gcloud config set project PROJECT_ID gcloud beta monitoring channels list
b. Cerca le voci con
projects/PROJECT_ID/notificationChannels/
. Queste voci sono gli ID dei canali di notifica.Crea un file
policy.json
con i seguenti contenuti:ALERT_NAME viene visualizzato nella notifica. Esempio: "Incidente Google Cloud SQL"
ALERT_CONDITION definisce quando inviare un avviso.
- Quando definisci le condizioni, utilizza i valori trovati in Google Cloud products e locations.
Esempi di condizioni di avviso:
Condizione avviso Valore ALERT_CONDITION Ricevere avvisi per qualsiasi evento Cloud SQL jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
Ricevere avvisi per qualsiasi evento che si verifica nella zona us-central1-a
jsonPayload.impactedLocations =~ \"us-central1-a\"
Visualizza altri esempi di condizioni di avviso.
NOTIFICATION_CHANNEL è l'ID del canale di notifica che hai recuperato utilizzando il comando list nel passaggio precedente. Esempio:
projects/PROJECT_ID/notificationChannels/885798905074
.
Il seguente snippet mostra un esempio del file
policy.json
.{ "displayName": "ALERT_NAME", "combiner": "OR", "conditions": [ { "displayName": "Log match condition", "conditionMatchedLog": { "filter": "ALERT_CONDITION", } } ], "notificationChannels": [ "NOTIFICATION_CHANNEL" ], }
Crea il criterio Cloud Monitoring.
gcloud config set project PROJECT_ID gcloud alpha monitoring policies create --policy-from-file="policy.json"
Personalizzare il contenuto dell'avviso
Puoi impostare i campi all'interno della notifica tramite i seguenti campi nel file JSON:
labelExtractors
: le proprietà da includere nell'intestazione della notifica. Per personalizzare queste proprietà, consulta la guida LabelExtractors.content
: la formattazione della notifica via email. Puoi utilizzare la sostituzione delle variabili Markdown, che ti consente di utilizzarelabelExtractors
come variabili. Per personalizzare queste variabili, consulta questa guida.
Consulta gli esempi di criteri e condizioni di avviso per personalizzare gli avvisi.
Testare l'avviso
Per testare l'avviso, utilizzerai un log di test di esempio utilizzando Cloud Logging. Il log di test mostra la logica di avviso che hai configurato in precedenza.
Utilizzo della console Google Cloud
Segui questi passaggi:
- Vai alla pagina di riferimento per il metodo entries.write, che consente di scrivere voci di log in Cloud Logging. Viene visualizzata una finestra che ti consente di provare il metodo.
- Nel corpo della richiesta, modifica PROJECT_ID con il tuo progetto.
Modifica i campi
jsonPayload
nel corpo della richiesta, a seconda della condizione di avviso che stai testando. Puoi anche controllare lo schema event_log.proto e modificare i valori nel log per testare scenari specifici che ti interessano.{ "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" } } ] }
Fai clic su Esegui. Viene visualizzata una finestra in cui Explorer API di Google richiede l'accesso al tuo account.
Consenti l'accesso a Explorer API di Google. La finestra con il corpo della richiesta mostra lo screenshot seguente, che indica l'esito positivo.
Attendi qualche minuto, poi verifica che l'avviso sia stato attivato.
Nella console Google Cloud , vai alla pagina Cloud Monitoring > Incidenti.
Controlla se hai ricevuto un avviso sul canale di notifica utilizzato dai criterio di avviso.
Se devi testare di nuovo l'avviso, attendi almeno 5 minuti prima di farlo.
Utilizzo di gcloud
Puoi anche creare una voce di log di test chiamando l'API Cloud Logging utilizzando il comando gcloud.
(Facoltativo) Controlla il progetto attuale.
gcloud config list
Imposta il progetto corrente.
gcloud_name config set project PROJECT_ID
Scrivi la voce del log di prova.
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"}'
Attendi qualche minuto, poi verifica che l'avviso sia stato attivato.