Questo documento descrive come creare un controllo di uptime pubblico. Un controllo di uptime pubblico può inviare richieste da più località in tutto il mondo a URL disponibili pubblicamente o a risorse Google Cloud per verificare se la risorsa risponde. Per informazioni su come creare controlli di uptime per le reti private, consulta Creare controlli di uptime privati.
I controlli di uptime pubblici possono determinare la disponibilità delle seguenti risorse monitorate:- URL dei controlli di uptime
- Istanza VM
- Applicazione App Engine
- Servizio Kubernetes
- Istanza Amazon Elastic Compute Cloud (EC2)
- Bilanciatore del carico Amazon Elastic
- Revisione Cloud Run
Per i link alle informazioni sulla gestione e sul monitoraggio dei controlli di uptime, consulta la sezione Passaggi successivi di questo documento.
Informazioni sui controlli di uptime
Per HTTP e HTTPS, vengono seguiti tutti i reindirizzamenti URL e la risposta finale ricevuta dal controllo di uptime viene utilizzata per valutare eventuali criteri di esito positivo. Per i controlli HTTPS, la data di scadenza del certificato SSL viene calcolata in base al certificato del server ricevuto nella risposta finale.
Affinché un controllo di uptime abbia esito positivo, è necessario che siano soddisfatte le seguenti condizioni:
- Lo stato HTTP deve corrispondere ai criteri specificati.
- I dati della risposta non hanno contenuti obbligatori oppure sono presenti i contenuti richiesti.
I controlli di uptime non caricano gli asset di pagina o non eseguono JavaScript e la configurazione predefinita di un controllo di uptime non include l'autenticazione.
Prima di iniziare
-
Per ottenere le autorizzazioni necessarie per creare controlli di uptime, chiedi all'amministratore di concederti i ruoli IAM seguenti sul tuo progetto:
-
Editor Monitoring (
roles/monitoring.editor
) - Utenti della console Google Cloud -
Editor configurazioni controlli di uptime per il monitoraggio (
roles/monitoring.uptimeCheckConfigEditor
) - Utenti API -
Editor AlertPolicy Monitoring (
roles/monitoring.alertPolicyEditor
) - Utenti API -
Editor NotificationChannel Monitoring (
roles/monitoring.notificationChannelEditor
) - Utenti API
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Editor Monitoring (
Verifica che la risorsa che vuoi controllare abbia un endpoint pubblico o si trovi dietro un firewall configurabile.
Per tutte le altre configurazioni, devi creare un controllo di uptime privato. Per ulteriori informazioni, consulta Creare controlli di uptime privati.
Se la risorsa è protetta da un firewall, configuralo in modo da consentire il traffico in entrata dagli indirizzi IP dei server per i controlli di uptime. Per ulteriori informazioni, consulta Elencare gli indirizzi IP dei server per i controlli di uptime.
Configura i canali di notifica che vuoi utilizzare per ricevere le notifiche. Ti consigliamo di creare più tipi di canali di notifica. Per maggiori informazioni, consulta Creare e gestire canali di notifica.
Identifica almeno tre controlli per il controllo di uptime. La regione dei controlli di uptime
USA
include le regioniUSA_OREGON
,USA_IOWA
eUSA_VIRGINIA
. Ogni regioneUSA_*
ha un controllo, mentreUSA
le include tutte e tre. Le altre regioni dei controlli di uptime,EUROPE
,SOUTH_AMERICA
eASIA_PACIFIC
, hanno ciascuna un controllo.Se selezioni Globale quando utilizzi la console Google Cloud o
REGION_UNSPECIFIED
quando utilizzi l'API, i controlli di uptime vengono eseguiti da tutte le regioni dei controlli di uptime.
crea un controllo di uptime
Questa sezione spiega come creare e configurare i controlli di uptime.
Per creare un controllo di uptime per un bilanciatore del carico esterno in cui è configurata almeno una porta TCP o HTTP/s, puoi seguire queste istruzioni. In alternativa, vai alla pagina Dettagli servizio del servizio e fai clic su Crea controllo di uptime. Quando inizi dalla pagina Dettagli servizio, i campi specifici del servizio vengono precompilati.
Console
Per creare un controllo di uptime utilizzando la console Google Cloud:
-
Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi Controlli di uptime:
Fai clic su Crea controllo di uptime.
Specifica la destinazione del controllo di uptime:
Seleziona il protocollo. Puoi selezionare HTTP, HTTPS o TCP.
Scegli uno dei seguenti tipi di risorse:
- URL: qualsiasi indirizzo o nome host IPv4. Percorso e porta devono essere inseriti separatamente.
- Servizio Kubernetes LoadBalancer: servizio Kubernetes di tipo LoadBalancer.
- Istanza: istanze di Compute Engine o AWS EC2.
- App Engine: applicazioni (moduli) di App Engine.
- Elastic Load Balancer: bilanciatore del carico AWS.
Inserisci i campi specifici del protocollo:
Per i controlli TCP, inserisci la porta.
Per i controlli HTTP e HTTPS, puoi inserire un percorso all'interno dell'host o della risorsa. Tutti i controlli di uptime che utilizzano questi protocolli inviano una richiesta a
http://target/path
. In questa espressione, per una risorsa URL,target
è un nome host o un indirizzo IP. Per una risorsa App Engine,target
è un nome host derivato dal nome del servizio. Per istanze e risorse di bilanciamento del carico,target
è un indirizzo IP derivato dal nome che hai fornito per la risorsa o il gruppo di risorse.Se lasci vuoto il campo
path
o se imposti il valore su/
, la richiesta viene inviata ahttp://target/
.Ad esempio, per eseguire un controllo di uptime per la risorsa URL
example.com/tester
, imposta il campo Nome host suexample.com
e il campo Percorso su/tester
.Supponiamo che tu abbia eseguito il deployment di un server in App Engine con un supervisore che supporta
/
e/hello
. Per eseguire il controllo di uptime al gestore "/", lascia vuoto il campo Percorso. Per eseguire il controllo di uptime al gestore/hello
, imposta il valore del campo Percorso su/hello
.
Compila i campi specifici della risorsa:
Per le risorse URL, inserisci il nome host nel campo Nome host. Ad esempio, inserisci
example.com
.Per le risorse App Engine, inserisci il nome del servizio nel campo Servizio.
Per le risorse Bilanciatore del carico Elastic e Istanza, completa il campo Si applica a come segue:
- Per eseguire un controllo di uptime su una singola istanza o bilanciatore del carico, seleziona Singolo, quindi utilizza il menu per selezionare l'istanza o il bilanciatore del carico specifico.
- Per inviare un controllo di uptime a un gruppo di monitoraggio, seleziona Gruppo, quindi utilizza il menu per selezionare il nome del gruppo.
(Facoltativo) Per impostare la frequenza di esecuzione dei controlli di uptime, utilizza il campo Frequenza di controllo.
(Facoltativo) Per selezionare le regioni dei controlli o per configurare i certificati SSL, l'autenticazione, le intestazioni e le porte per i controlli HTTP e HTTPS, fai clic su Altre opzioni di destinazione:
- Regioni: seleziona le regioni in cui i controlli di uptime ricevono le richieste. Un controllo di uptime deve avere almeno tre controlli. Esiste un controllo in tutte le regioni tranne negli Stati Uniti, che ne ha tre. L'impostazione predefinita, Globale, include tutte le regioni.
- Ping ICMP: configura il controllo di uptime per l'invio di un massimo di tre ping. Per saperne di più, consulta l'articolo Utilizzare i ping ICMP.
- Request Method (Metodo di richiesta): per i controlli HTTP, seleziona il metodo di richiesta.
- Corpo: per i controlli HTTP POST, inserisci il corpo con la codifica URL; devi eseguire la codifica autonomamente. Per tutti gli altri controlli, lascia questo campo vuoto.
- Host header (Intestazione host): compila questo campo per verificare gli host virtuali. Questo campo non è disponibile per i controlli TCP.
- Porta: specifica un numero di porta.
- Intestazioni personalizzate: fornisci intestazioni personalizzate e, se vuoi, criptale. La crittografia nasconde i valori dell'intestazione nel modulo. Utilizza la crittografia per le intestazioni relative all'autenticazione che non vuoi che siano visibili ad altri.
Autenticazione: questi valori vengono inviati come intestazione di autorizzazione. Questo campo non è disponibile per i controlli TCP.
Scegli una delle seguenti opzioni:
- Autenticazione di base: fornisci un singolo nome utente e una password. Le password sono sempre nascoste nel modulo.
- Autenticazione agente di servizio: se abilitato, viene generato un token di identità per l'agente di servizio di monitoraggio. Questa opzione è disponibile solo per i controlli HTTPS.
Convalida del certificato SSL: se hai selezionato HTTPS per una risorsa URL, per impostazione predefinita il servizio tenta di connettersi tramite HTTPS e convalidare il certificato SSL. I controlli di uptime non riusciti quando un certificato dell'URL non è valido. Di seguito sono riportati alcuni motivi per un certificato non valido:
- Un certificato scaduto
- Un certificato autofirmato
- Un certificato con un nome di dominio non corrispondente
- Un certificato che utilizza l'estensione per l'accesso alle informazioni sull'autorità (AIA).
Per forzare un controllo di uptime HTTPS per la convalida del certificato SSL, seleziona Convalida certificati SSL.
Per disabilitare la convalida dei certificati SSL, deseleziona Convalida certificati SSL.
Se disponi di certificati SSL con estensioni AIA, devi disabilitare la convalida dei certificati SSL. Questi tipi di certificati non sono supportati e non superano la sequenza di convalida. In genere, il messaggio di errore è "È stato risposto con errore di handshake SSL in 10.000 ms".
Puoi utilizzare la metrica
monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires
per creare un criterio di avviso che ti avviserà prima della scadenza del certificato. Per maggiori informazioni, consulta Esempi di criteri: norme sui controlli di uptime.Seleziona la casella di controllo Convalida certificati SSL.
Fai clic su Continua e configura i requisiti di risposta. Tutte le impostazioni di questa sezione hanno valori predefiniti:
Per modificare il periodo di timeout per il controllo di uptime, utilizza il campo Timeout risposta. Un controllo di uptime non va a buon fine quando non viene ricevuta alcuna risposta da più di una località entro questo periodo.
Per configurare il controllo di uptime per eseguire la corrispondenza dei contenuti, assicurati che l'etichetta di attivazione/disattivazione sia La corrispondenza dei contenuti è abilitata:
- Seleziona Tipo di corrispondenza dei contenuti della risposta dal menu delle opzioni.
Questo campo determina il modo in cui i contenuti della risposta vengono confrontati con i dati restituiti. Ad esempio, supponiamo che il contenuto della risposta sia
abcd
e che il tipo di corrispondenza del contenuto sia Contiene. Il controllo di uptime ha esito positivo solo quando i dati di risposta contengonoabcd
. Per ulteriori informazioni, consulta Convalida dei dati delle risposte. - Inserisci i contenuti della risposta. Il contenuto della risposta deve essere una stringa
non più lunga di 1024 byte. Nell'API, questo campo è l'oggetto
ContentMatcher
.
- Seleziona Tipo di corrispondenza dei contenuti della risposta dal menu delle opzioni.
Questo campo determina il modo in cui i contenuti della risposta vengono confrontati con i dati restituiti. Ad esempio, supponiamo che il contenuto della risposta sia
Per impedire la creazione di voci di log a causa dei controlli di uptime, deseleziona Errori di controllo dei log.
Per i controlli di uptime HTTP, configura i codici di risposta accettabili. Per impostazione predefinita, i controlli di uptime HTTP contrassegnano qualsiasi risposta
2xx
come risposta riuscita.
Fai clic su Continua e configura le notifiche.
Per ricevere una notifica quando un controllo di uptime non va a buon fine, crea un criterio di avviso e configura i canali di notifica per tale criterio:
- (Facoltativo) Aggiorna il nome del criterio di avviso.
- (Facoltativo) Nel campo Durata, seleziona per quanto tempo i controlli di uptime devono avere esito negativo prima che vengano inviate le notifiche. Per impostazione predefinita, le notifiche vengono inviate quando almeno due regioni segnalano errori dei controlli di uptime per una durata di almeno un minuto.
Nella casella Canali di notifica, fai clic su Menu arrow_drop_down, seleziona i canali da aggiungere e fai clic su OK.
Nel menu, i canali di notifica sono raggruppati in ordine alfabetico per ciascun tipo di canale.
Se non vuoi creare un criterio di avviso, assicurati che il testo del pulsante di attivazione/disattivazione sia Non creare un avviso.
Fai clic su Continua e completa il controllo di uptime:
Inserisci un titolo descrittivo per il controllo di uptime.
(Facoltativo) Per aggiungere etichette definite dall'utente al controllo di uptime:
- Fai clic su expand_more Mostra etichette utente.
- Nel campo Chiave, inserisci un nome per l'etichetta.
I nomi delle etichette devono iniziare con una lettera minuscola e possono contenere lettere minuscole, numeri, trattini bassi e trattini. Ad esempio,
inserisci
severity
. - Nel campo Valore, inserisci un valore per l'etichetta. I valori delle etichette possono contenere lettere minuscole, numeri, trattini bassi e trattini. Ad esempio,
inserisci
critical
. - Per ogni etichetta aggiuntiva, fai clic su Aggiungi etichetta utente e inserisci la chiave e il valore dell'etichetta.
Per verificare la configurazione dei controlli di uptime, fai clic su Test. Se il risultato non è quello previsto, consulta la sezione Verificare gli errori, correggere la configurazione e ripetere il passaggio di verifica.
Fai clic su Crea. Se selezioni Crea e un campo obbligatorio non viene compilato, viene visualizzato un messaggio di errore.
gcloud
Per creare il controllo di uptime, esegui il comando gcloud monitoring uptime create
:
gcloud monitoring uptime create DISPLAY_NAME REQUIRED_FLAGS OPTIONAL_FLAGS
Prima di eseguire il comando precedente:
Sostituisci DISPLAY_NAME con il nome del controllo di uptime.
Configura REQUIRED_FLAGS per specificare la risorsa sottoposta a verifica dal controllo di uptime. Ad esempio, il seguente comando crea un controllo di uptime che verifica l'URL EXAMPLE.com per un determinato progetto:
gcloud monitoring uptime create DISPLAY_NAME \ --resource-labels=host=EXAMPLE.com,project_id=PROJECT_ID \ --resource-type=uptime_url
Il comando precedente specifica i valori per ogni etichetta richiesta dal tipo di risorsa
uptime_url
.Configura i flag OPTIONAL_FLAGS per eseguire l'override dei valori predefiniti. Ad esempio, devi impostare il flag
--protocol
quando il protocollo non èhttp
.
API
Per creare un controllo di uptime, chiama il metodo projects.uptimeCheckConfigs.create
. Imposta i parametri del metodo come segue:
parent: obbligatorio. Deve essere il nome del progetto in cui creare il controllo di uptime. Sostituisci
PROJECT_ID
con l'ID del tuo progetto Google Cloud. Il formato è:projects/PROJECT_ID
Il corpo della richiesta deve contenere un oggetto
UptimeCheckConfig
per il nuovo controllo di uptime. Questa pagina fornisce informazioni su alcuni campi. Per la documentazione completa su questo oggetto e i relativi campi, vediUptimeCheckConfig
:Lascia vuoto il campo
name
dell'oggetto di configurazione. Il sistema imposta questo campo quando crea l'oggetto di configurazione della risposta.Se stai configurando un controllo HTTP o HTTPS, devi compilare il campo
HttpCheck
dell'oggettoUptimeCheckConfig
. In questo oggetto, imposta il camporequestMethod
comeGET
oPOST
. Se questo campo viene omesso o impostato suMETHOD_UNSPECIFIED
, viene emessa una richiestaGET
.Se stai configurando una richiesta
POST
, compila i campicontentType
,customContentType
ebody
facoltativi.
Il metodo create
restituisce l'oggetto UptimeCheckConfig
per la nuova configurazione.
Se la configurazione di uptime creata non funziona come previsto, consulta la sezione Verificare gli errori in questa pagina.
C#
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per eseguire l'autenticazione a Monitoring, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base. Per maggiori informazioni, consulta la documentazione di riferimento del provider Terraform.
Per creare un controllo di uptime e un criterio di avviso per monitorarlo:
Modifica il file di configurazione Terraform e aggiungi una risorsa
google_monitoring_uptime_check_config
, quindi applica il file di configurazione.L'esempio seguente illustra una configurazione che controlla un URL pubblico:
resource "google_monitoring_uptime_check_config" "example" { display_name = "example" timeout = "60s" http_check { port = "80" request_method = "GET" } monitored_resource { type = "uptime_url" labels = { project_id = "PROJECT_ID" host="EXAMPLE.com" } } checker_type = "STATIC_IP_CHECKERS" }
(Facoltativo) Crea un canale di notifica e un criterio di avviso:
I passaggi seguenti utilizzano la console Google Cloud per creare il canale di notifica e il criterio di avviso. In questo modo, il criterio di avviso monitora solo i dati generati dal controllo di uptime.
Per creare un canale di notifica:
-
Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi notifications Avvisi:
- Seleziona Gestisci canali di notifica.
- Vai al tipo di canale che vuoi aggiungere, fai clic su Aggiungi e completa la finestra di dialogo.
-
Per creare un criterio di avviso, segui questi passaggi:
-
Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi Controlli di uptime:
- Individua il controllo di uptime, seleziona more_vert Altro, quindi seleziona Aggiungi criterio di avviso.
- Nella finestra di dialogo, vai alla sezione Notifiche e nome, espandi Canali di notifica ed effettua le selezioni.
- Assegna un nome al criterio di avviso e fai clic su Crea criterio.
-
Puoi creare un criterio di avviso aggiungendo una risorsa
google_monitoring_alert_policy
al file di configurazione e applicando la nuova configurazione.
Può verificarsi un ritardo fino a un massimo di 5 minuti prima che i risultati dei controlli di uptime inizino a confluire in Monitoring. Durante questo periodo, la dashboard dei controlli di uptime segnala lo stato "Nessun dato disponibile".
Utilizza i ping ICMP
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 impostazione predefinita, i controlli di uptime non inviano ping. Ogni ping aggiunge una certa latenza al controllo di uptime. I controlli di uptime privati non possono inviare ping.
Quando un controllo di uptime pubblico non va a buon fine, i risultati dei ping vengono scritti nei log di Cloud Logging. Se il ping non va a buon fine, i seguenti campi vengono aggiunti al campo httpRequest
della voce di log:
rtt_usec
: tempo di round trip per ogni richiesta di ping non riuscita.unreachable_count
: numero di richieste di ping che hanno restituito il codice di statoICMP_DEST_UNREACH
.no_answer_count
: numero di richieste di ping che sono scadute e non hanno restituito alcuna risposta.
I risultati dei ping per i controlli di uptime riusciti non vengono registrati.
Configura i ping
Ogni configurazione dei controlli di uptime include
un oggetto HttpCheck
o un oggetto TcpCheck
.
Entrambi gli oggetti includono un campo pingConfig
.
Utilizza questo campo per specificare il numero massimo di ping ICMP da includere in ogni controllo,
fino a 3. Per impostazione predefinita, non viene inviato alcun ping.
Per configurare i ping, esegui una delle seguenti operazioni:
Quando utilizzi la console Google Cloud, espandi Altre opzioni target e inserisci un valore nel campo Ping ICMP.
Quando utilizzi l'API Cloud Monitoring, utilizza l'oggetto
PingConfig
, che ha la seguente struttura:{ "pingsCount": integer }
Per ulteriori informazioni sull'utilizzo dell'API Monitoring per le configurazioni dei controlli di uptime, consulta Creare un controllo di uptime: API o Modificare un controllo di uptime: API.
Verificare il controllo di uptime
Quando crei un controllo di uptime nella console Google Cloud, puoi testare la configurazione prima di salvare.
Controlli superati
Un controllo di uptime ha esito positivo se si verificano le seguenti condizioni:
- Lo stato HTTP corrisponde ai criteri selezionati.
- La risposta non ha contenuti obbligatori oppure una ricerca nella risposta per i contenuti richiesti ha esito positivo.
Controlli non superati
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.
Se il controllo di uptime è configurato per l'invio dei ping, i risultati dei ping per i controlli di uptime non riusciti vengono scritti in Cloud Logging. Per ulteriori informazioni, consulta la sezione Utilizzare i ping ICMP.
Passaggi successivi
- Gestire i controlli di uptime
- Creare criteri di avviso per i controlli di uptime
- Elenca gli indirizzi IP del server per i controlli di uptime
- Creare un grafico delle metriche dei controlli di uptime