Risolvere i problemi relativi a monitor sintetici e controlli di uptime

Questo documento fornisce informazioni su come trovare i dati di log e su come risolvere gli errori relativi al monitoraggio sintetico e ai controlli di uptime:

Trova i log

Questa sezione fornisce informazioni su come trovare i log per i monitor sintetici e i controlli di uptime:

  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 il cui sottotitolo è Logging.

  2. Esegui una delle seguenti operazioni:

    • Per trovare tutti i log associati ai monitor sintetici o ai controlli di uptime, esegui una query in base al tipo di risorsa. Puoi utilizzare il menu Risorsa o inserire una query.

      Per i controlli di uptime, nel menu Risorsa, seleziona URL del controllo di uptime o inserisci la seguente query nell'editor di query e poi fai clic su Esegui query:

      resource.type="uptime_url"
      

      Per i monitor sintetici, nel menu Risorsa, seleziona Revisione Cloud Run o inserisci la seguente query nell'editor query e poi fai clic su Esegui query:

      resource.type="cloud_run_revision"
      
    • I log di ricerca che contengono informazioni sulla risposta ricevute durante l'esecuzione di un monitoraggio sintetico o di un controllo di uptime effettuano una delle seguenti operazioni:

      • Per eseguire una query utilizzando l'ID del monitoraggio sintetico o del controllo di uptime, utilizza il formato seguente quando inserisci l'ID nell'editor query e fai clic su Esegui query

        labels.check_id="my-check-id"
        
      • Per eseguire una query sui log che contengono i dati delle risposte alle richieste inviate da monitor sintetici e controlli di uptime, inserisci la query seguente nell'editor query e fai clic su Esegui query

        "UptimeCheckResult"
        

        La query precedente corrisponde a tutte le voci di log che includono la stringa "UptimeCheckResult".

      Questi log includono quanto segue:

      • L'ID del monitoraggio sintetico o del controllo di uptime archiviato nel campo labels.check_id.

      • Per i monitor sintetici, il nome della Cloud Function, archiviata nel campo resource.labels.service_name.

      • Quando vengono raccolti i dati di traccia, l'ID di una traccia associata, archiviata nel campo trace.

    • Per verificare che il tuo servizio abbia ricevuto richieste dai server Google Cloud, copia la seguente query nell'editor query e fai clic su Esegui query:

      "GoogleStackdriverMonitoring-UptimeChecks"
      

      Il campo protoPayload.ip contiene uno degli indirizzi utilizzati dai server di controllo dell'uptime. Per informazioni su come elencare tutti gli indirizzi IP, consulta Elencare gli indirizzi IP.

Risolvere i problemi relativi alle notifiche

In questa sezione vengono descritti alcuni errori che potresti riscontrare durante la configurazione dei criteri di avviso e vengono fornite informazioni per risolverli.

Hai ricevuto una notifica e vuoi eseguire il debug dell'errore

  1. Per identificare quando è iniziato l'errore, esegui una delle seguenti operazioni:

    • Per i controlli di uptime, per determinare quando si è verificato l'errore, visualizza la pagina Dettagli uptime:

      1. Nella console Google Cloud, vai alla pagina  Controlli di uptime:

        Vai a Controlli di uptime

        Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

      2. Trova e seleziona il controllo di uptime.

        Il grafico Controlli superati mostra la cronologia dei controlli. Per identificare quando il controllo di uptime non è riuscito per la prima volta, potrebbe essere necessario modificare l'intervallo di tempo per il grafico. Il selettore dell'intervallo di tempo si trova nella barra degli strumenti della pagina Dettagli uptime.

    • Per i monitor sintetici, per determinare quando si è verificato l'errore, visualizza la pagina Dettagli uptime:

      1. Nella console Google Cloud, vai alla pagina  Monitoraggio sintetico:

        Vai a Monitoraggio sintetico

        Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

      2. Trova e seleziona il monitoraggio sintetico.
  2. Per informazioni su come trovare i dati di log associati, consulta la sezione di questa pagina intitolata Ricerca dei log.

