Questa pagina spiega perché potresti non ricevere le notifiche come previsto. e offre possibili rimedi per queste situazioni.
Le notifiche non vengono ricevute
Configuri i canali di notifica e ti aspetti di e avvisare quando si verificano incidenti. Non ricevi notifiche.
Per raccogliere informazioni sulla causa dell'errore:
-
Nella console Google Cloud, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- Seleziona il progetto Google Cloud appropriato.
Esegui una query nei log per verificare gli eventi del canale di notifica:
- Espandi il menu Nome log e seleziona notification_channel_events.
- Espandi il menu Gravità e seleziona Errore.
- (Facoltativo) Per selezionare un intervallo di tempo personalizzato, utilizza il selettore dell'intervallo di tempo.
- Fai clic su Esegui query.
I passaggi precedenti creano la seguente query:
resource.type:"stackdriver_notification_channel" logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events" severity=ERROR
La riga di riepilogo e il campo
jsonPayload
contengono in genere informazioni sugli errori. Ad esempio, quando si verifica un errore del gateway, la riga di riepilogo include "non riuscito con 502 gateway non valido".
Le notifiche webhook non vengono ricevute
Configura un canale di notifica webhook e prevedi di ricevere una notifica quando si verificano incidenti. Non ricevi alcuna notifica.
Endpoint privato
Puoi utilizzare i webhook per le notifiche solo se l'endpoint è pubblico.
Per risolvere la situazione, utilizza le notifiche Pub/Sub insieme a una sottoscrizione pull all'argomento di notifica.
Quando configuri un canale di notifica Pub/Sub, le notifiche degli incidenti vengono inviate a una coda Pub/Sub con controlli di Identity and Access Management. Qualsiasi servizio in grado di eseguire query su un argomento Pub/Sub o di ascoltarlo può utilizzare queste notifiche. Ad esempio, le applicazioni in esecuzione su macchine virtuali App Engine, Cloud Run o Compute Engine possono utilizzare queste notifiche.
Se utilizzi una sottoscrizione pull, viene inviata una richiesta a Google che attende l'arrivo di un messaggio. Questi abbonamenti richiedono l'accesso a Google, ma e non richiedono regole per firewall o per l'accesso in entrata.
Endpoint pubblico
Per identificare il motivo dell'errore di importazione, esamina le voci di log di Cloud Logging per informazioni sull'errore.
Ad esempio, puoi cercare le voci di log del canale di notifica utilizzando Esplora log, con un filtro simile al seguente:
resource.type="stackdriver_notification_channel"
Mancata ricezione di notifiche Pub/Sub
Configuri un canale di notifica Pub/Sub ma non ricevi eventuali notifiche.
Per risolvere questa condizione, prova quanto segue:
Assicurati che l'account di servizio delle notifiche esista. Le notifiche non sono quando l'account di servizio viene eliminato.
Per verificare che l'account di servizio esista:
-
Nella console Google Cloud, vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Cerca un account di servizio che abbia la seguente convenzione di denominazione:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Se questo account di servizio non è nell'elenco, seleziona Includi le concessioni dei ruoli fornite da Google.
Se l'account di servizio delle notifiche non esiste, è necessario Avviare il processo di creazione del canale di notifica Pub/Sub in Monitoring per creare l'account di servizio:
-
Nella console Google Cloud, vai alla pagina notifications Avvisi:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Fai clic su Modifica canali di notifica.
Nella sezione Pub/Sub, fai clic su Aggiungi nuovo.
Il monitoraggio crea l'account di servizio per le notifiche se non esiste. La finestra di dialogo Crea canale Pub/Sub mostra il nome dell'account di servizio per le notifiche.
Se non vuoi aggiungere un canale di notifica, fai clic su Annulla. Altrimenti, completa la creazione del canale di notifica e fai clic su Aggiungi canale.
Concedi all'account di servizio le autorizzazioni per pubblicare gli argomenti Pub/Sub:
- In una nuova scheda del browser, apri il documento Creare un canale di notifica.
- Seleziona la scheda Pub/Sub e segui i passaggi indicati nella sezione Autorizza account di servizio della pagina.
-
Assicurati che l'account di servizio delle notifiche sia stato autorizzato a e inviare notifiche per gli argomenti Pub/Sub di interesse.
Per visualizzare le autorizzazioni per un account di servizio, puoi utilizzare il Console Google Cloud o il comando Google Cloud CLI:
- La pagina IAM della console Google Cloud elenca i ruoli per ogni l'account di servizio.
- La pagina Argomenti di Pub/Sub nella console Google Cloud elenca ogni argomento. Quando selezioni un argomento, la scheda Autorizzazioni elenca i ruoli concessi agli account di servizio.
Per elencare tutti gli account di servizio e i relativi ruoli, esegui questo comando Comando Google Cloud CLI:
gcloud projects get-iam-policy PROJECT_ID
Di seguito è riportata una risposta parziale per questo comando:
serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/monitoring.notificationServiceAgent - members: [...] role: roles/owner - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/pubsub.publisher
La risposta al comando include solo i ruoli, non per argomento autorizzazione.
Per elencare le associazioni IAM per un argomento specifico, esegui questo comando:
gcloud pubsub topics get-iam-policy TOPIC
Di seguito è riportata una risposta di esempio per questo comando:
bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwXPRb5WDPI= version: 1
Per informazioni su come autorizzare l'account di servizio delle notifiche, consulta Autorizza account di servizio.
Le notifiche per i criteri di avviso relativi al controllo di uptime non vengono ricevute
Vuoi ricevere una notifica se una macchina virtuale (VM) si riavvia o si arresta, quindi crei un criterio di avviso che monitora la metrica compute.googleapis.com/instance/uptime
.
Puoi creare e configurare la condizione per generare un incidente quando
non sono dati di metrica. Non definisci la condizione utilizzando
Monitoring Query Language (MQL)1.
Non ricevi notifiche quando la macchina virtuale (VM) viene riavviata o arrestata.
Questo criterio di avviso monitora solo le serie temporali per le istanze VM di Compute Engine
nello stato RUNNING
. Le serie temporali per le VM in qualsiasi altro stato, ad esempio STOPPED
o DELETED
, vengono filtrate prima della valutazione della condizione. Per questo motivo, non puoi utilizzare
criterio di avviso
con una condizione di avviso assenza di metrica per determinare se un'istanza VM
in esecuzione. Per informazioni sugli stati delle istanze VM, consulta
Ciclo di vita delle istanze VM.
Per risolvere il problema, crea un criterio di avviso per monitorare controllo di uptime. Per gli endpoint privati, utilizza il tempo di attività privato controlli.
Una possibile alternativa agli avvisi sui controlli di uptime è utilizzare i criteri di avviso che monitorano l'assenza di dati. Ti consigliamo vivamente di attivare gli avvisi per i controlli di uptime anziché per l'assenza di dati: i criteri di avviso per l'assenza di metriche possono generare falsi positivi se si verificano problemi temporanei con la disponibilità dei dati di monitoraggio.
Se invece non è possibile utilizzare i controlli di uptime, puoi creare con MQL che ti informa che la VM è stata arrestata. Le condizioni definite in MQL non prefiltrano i dati delle serie temporali in base allo stato dell'istanza VM. Poiché MQL non filtra i dati in base agli stati delle VM, puoi utilizzarlo per rilevare l'assenza di dati delle VM che sono state spente.
Considera la seguente condizione MQL che monitora la metrica
compute.googleapis.com/instance/cpu/utilization
:
fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
|absent_for 3m
Se una VM monitorata da questa condizione viene arrestata,
e tre minuti dopo, viene generato un incidente
l'invio delle notifiche. Il valore absent_for
deve essere impostato su
almeno tre minuti.
Per ulteriori informazioni su MQL, consulta Criteri di avviso con MQL.
1: MQL è un approccio espressivo un linguaggio basato su testo che può essere utilizzato con le chiamate API Cloud Monitoring e nella console Google Cloud. Per configurare una condizione con MQL quando utilizzi nella console Google Cloud, devi usare l'editor di codice.
Le notifiche relative ai criteri di avviso del numero di richieste non vengono ricevute
Vuoi monitorare il numero di richieste completate. Hai creato un
criterio di avviso che monitora la metrica
serviceruntime.googleapis.com/api/request_count
, ma non ricevi una notifica quando il numero di richieste supera la soglia che hai
configurato.
Il periodo di allineamento massimo per la metrica di conteggio delle richieste è 7 ore e 30 minuti.
Per risolvere il problema, controlla il valore del periodo di allineamento nell'avviso . Se il valore è superiore al massimo per questa metrica, riduci il periodo di allineamento in modo che non superi le 7 ore e 30 minuti.