Risolvere i problemi relativi alle notifiche mancanti

Questa pagina spiega perché potresti non ricevere le notifiche come previsto. e offre possibili rimedi a 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:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Seleziona il progetto Google Cloud appropriato.
  3. Esegui una query nei log per verificare gli eventi del canale di notifica:

    1. Espandi il menu Nome log e seleziona notification_channel_events.
    2. Espandi il menu Gravità e seleziona Errore.
    3. (Facoltativo) Per selezionare un intervallo di tempo personalizzato, utilizza il selettore dell'intervallo di tempo.
    4. 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 prevedi di farlo 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 firewall o per 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:

    1. Nella console Google Cloud, vai alla pagina IAM:

      Vai a IAM

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

    2. 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 per Monitoring per creare l'account di servizio:

    1. Nella console Google Cloud, vai alla Pagina Avvisi:

      Vai ad Avvisi

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

    2. Fai clic su Modifica canali di notifica.
    3. 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.

    4. 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.

    5. Concedi all'account di servizio le autorizzazioni per pubblicare Pub/Sub argomenti:

      1. In una nuova scheda del browser, apri Crea un canale di notifica.
      2. 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.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 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.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 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 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. 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 sul tempo di attività controlli invece dell'assenza di dati: criteri di avviso per l'assenza della 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.