Non ricevi una notifica che indica che un controllo di uptime non è riuscito

Hai configurato un controllo di uptime e stai visualizzando la pagina Dettagli uptime per tale controllo. Noti che il grafico Controlli superati mostra che almeno un controllo ha avuto esito negativo. Tuttavia, non hai ricevuto una notifica.

Per impostazione predefinita, il criterio di avviso è configurato per creare un incidente e inviare una notifica quando i controlli in almeno due regioni non ricevono una risposta a un controllo di uptime. Questi errori devono verificarsi contemporaneamente.

Puoi modificare la condizione del criterio di avviso in modo da ricevere una notifica quando una singola regione non riceve una risposta. Tuttavia, ti consigliamo di utilizzare la configurazione predefinita, che riduce il numero di notifiche che potresti ricevere a causa di errori temporanei.

Per visualizzare o modificare un criterio di avviso:

  1. Nella console Google Cloud, vai alla pagina Avvisi di :

    Vai ad Avvisi

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Fai clic su Visualizza tutte le norme nel riquadro Norme.
  3. Individua il criterio che vuoi visualizzare o modificare, quindi fai clic sul suo nome.

    Puoi visualizzare e modificare la norma nella pagina Dettagli norme.

Risolvere i problemi relativi ai controlli di uptime pubblici

In questa sezione vengono descritti alcuni errori che potresti riscontrare durante l'utilizzo dei controlli di uptime pubblici e vengono fornite informazioni per risolverli.

I tuoi controlli di uptime pubblici non riusciti

Configuri un controllo di uptime pubblico, ma viene visualizzato un errore quando esegui la fase di verifica.

Di seguito sono riportate alcune possibili cause di un errore del controllo di uptime:

  • Errore di connessione - Rifiutato: se utilizzi il tipo di connessione HTTP predefinito, verifica di aver installato un server web che risponde alle richieste HTTP. Se non hai installato un server web, può verificarsi un errore di connessione su una nuova istanza; consulta la Guida rapida per Compute Engine. Se utilizzi un tipo di connessione HTTPS, potresti dover eseguire passaggi di configurazione aggiuntivi. Per i problemi del firewall, consulta l'articolo Elencare gli indirizzi IP dei server per i controlli di uptime.
  • Nome o servizio non trovato: il nome host potrebbe non essere corretto.
  • 403 Forbidden: il servizio restituisce un codice di errore al controllo di uptime. Ad esempio, la configurazione predefinita del server web Apache restituisce questo codice in Amazon Linux, ma restituisce il codice 200 (Successo) in altre versioni di Linux. Consulta il tutorial LAMP per Amazon Linux o la documentazione del tuo server web.
  • 404 - Non trovato: il percorso potrebbe non essere corretto.
  • 408 Request timeout (Timeout della richiesta) o nessuna risposta: il numero di porta potrebbe non essere corretto, il servizio potrebbe non essere in esecuzione, il servizio potrebbe essere inaccessibile o il timeout potrebbe essere troppo basso. Verifica che il firewall consenta il traffico dai server di uptime. Consulta Elenco degli indirizzi IP dei server per i controlli di uptime. Il limite di timeout è specificato nelle opzioni Convalida della risposta.

Per aiutarti a risolvere i problemi relativi ai controlli di uptime pubblici non riusciti, puoi configurare questi controlli in modo da inviare fino a tre ping ICMP durante il controllo. I ping possono aiutarti a distinguere tra i guasti causati, ad esempio, da problemi di connettività di rete e timeout nell'applicazione. Per maggiori informazioni, consulta Utilizzare i ping ICMP.

Risolvere i problemi relativi ai controlli di uptime privati

In questa sezione vengono descritti alcuni errori che potresti riscontrare durante l'utilizzo dei controlli di uptime privati e vengono fornite informazioni per risolverli.

