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 alcuna notifica.
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
in genere contengono errori informazioni. Ad esempio, quando si verifica un errore del gateway, la riga di riepilogo include "non riuscito con 502 gateway non valido".
Mancata ricezione di notifiche webhook
Configuri un canale di notifica webhook e ti aspetti che e avvisare 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 combinato con una sottoscrizione pull all'argomento delle notifiche.
Quando configuri un canale di notifica Pub/Sub, le notifiche vengono inviate a una coda Pub/Sub con Identity and Access Management i controlli di sicurezza. Qualsiasi servizio che possa eseguire query o ascoltare un argomento Pub/Sub possono utilizzare queste notifiche. Ad esempio, le applicazioni in esecuzione Le macchine virtuali App Engine, Cloud Run o Compute Engine queste notifiche.
Se utilizzi una sottoscrizione pull, a Google viene inviata una richiesta che attende un messaggio in arrivo. Questi abbonamenti richiedono l'accesso a Google, ma e non richiedono regole per i firewall o l'accesso in entrata.
Endpoint pubblico
Per identificare il motivo per cui la consegna non è riuscita, esamina le voci di log di Cloud Logging per informazioni sugli errori.
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 a procedere nel seguente modo:
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 Console di amministrazione.
Cerca un account di servizio che abbia la seguente convenzione di denominazione:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.
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 notifications Pagina 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 delle notifiche quando non ne esiste una. La finestra di dialogo Crea canale Pub/Sub mostra il nome dell'account di servizio delle 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 Pub/Sub argomenti:
- In una nuova scheda del browser, apri Crea 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 per 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. role: roles/monitoring.notificationServiceAgent - members: [...] role: roles/owner - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification. 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 seguente comando:
gcloud pubsub topics get-iam-policy TOPIC
Di seguito è riportato un esempio di risposta per questo comando:
bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification. 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 relative ai criteri di avviso per il controllo di uptime non vengono ricevute
Vuoi ricevere una notifica se una macchina virtuale (VM) si riavvia o si arresta, quindi
crea un criterio di avviso che monitori la metrica
compute.googleapis.com/instance/uptime
Puoi creare e configurare la condizione per generare un incidente quando
non sono dati di metriche. 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
. Serie temporali per le VM che si trovano in qualsiasi altro
come STOPPED
o DELETED
, vengono filtrati prima
viene valutata la 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. Consigliamo vivamente di creare avvisi per il tempo di attività controlli invece dell'assenza di dati: criteri di avviso per l'assenza di metrica possono generare falsi positivi in caso di problemi temporanei con la disponibilità dei dati di Monitoring.
Se invece non è possibile utilizzare i controlli di uptime, puoi creare con MQL che ti informa che la VM è stata arrestata. Le condizioni definite da MQL non filtrano preventivamente i dati delle serie temporali in base al dell'istanza VM. Poiché MQL non filtra i dati in base agli stati delle VM, puoi usarlo per rilevare l'assenza di dati nelle VM è stato arrestato.
Considera la seguente condizione MQL che monitora
compute.googleapis.com/instance/cpu/utilization
metrica:
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 e monitora la metrica
serviceruntime.googleapis.com/api/request_count
, ma tu
non ricevono notifiche quando il numero di richieste supera la soglia impostata
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 supera il limite massimo per questa metrica, riduci il valore in modo che non duri più di 7 ore e 30 minuti.