Creazione del controllo di uptime non riuscita

Le impostazioni del progetto Google Cloud potrebbero impedire la modifica dei ruoli assegnati all'account di servizio che vengono utilizzati dai controlli di uptime per gestire le interazioni con il servizio Service Directory. In questo caso, la creazione del controllo di uptime non riesce.

Questa sezione descrive come concedere i ruoli richiesti dall'account di servizio:

Console Google Cloud

Quando utilizzi la console Google Cloud per creare il controllo di uptime privato, la console Google Cloud invia i comandi per concedere i ruoli di Service Directory all'account di servizio.

Per informazioni su come concedere ruoli a un account di servizio, consulta Autorizzare l'account di servizio.

API: Definizione dell'ambito del progetto

La prima volta che crei un controllo di uptime privato per un servizio Service Directory e per risorse private in un singolo progetto Google Cloud, la richiesta potrebbe avere esito positivo o negativo. Il risultato dipende dall'eventuale disattivazione delle concessioni automatiche dei ruoli per gli account di servizio nel progetto:

  • La creazione del primo controllo di uptime ha esito positivo se il progetto consente la concessione automatica dei ruoli per gli account di servizio. Un account di servizio viene creato automaticamente e gli vengono assegnati i ruoli necessari.

  • La creazione del primo controllo di uptime non va a buon fine se il progetto non consente le concessioni automatiche dei ruoli per gli account di servizio. Viene creato un account di servizio, ma non vengono concessi ruoli.

Se la creazione del controllo di uptime non va a buon fine:

  1. Autorizza l'account di servizio.
  2. Attendi qualche minuto per la propagazione delle autorizzazioni.
  3. Prova a creare di nuovo il controllo di uptime privato.

API: progetto monitorato

La prima volta che crei un controllo di uptime privato che ha come target un servizio Service Directory in un progetto monitorato o risorse private in un altro progetto Google Cloud, la richiesta non va a buon fine e determina la creazione di un account di servizio Monitoring.

Il modo in cui autorizzi l'account di servizio dipende dal numero di progetti Google Cloud che utilizzi e dalle relative relazioni. Possono essere coinvolti fino a quattro progetti:

  • Il progetto in cui hai definito il controllo di uptime privato.
  • Il progetto monitorato in cui hai configurato il servizio Service Directory.
  • Il progetto in cui hai configurato la rete VPC.
  • Il progetto in cui sono configurate risorse di rete come VM o bilanciatori del carico. Questo progetto non ha alcun ruolo nell'autorizzazione dell'account di servizio trattata qui.

Quando la creazione del primo controllo di uptime non va a buon fine:

  1. Autorizza l'account di servizio.
  2. Attendi qualche minuto per la propagazione delle autorizzazioni.
  3. Prova a creare di nuovo il controllo di uptime privato.

Accesso negato

I controlli di uptime non riusciti con risultati pari a VPC_ACCESS_DENIED. Questo risultato significa che alcuni aspetti della configurazione di rete o dell'autorizzazione dell'account di servizio non sono corretti.

Verifica l'autorizzazione dell'account di servizio per utilizzare un progetto di definizione dell'ambito o un progetto monitorato come descritto in Creazione di controlli di uptime non riuscita.

Per ulteriori informazioni sull'accesso alle reti private, consulta Configurare il progetto di rete.

Risultati anomali dei controlli di uptime privati

Disponi di un servizio Service Directory con più VM e la configurazione del servizio contiene più endpoint. Quando arresti una delle VM, il controllo di uptime indica comunque l'esito positivo.

Quando la configurazione del servizio contiene più endpoint, ne viene selezionato uno in modo casuale. Se la VM associata all'endpoint scelto è in esecuzione, il controllo di uptime ha esito positivo anche se una delle VM non è attiva.

Intestazioni predefinite

I controlli di uptime restituiscono errori o risultati imprevisti. Questo può verificarsi se hai sostituito i valori di intestazione predefiniti.

Quando viene inviata una richiesta per un controllo di uptime privato a un endpoint di destinazione, la richiesta include le intestazioni e i valori seguenti:

Titolo Valore
HTTP_USER_AGENT GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
HTTP_CONNECTION keep-alive
HTTP_HOST IP dell'endpoint di Service Directory
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH Calcolato in base al tempo di attività dopo i dati

Se provi a sostituire questi valori, potrebbe verificarsi quanto segue:

  • Il controllo di uptime segnala errori
  • I valori di override vengono eliminati e vengono sostituiti con i valori nella tabella

Nessun dato visibile

Nella dashboard dei controlli di uptime non vengono visualizzati dati quando questo si trova in un progetto Google Cloud diverso da quello del servizio Service Directory.

Assicurati che il progetto Google Cloud che contiene il controllo di uptime monitori il progetto Google Cloud che contiene il servizio Service Directory.

Per ulteriori informazioni su come elencare i progetti monitorati e aggiungerne altri, consulta Configurare un ambito delle metriche per più progetti.

Risolvere i problemi relativi ai monitor sintetici

Questa sezione fornisce informazioni che possono essere utili per la risoluzione dei problemi dei monitor sintetici.

Messaggio di errore dopo l'abilitazione delle API

Apri il flusso di creazione per un monitoraggio sintetico e ti viene chiesto di abilitare almeno un'API. Dopo aver abilitato le API, viene visualizzato un messaggio simile al seguente:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

Il messaggio di errore consiglia di verificare che l'API sia abilitata e poi di attendere e riprovare.

Per verificare che l'API sia abilitata, vai alla pagina API e servizi del tuo progetto:

Vai ad API e servizi

Dopo aver verificato che l'API è abilitata, puoi continuare con il flusso di creazione. La condizione si risolve automaticamente dopo la propagazione dell'abilitazione dell'API nel backend.

Le richieste HTTP in uscita non vengono tracciate

Puoi configurare il monitoraggio sintetico in modo da raccogliere i dati di traccia per le richieste HTTP di output. I dati di traccia mostrano un solo intervallo, come nel seguente screenshot:

Cloud Trace mostra una sola traccia.

Per risolvere la situazione, assicurati che all'account di servizio sia stato concesso il ruolo di agente Cloud Trace (roles/cloudtrace.agent). È sufficiente anche un ruolo Editor (roles/editor).

Per visualizzare i ruoli concessi al tuo account di servizio:

  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 il cui sottotitolo è IAM e amministrazione.

  2. Seleziona Includi concessioni di ruoli fornite da Google.
  3. Se l'account di servizio utilizzato dal monitoraggio sintetico non è presente nell'elenco o se non gli è stato concesso un ruolo che include le autorizzazioni nel ruolo dell'agente Cloud Trace (roles/cloudtrace.agent), concedi questo ruolo all'account di servizio.

    Se non conosci il nome del tuo account di servizio, seleziona Account di servizio nel menu di navigazione.

Stato In corso

La pagina Monitor sintetici elenca un monitoraggio sintetico con uno stato di In progress. Lo stato In progress indica che il monitoraggio sintetico è stato creato di recente e non sono presenti dati da visualizzare o che il deployment della funzione non è riuscito.

Per determinare se il deployment della funzione non è riuscito, prova quanto segue:

  • Assicurati che il nome della Cloud Function non contenga un trattino basso. Se è presente un trattino basso, rimuovilo ed esegui nuovamente il deployment della Cloud Function.

  • Apri la pagina Dettagli monitoraggio sintetico per il monitoraggio sintetico.

    Se viene visualizzato il seguente messaggio, elimina il monitoraggio sintetico.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    Il messaggio di errore indica che la funzione è stata eliminata e che pertanto il monitoraggio sintetico non è in grado di eseguirla.

  • Apri la pagina Cloud Functions per la funzione. Per aprire questa pagina dalla pagina Dettagli monitoraggio sintetico, fai clic su Codice e poi sul nome della funzione.

    Se viene visualizzato un messaggio simile al seguente, significa che il deployment della funzione non è riuscito.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Per risolvere questo errore, rivedi il codice della funzione e correggi gli errori che impediscono la creazione o il deployment della funzione.

Quando crei un monitoraggio sintetico, il deployment e l'esecuzione della funzione potrebbero richiedere diversi minuti.

Stato avviso

Il campo Monitor sintetici elenca un monitoraggio sintetico con uno stato di Warning. Lo stato Warning indica che i risultati dell'esecuzione non sono coerenti. Ciò potrebbe indicare un problema di progettazione del test oppure che ciò che viene testato ha un comportamento incoerente.

Stato non riuscito

Il campo Monitor sintetici elenca un monitoraggio sintetico con lo stato Failing. Per maggiori informazioni sul motivo dell'errore, visualizza la cronologia di esecuzione più recente.

  • Se viene visualizzato il messaggio di errore Request failed with status code 429, la destinazione della richiesta HTTP ha rifiutato il comando. Per risolvere questo errore, devi modificare il target del monitoraggio sintetico.

    L'endpoint https://www.google.com rifiuta le richieste effettuate dai monitor sintetici.

  • Se l'errore restituisce un tempo di esecuzione pari a 0ms, la funzione Cloud Function potrebbe esaurire la memoria. Per risolvere questo errore, modifica la Cloud Function, quindi aumenta la memoria ad almeno 2 GiB e imposta il campo CPU su 1.

L'eliminazione non riesce per un monitoraggio sintetico

Utilizza l'API Cloud Monitoring per eliminare un monitoraggio sintetico, ma la chiamata API non riesce con una risposta simile alla seguente:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Per risolvere l'errore, elimina i criteri di avviso che monitorano i risultati del monitoraggio sintetico, quindi elimina il monitoraggio sintetico.

Impossibile modificare la configurazione di uno strumento di controllo dei link inaccessibili

Hai creato una verifica dei link inaccessibili utilizzando la console Google Cloud e vuoi modificare gli elementi HTML testati o modificare il timeout dell'URI, i nuovi tentativi, l'attesa del selettore e le opzioni per link. Tuttavia, quando modifichi lo strumento di controllo dei link inaccessibili, nella console Google Cloud non vengono visualizzati i campi di configurazione.

Per risolvere l'errore:

  1. Nella console Google Cloud, vai alla pagina  Monitoraggio sintetico:

    Vai a Monitoraggio sintetico

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato il cui sottotitolo è Monitoring.

  2. Individua il monitor sintetico da modificare, fai clic su Altre opzioni, poi seleziona Modifica.
  3. Fai clic su Modifica funzione.
  4. Modifica l'oggetto options nel file index.js e poi fai clic su Applica funzione.

    Per informazioni sui campi e sulla sintassi di questo oggetto, vedi broken-links-ok/index.js.

  5. Fai clic su Salva.

La console Google Cloud mostra che il salvataggio degli screenshot non riesce

Hai creato uno strumento di controllo dei link non funzionanti e l'hai configurato per salvare gli screenshot. Tuttavia, la console Google Cloud mostra uno dei seguenti messaggi di avviso insieme a informazioni più dettagliate:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Per risolvere questi errori, prova quanto segue:

  • Se viene visualizzato il messaggio InvalidStorageLocation, verifica l'esistenza del bucket Cloud Storage specificato nel campo denominato options.screenshot_options.storage_location.

  • Visualizza i log relativi alla tua Cloud Function. Per ulteriori informazioni, consulta l'articolo Trovare i log.

  • Verifica che l'account di servizio utilizzato nella Cloud Function corrispondente abbia un ruolo Identity and Access Management che consente di creare, accedere e scrivere nei bucket Cloud Storage.