Questo documento descrive come configurare un controllo di uptime privato. I controlli di uptime privati consentono le richieste HTTP o TCP in una rete Virtual Private Cloud (VPC) del cliente, applicando al contempo le restrizioni di Identity and Access Management (IAM) e i perimetri dei Controlli di servizio VPC. I controlli di uptime privati possono inviare richieste tramite la rete privata a risorse come una macchina virtuale (VM) o un bilanciatore del carico interno L4 (ILB).
Gli indirizzi IP interni per le risorse sulla rete privata vengono registrati dai servizi Service Directory con l'accesso alla rete privata abilitato. Per utilizzare i controlli di uptime privati, devi configurare l'accesso alla rete privata utilizzando il prodotto Service Directory.
Il progetto Google Cloud che memorizza il controllo di uptime privato e il progetto Google Cloud che memorizza il servizio Service Directory possono essere progetti diversi. Cloud Monitoring ti consente di monitorare le risorse di più progetti Google Cloud da un progetto utilizzando un ambito delle metriche. Il progetto in cui è definito il controllo di uptime è il progetto di definizione dell'ambito di un ambito delle metriche. L'ambito delle metriche è un elenco di tutti i progetti monitorati dal progetto di definizione dell'ambito. Il servizio Service Directory potrebbe essere definito nel progetto di definizione dell'ambito o in un progetto nell'ambito delle metriche. Per ulteriori informazioni sugli ambiti delle metriche, consulta la panoramica degli ambiti delle metriche.
La rete privata e le relative risorse, come VM o bilanciatori del carico, possono anche trovarsi in un altro progetto Google Cloud. Questo progetto non deve rientrare nell'ambito delle metriche del progetto di definizione dell'ambito del controllo dell'uptime. Il servizio Service Directory raccoglie le metriche relative al tempo di attività, pertanto deve rientrare nell'ambito delle metriche, ma non le risorse che incapsula.
Questo documento descrive come configurare una rete privata e le risorse di Service Directory utilizzando la console Google Cloud o l'API. Gli esempi di API presuppongono che la rete privata e il servizio Service Directory si trovino nel progetto di ambito del controllo di uptime. Tuttavia, l'articolo Creare un controllo di uptime privato descrive anche come utilizzare l'API per creare un controllo di uptime che utilizza un servizio Service Directory nell'ambito delle metriche.
Per informazioni su come configurare i controlli di uptime che utilizzano indirizzi IP pubblici, consulta Creare controlli di uptime pubblici. Per informazioni sulla gestione e sul monitoraggio dei controlli di uptime, consulta la sezione Passaggi successivi di questo documento.
Prima di iniziare
Abilita le seguenti API:
- API Cloud Monitoring:
monitoring.googleapis.com
- API Service Directory:
servicedirectory.googleapis.com
- API Service Networking:
servicenetworking.googleapis.com
- API Compute Engine:
compute.googleapis.com
Puoi abilitare le API utilizzando gcloud CLI o la console Google Cloud. Le seguenti schede descrivono come installare gcloud CLI e abilitare l'API Cloud Monitoring:
Console Google Cloud
Nella console Google Cloud, seleziona il progetto Google Cloud per cui vuoi attivare l'API, quindi vai alla pagina API e servizi:
Fai clic sul pulsante Abilita API e servizi.
Cerca "Monitoraggio".
Nei risultati di ricerca, fai clic su "API Stackdriver Monitoring".
Se viene visualizzato il messaggio "API abilitata", significa che l'API è già abilitata. In caso contrario, fai clic su Attiva.
Interfaccia a riga di comando gcloud
Se non hai ancora installato Google Cloud CLI sulla tua workstation, consulta Installazione dell'interfaccia a riga di comando gcloud.
Per verificare se l'API Monitoring è abilitata, esegui il seguente comando sulla tua workstation, dopo aver sostituito PROJECT_ID con l'ID del progetto per cui vuoi attivare l'API:
gcloud services list --project=PROJECT_ID
Se nell'output viene visualizzato
monitoring.googleapis.com
, l'API è attivata.Se l'API non è abilitata, esegui il seguente comando per abilitarla:
gcloud services enable monitoring --project=PROJECT_ID
Per ulteriori informazioni, consulta
gcloud services
.
Puoi utilizzare gli stessi passaggi per abilitare le altre API:
- Per utilizzare la console Google Cloud, cerca il nome visualizzato, ad esempio "API Service Directory".
- Per utilizzare gcloud CLI, specifica il primo elemento del nome
googleapis.com
, ad esempioservicedirectory
.
- API Cloud Monitoring:
Configura i canali di notifica che vuoi utilizzare per ricevere le notifiche. Ti consigliamo di creare più tipi di canali di notifica. Per saperne di più, consulta la pagina Creare e gestire i canali di notifica.
Configura una rete privata e una VM o un bilanciatore di carico per avere accesso a questa rete privata. Per ulteriori informazioni, consulta Accesso privato ai servizi.
I controlli privati che hanno come target gli ILB sono limitati alle regioni con i controlli di uptime. La regione di controllo dell'uptime
USA
include le regioniUSA_OREGON
,USA_IOWA
eUSA_VIRGINIA
. Ciascuna delle regioniUSA_*
ha un controllo eUSA
include tutte e tre. Le altre regioni con controllo dell'uptime,EUROPE
,SOUTH_AMERICA
eASIA_PACIFIC
, hanno ciascuna un controllo. Per rimuovere questa limitazione, devi configurare l'accesso globale al bilanciatore del carico. Per ulteriori informazioni su come configurare l'accesso globale, consulta la scheda ILB nella sezione Configura le risorse della directory dei servizi di questo documento.Se prevedi di controllare un bilanciatore di carico interno che non consente l'accesso globale, seleziona una delle seguenti regioni per il bilanciatore di carico interno:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Determina quale interfaccia utilizzare:
Console Google Cloud: consente di creare un controllo di uptime quando una VM sta soddisfacendo le richieste. Questa interfaccia ti guida nella configurazione delle risorse di Service Directory, nell'autorizzazione dell'account di servizio e nella configurazione delle regole del firewall di rete.
Interfacce a riga di comando: puoi utilizzare Google Cloud CLI e l'API Cloud Monitoring per creare controlli di uptime privati quando i bilanciatori di carico interni e le VM stanno gestendo le richieste.
Se prevedi di utilizzare la riga di comando per configurare i controlli di uptime privati, completa i passaggi di prerequisito.
Creare un controllo di uptime privato
Questa sezione spiega come creare e configurare i controlli di uptime privati dei servizi Service Directory:
Per utilizzare la console Google Cloud, seleziona la scheda Console Google Cloud.
Per utilizzare l'API Cloud Monitoring e configurare il servizio Service Directory nello stesso progetto Google Cloud del controllo dell'uptime, seleziona la scheda API: progetto ambito.
Per utilizzare l'API Cloud Monitoring e configurare il servizio Service Directory in un progetto monitorato dall'ambito delle metriche del progetto del controllo dell'uptime, seleziona la scheda API: progetto monitorato.
Console Google Cloud
Per creare un controllo di uptime utilizzando la console Google Cloud:
-
Nella console Google Cloud, vai alla pagina Controlli di uptime:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
Fai clic su Crea controllo di uptime.
Specifica un controllo di uptime privato:
Seleziona il protocollo, che può essere HTTP, HTTPS o TCP.
Scegli il tipo di risorsa IP interno.
Se non hai configurato un servizio Service Directory per il tuo progetto o se vuoi crearne uno, fai clic su Visualizza e completa il riquadro Prerequisiti per i controlli di uptime privati:
Se richiesto, abilita l'API Compute Engine o l'API Directory Service. L'attivazione delle API potrebbe richiedere un minuto.
Espandi arrow_drop_down Account di servizio, se visualizzato, quindi fai clic su Crea account di servizio.
Se non esiste un account di servizio di monitoraggio, viene creato uno. Poi, il monitoraggio concede all'account di servizio due ruoli di Service Directory.
Espandi il menu arrow_drop_down Directory dei servizi e poi segui questi passaggi:
- Espandi arrow_drop_down Regione e poi seleziona la regione della VM che gestisce le richieste.
- Espandi arrow_drop_down Spazio dei nomi, quindi seleziona uno spazio dei nomi Service Directory esistente o fai clic su Crea spazio dei nomi e crea uno spazio dei nomi.
- Fai clic su Nome servizio e inserisci un nome. I servizi sono i target dei controlli di uptime privati.
- Fai clic su Nome endpoint e inserisci un nome per l'endpoint. Un endpoint è una coppia di valori di indirizzo IP e porta che un servizio può utilizzare per gestire le richieste. Quando il servizio contiene più endpoint, ne viene scelto uno a caso.
- Espandi arrow_drop_down Rete e poi seleziona la tua rete privata.
- Espandi arrow_drop_down Istanze e seleziona la VM sulla rete privata che sta servendo le richieste. Dopo aver selezionato l'istanza, viene visualizzato il relativo indirizzo IP interno.
- Fai clic su Fine.
Espandi arrow_drop_down Regole firewall:
Espandi arrow_drop_down Rete e seleziona la rete a cui è collegata la regola di rete.
Fai clic su Crea regole firewall.
La regola firewall consente il traffico TCP in entrata dalle route 35.199.192.0/19. Una route da 35.199.192.0/19 supporta la connettività ai target di inoltro che utilizzano il routing privato. Per ulteriori informazioni, consulta Route VPC.
Nel riquadro Controllo di uptime privato, per specificare il servizio Service Directory da utilizzare, svolgi una delle seguenti operazioni:
Seleziona Utilizza il nome completo del servizio e inserisci il nome completo del servizio:
projects/SERVICE_DIRECTORY_PROJECT_ID/locations/REGION/namespaces/PRIVATE_NAMESPACE/services/PRIVATE_SERVICE
Seleziona Regione, Spazio dei nomi e Servizio utilizzando i menu. Se hai creato un servizio, questi campi vengono selezionati per te.
Nel riquadro Controllo di uptime privato, completa la descrizione del target del controllo di uptime:
(Facoltativo) Inserisci un componente del percorso per la richiesta.
I controlli di uptime privati che utilizzano il protocollo HTTP o HTTPS inviano una richiesta a
http://target/path
. In questa expressione,target
è l'indirizzo IP interno configurato nell'endpoint di Service Directory.Se lasci vuoto il campo Percorso o se imposti il valore su
/
, la richiesta viene inviata ahttp://target/
.(Facoltativo) Per impostare la frequenza di esecuzione del controllo dell'uptime, utilizza il campo Frequenza controllo.
(Facoltativo) Per selezionare le regioni dei controlli o per configurare l'autenticazione, le intestazioni per i controlli HTTP e HTTPS e altri valori, fai clic su Altre opzioni di destinazione:
- Regioni: seleziona le regioni in cui devono essere ricevute le richieste per i controlli di uptime. Un controllo di uptime deve avere almeno tre controlli. È presente un ispettore in tutte le regioni, tranne negli Stati Uniti, che ne ha tre. L'impostazione predefinita, Globale, include tutte le regioni.
- Metodo richiesta: seleziona
GET
oPOST
. - Testo: per i controlli HTTP
POST
, inserisci il corpo con codifica URL. Devi eseguire la codifica autonomamente. Per tutti gli altri controlli, lascia vuoto questo campo. - Intestazione host: non impostare questo campo quando configuri i controlli di uptime privati.
- Porta: qualsiasi valore impostato qui sostituisce la porta nella configurazione dell'endpoint di Service Directory. Non impostare un valore qui se vuoi che venga utilizzata la configurazione dell'endpoint.
- Intestazioni personalizzate: fornisci intestazioni personalizzate e, facoltativamente, criptale. La crittografia nasconde i valori nell'intestazione del modulo. Utilizza la crittografia per le intestazioni relative all'autenticazione che non vuoi rendere visibili ad altri.
- Autenticazione: fornisci un singolo nome utente e una singola password. Questi valori vengono inviati come intestazione di autorizzazione. Se imposti i valori qui, non impostare un'intestazione di autorizzazione separata; se imposti un'intestazione di autorizzazione, non impostare i valori qui. Le password sono sempre nascoste nel modulo.
Fai clic su Continua e configura i requisiti di risposta. Tutte le impostazioni in questa sezione hanno valori predefiniti:
Per impostare un periodo di timeout per il controllo dell'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 in modo che esegua la corrispondenza dei contenuti, assicurati che l'etichetta del pulsante di attivazione/disattivazione sia La corrispondenza dei contenuti è abilitata:
- Seleziona il 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 i contenuti della risposta siano
abcd
e che il tipo di corrispondenza dei contenuti sia Contiene. Il controllo di uptime è positivo solo se i dati di risposta contengonoabcd
. Per ulteriori informazioni, consulta la sezione Convalidare i dati di risposta. - 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 il 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 i contenuti della risposta siano
Per impedire la creazione di voci di log a causa dei controlli di uptime, elimina Logging degli errori dei controlli.
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 positiva.
Fai clic su Continua e configura le notifiche e i criteri di avviso.
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 quel 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 di controllo dell'uptime per una durata di almeno un minuto.
Nella casella Canali di notifica, espandi arrow_drop_down Menu, seleziona i canali da aggiungere e poi 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 dell'uptime:
Inserisci un titolo descrittivo per il controllo di uptime.
(Facoltativo) Per aggiungere etichette definite dall'utente al controllo dell'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 dell'etichetta possono contenere lettere minuscole, numeri, trattini bassi e trattini. Ad esempio,
inserisci
critical
. - Per ogni etichetta aggiuntiva, fai clic su Aggiungi etichetta utente e poi inserisci la chiave e il valore dell'etichetta.
Per verificare la configurazione del controllo di uptime, fai clic su Test. Se il risultato non è quello previsto, consulta la sezione Risoluzione dei problemi, correggi la configurazione e ripeti il passaggio di verifica.
Fai clic su Crea.
API: progetto di definizione dell'ambito
Per creare la configurazione per un controllo di uptime privato, crea un oggetto UptimeCheckConfig
e passalo al metodo uptimeCheckConfigs.create
nell'API Cloud Monitoring.
L'oggetto UptimeCheckConfig
per un controllo di uptime privato è diverso dall'oggetto per un controllo di uptime pubblico nei seguenti modi:
La risorsa monitorata specificata nella configurazione del controllo dell'uptime deve essere di tipo
servicedirectory_service
. Questo tipo di risorsa ha le seguenti etichette:project_id
: l'ID progetto associato al servizio Service Directory.location
: la regione cloud associata al servizio.namespace_name
: lo spazio dei nomi Service Directory.service_name
: il nome del servizio Service Directory.
Non è necessario specificare un valore
port
nella configurazione del controllo dell'uptime. Il valore della porta dell'endpoint di Service Directory sostituisce qualsiasi valore impostato nella configurazione del controllo dell'uptime e il controllo non va a buon fine se non viene specificata alcuna porta nella configurazione di Service Directory.La configurazione del controllo di uptime deve specificare il campo
checker_type
con il valoreVPC_CHECKERS
. Questo valore è obbligatorio per i controlli di uptime privato. Per impostazione predefinita, i controlli di uptime sono pubblici, pertanto non è necessario specificare questo campo.
Il seguente codice JSON illustra un oggetto UptimeCheckConfig
per un controllo di uptime privato che utilizza le risorse di Service Directory configurate per un'istanza VM su una rete privata:
{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "SERVICE_DIRECTORY_PROJECT_ID", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Per creare un controllo di uptime privato quando il servizio Service Directory si trova nello stesso progetto Google Cloud del controllo di uptime, segui questi passaggi:
Imposta il progetto Google Cloud predefinito per l'interfaccia a riga di comando gcloud:
gcloud config set project PROJECT_ID
Crea una variabile di ambiente per archiviare il tuo ID progetto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea una variabile di ambiente contenente un token di accesso:
export TOKEN=`gcloud auth print-access-token`
Utilizza lo strumento
curl
per invocare il metodouptimeCheckConfigs.create
e pubblicare un oggetto di configurazione:curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ --request POST --data '{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "'"$PROJECT_ID"'", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Se la creazione del controllo di uptime non riesce, verifica che l'account di servizio disponga dei ruoli necessari. Per ulteriori informazioni, consulta Creazione del controllo di uptime non riuscita.
API: progetto monitorato
Per creare la configurazione per un controllo di uptime privato, devi creare un oggetto UptimeCheckConfig
e passarlo al metodo uptimeCheckConfigs.create
nell'API Cloud Monitoring.
L'oggetto UptimeCheckConfig
per un controllo di uptime privato è diverso dall'oggetto per un controllo di uptime pubblico nei seguenti modi:
La risorsa monitorata specificata nella configurazione del controllo dell'uptime deve essere di tipo
servicedirectory_service
. Questo tipo di risorsa ha le seguenti etichette:project_id
: l'ID progetto associato al servizio Service Directory.location
: la regione cloud associata al servizio.namespace_name
: lo spazio dei nomi Service Directory.service_name
: il nome del servizio Service Directory.
Non è necessario specificare un valore
port
nella configurazione del controllo dell'uptime. Il valore della porta dell'endpoint di Service Directory sostituisce qualsiasi valore impostato nella configurazione del controllo dell'uptime e il controllo non va a buon fine se non viene specificata alcuna porta nella configurazione di Service Directory.La configurazione del controllo di uptime deve specificare il campo
checker_type
con il valoreVPC_CHECKERS
. Questo valore è obbligatorio per i controlli di uptime privato. Per impostazione predefinita, i controlli di uptime sono pubblici, pertanto non è necessario specificare questo campo.
Il seguente codice JSON illustra un oggetto UptimeCheckConfig
per un controllo di uptime privato che utilizza le risorse di Service Directory configurate per un'istanza VM su una rete privata:
{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "SERVICE_DIRECTORY_PROJECT_ID", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Per creare un controllo di uptime privato quando il servizio Service Directory si trova in un progetto Google Cloud monitorato dall'ambito delle metriche del progetto Google Cloud del controllo di uptime, svolgi i seguenti passaggi:
Configura l'interfaccia alla gcloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui deve essere creato il controllo dell'uptime:
gcloud config set project PROJECT_ID
Crea una variabile di ambiente per archiviare il tuo ID progetto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea una variabile di ambiente per archiviare l'ID progetto del progetto Google Cloud in cui è definito il servizio Service Directory:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Questo progetto deve rientrare nell'ambito delle metriche del progetto del controllo dell'uptime.
Crea una variabile di ambiente contenente un token di accesso:
export TOKEN=`gcloud auth print-access-token`
Utilizza lo strumento
curl
per invocare il metodouptimeCheckConfigs.create
e pubblicare un oggetto di configurazione:curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ --request POST --data '{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "'"$MONITORED_PROJECT_ID"'", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Se la creazione del controllo di uptime non riesce, verifica che l'account di servizio disponga dei ruoli necessari. Per ulteriori informazioni, consulta Creazione del controllo di uptime non riuscita.
Potrebbe essere presente un ritardo fino a 5 minuti prima che i risultati del controllo di uptime inizino a essere inviati a Monitoring. Durante questo periodo, la dashboard del controllo dell'uptime riporta lo stato "Nessun dato disponibile".
Passaggi preliminari
Se prevedi di utilizzare l'interfaccia della console Google Cloud, vai a Creare un controllo dell'uptime privato. La console Google Cloud ti guida attraverso tutti i passaggi preliminari.
Se prevedi di utilizzare la riga di comando per configurare i controlli di uptime privati, devi completare i seguenti passaggi prima di poter creare il controllo di uptime:
- Configurare le risorse di Service Directory
- Autorizza l'account di servizio
- Configurare le regole del firewall
Configura le risorse di Service Directory
I controlli di uptime privati determinano la disponibilità di una risorsa utilizzando un indirizzo IP interno registrato da un servizio Service Directory. Puoi configurare un Service Directory per le seguenti risorse:
- VM su una rete privata
- Bilanciatori del carico interni L4 (ILB)
Per utilizzare i controlli di uptime privati, devi configurare le seguenti risorse Service Directory:
- Endpoint: un endpoint è una coppia di valori di indirizzo IP e porta che un servizio può utilizzare per gestire le richieste. Quando il servizio contiene più endpoint, ne viene scelto uno a caso.
- Servizio: un servizio è una raccolta di endpoint che fornisce un insieme di comportamenti. I servizi sono i target dei controlli di uptime privati.
- Spazio dei nomi: uno spazio dei nomi contiene un insieme di nomi di servizi e i relativi endpoint associati. Gli spazi dei nomi ti consentono di raggruppare i servizi per una gestione coerente.
Puoi configurare queste risorse con gcloud CLI o con la console Google Cloud. Quando utilizzi la console, i passaggi di configurazione sono inclusi nella finestra di dialogo Crea controllo di uptime.
Console Google Cloud
Quando utilizzi la console Google Cloud, dopo aver selezionato IP interno come tipo di risorsa per un controllo dell'uptime, ti viene chiesto di creare un Service Directory e un servizio.
Gcloud CLI - VM
Per informazioni sui comandi utilizzati in questo documento per servizi, namespaces ed endpoint, consulta il gruppo di comandi gcloud service-directory
.
Per creare risorse di Service Directory per una VM, procedi nel seguente modo:
Configura Google Cloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui devono essere create le risorse di Service Directory:
gcloud config set project PROJECT_ID
Crea variabili di ambiente per archiviare l'ID e il numero del progetto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Crea uno spazio dei nomi Service Directory:
gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
Crea un servizio Service Directory nello spazio dei nomi:
gcloud service-directory services create PRIVATE_SERVICE \ --namespace PRIVATE_NAMESPACE --location=REGION
Crea una variabile di ambiente per contenere l'indirizzo IP della VM sulla rete privata:
export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \ PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
Crea un endpoint di Service Directory contenente l'indirizzo IP interno e una porta:
gcloud service-directory endpoints create PRIVATE_ENDPOINT \ --location=REGION --namespace=PRIVATE_NAMESPACE \ --service=PRIVATE_SERVICE \ --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \ --address=$INTERNAL_IP --port=80
Interfaccia alla gcloud CLI - L4 ILB
Per informazioni sui comandi utilizzati in questo documento per servizi, namespaces ed endpoint, consulta il gruppo di comandi gcloud service-directory
.
Puoi utilizzare i controlli di uptime privati per monitorare la disponibilità di un bilanciatore del carico interno L4 (ILB) creando risorse Service Directory per l'ILB L4.
Quando crei nuovi bilanciatori del carico interni L4, puoi utilizzare l'integrazione automatica fornita da Service Directory. Per saperne di più, consulta Configurare i bilanciatori del carico interni in Service Directory.
Se hai ILB L4 creati senza utilizzare l'integrazione automatica fornita da Service Directory, puoi configurare manualmente le risorse di Service Directory nel seguente modo:
Configura Google Cloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui devono essere create le risorse di Service Directory:
gcloud config set project PROJECT_ID
Crea variabili di ambiente per archiviare l'ID e il numero del progetto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Per consentire a tutti i controlli di uptime di trasferire dati al tuo bilanciatore di carico L4, attiva l'accesso globale al bilanciatore di carico:
gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \ --region=ILB_REGION --allow-global-access
Se il bilanciatore del carico interno L4 non consente l'accesso globale, le metriche relative al tempo di attività sono disponibili solo se ILB_REGION è uno dei seguenti valori:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Crea uno spazio dei nomi Service Directory:
gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\ --location=REGION
Crea un servizio Service Directory nello spazio dei nomi:
gcloud service-directory services create PRIVATE_SERVICE_FOR_ILB \ --namespace PRIVATE_NAMESPACE_FOR_ILB --location=REGION
Crea una variabile di ambiente per contenere l'indirizzo IP del bilanciatore del carico sulla rete privata:
export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\ --region=ILB_REGION --format='get(IPAddress)')
Crea un endpoint di Service Directory contenente l'indirizzo IP interno e una porta:
gcloud service-directory endpoints create PRIVATE_ENDPOINT_FOR_ILB \ --location=ILB_REGION --namespace=PRIVATE_NAMESPACE_FOR_ILB \ --service=PRIVATE_SERVICE_FOR_ILB \ --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \ --address=$INTERNAL_IP --port=80
Autorizza l'account di servizio
I controlli di uptime utilizzano un account di servizio di proprietà di Monitoraggio per gestire le interazioni con il servizio Service Directory. Il nome dell'account di servizio ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Se questo account di servizio non esiste, il monitoraggio lo crea quando crei il controllo dell'uptime privato. Non puoi creare questo account di servizio.
Quando crei un controllo di uptime privato, Monitoring tenta di concedere all'account di servizio due ruoli Service Directory. Tuttavia, quando utilizzi l'API, le impostazioni del progetto Google Cloud potrebbero impedire a Monitoring di concedere i ruoli all'account di servizio. In questa situazione, la creazione del controllo di uptime non va a buon fine.
Questa sezione descrive come concedere i ruoli richiesti a un account di servizio esistente:
Console Google Cloud
Quando utilizzi la console Google Cloud, dopo aver selezionato IP interno come tipo di risorsa per un controllo dell'uptime, ti viene chiesto di autorizzare l'account di servizio.
API: progetto di definizione dell'ambito
Per concedere i ruoli di Directory dei servizi a un account di servizio esistente:
Configura l'interfaccia alla gcloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui deve essere creato il controllo dell'uptime:
gcloud config set project PROJECT_ID
Crea variabili di ambiente per archiviare l'ID e il numero del progetto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Esegui questi comandi:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.viewer'
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.pscAuthorizedService'
I comandi precedenti concedono i seguenti ruoli all'account di servizio:
roles/servicedirectory.viewer
roles/servicedirectory.pscAuthorizedService
API: progetto monitorato
Per concedere i ruoli di Directory dei servizi a un account di servizio esistente:
Configura l'interfaccia alla gcloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui deve essere creato il controllo dell'uptime:
gcloud config set project PROJECT_ID
Crea variabili di ambiente per archiviare l'ID e il numero del progetto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Crea una variabile di ambiente contenente l'ID progetto in cui è definito il servizio Service Directory:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Questo progetto deve rientrare nell'ambito delle metriche del progetto del controllo dell'uptime.
Crea una variabile di ambiente contenente l'ID progetto in cui è definita la rete:
export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
Questo progetto non deve necessariamente rientrare nell'ambito delle metriche del progetto del controllo dell'uptime.
Esegui questi comandi:
gcloud projects add-iam-policy-binding $MONITORED_PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.viewer'
gcloud projects add-iam-policy-binding $NETWORK_PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.pscAuthorizedService'
I comandi precedenti concedono i seguenti ruoli all'account di servizio:
roles/servicedirectory.viewer
per il progetto monitorato in cui è configurato il servizio Service Directory$SERVICE_MONITORED_PROJECT_ID
.roles/servicedirectory.pscAuthorizedService
per il progetto in cui è configurata la rete privata,$NETWORK_PROJECT_ID
.
Configurazione delle regole del firewall
Devi creare una regola firewall che consenta il traffico TCP in entrata dalle route 35.199.192.0/19. Una route da 35.199.192.0/19 supporta la connettività ai destinatari di inoltro che utilizzano il routing privato. Per maggiori informazioni, consulta Route VPC.
Console Google Cloud
Quando utilizzi la console Google Cloud, dopo aver selezionato IP interno come tipo di risorsa per un controllo dell'uptime, ti viene chiesto di configurare le regole del firewall.
Interfaccia a riga di comando gcloud
Per creare una regola firewall che consenta il traffico TCP in entrata tramite il firewall per l'accesso alla rete privata, esegui il seguente comando:
Configura l'interfaccia alla gcloud CLI in modo che utilizzi per impostazione predefinita il progetto Google Cloud in cui deve essere creato il controllo dell'uptime:
gcloud config set project PROJECT_ID
Crea variabili di ambiente per archiviare l'ID e il numero del progetto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea la regola di rete:
gcloud compute firewall-rules create PRIVATE_CHECK_NETWORK_HOPE_RULE \ --network="PRIVATE_CHECK_NETWORK" \ --action=allow --direction=ingress --source-ranges="35.199.192.0/19" \ --rules=tcp --project="$PROJECT_ID"
Nel comando precedente, PRIVATE_CHECK_NETWORK è la rete a cui è collegata questa regola, mentre PRIVATE_CHECK_NETWORK_HOPE_RULE è il nome della regola firewall.
Per ulteriori informazioni su questo passaggio, consulta Configurare il progetto di rete.
Limitazioni
Quando utilizzi i controlli di uptime privati, la convalida dei certificati SSL è disattivata, indipendentemente dalla configurazione.
I controlli di uptime privati non supportano gli endpoint con reindirizzamenti.
Risoluzione dei problemi
Questa sezione descrive alcuni errori che potresti riscontrare durante l'utilizzo dei controlli dell'uptime privato e fornisce 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 utilizzati dai controlli di uptime per gestire le interazioni con il servizio Service Directory. In questa situazione, la creazione del controllo di uptime non va a buon fine.
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 emette i comandi per concedere all'account di servizio i ruoli di Service Directory.
Per informazioni su come concedere i ruoli a un account di servizio, consulta Autorizzare l'account di servizio.
API: progetto di definizione dell'ambito
La prima volta che crei un controllo dell'uptime privato per un servizio Service Directory e risorse private in un singolo progetto Google Cloud, la richiesta potrebbe riuscire o meno. Il risultato dipende dal fatto che tu abbia disattivato la concessione automatica dei ruoli per gli account di servizio nel tuo progetto:
La prima creazione del controllo dell'uptime va a buon fine se il progetto consente la concessione automatica dei ruoli per gli account di servizio. Viene creato un account di servizio per te a cui vengono concessi i ruoli necessari.
La prima creazione del controllo dell'uptime non va a buon fine se il progetto non consente la concessione automatica 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, svolgi i seguenti passaggi:
- Autorizza l'account di servizio.
- Attendi qualche minuto per la propagazione delle autorizzazioni.
- Prova a creare di nuovo il controllo di uptime privato.
API: progetto monitorato
La prima volta che crei un controllo dell'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 viene creato un account di servizio di monitoraggio.
La modalità di autorizzazione dell'account di servizio dipende dal numero di progetti Google Cloud in uso e dalle relative relazioni. Potrebbero 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 le risorse di rete come VM o bilanciatori del carico. Questo progetto non ha alcun ruolo nell'autorizzazione dell'account di servizio discussa qui.
Quando la creazione del primo controllo di uptime non va a buon fine:
- Autorizza l'account di servizio.
- Attendi qualche minuto per la propagazione delle autorizzazioni.
- Prova a creare di nuovo il controllo di uptime privato.
Accesso negato
I controlli di uptime non vanno a buon fine con risultati VPC_ACCESS_DENIED
. Questo risultato
significa che qualche aspetto della configurazione della rete o dell'autorizzazione dell'account servizio non è corretto.
Controlla l'autorizzazione dell'account di servizio per l'utilizzo di un progetto di ambito o di un progetto monitorato come descritto in Il controllo dell'uptime non va a buon fine.
Per ulteriori informazioni sull'accesso alle reti private, consulta Configurare il progetto di rete.
Risultati anomali dei controlli di uptime privati
Hai un servizio Service Directory con più VM e la configurazione del servizio contiene più endpoint. Quando chiudi una delle VM, il controllo di uptime indica ancora il successo.
Quando la configurazione del servizio contiene più endpoint, ne viene scelto uno in modo casuale. Se la VM associata all'endpoint scelto è in esecuzione, il controllo dell'uptime va a buon fine anche se una delle VM non è in funzione.
Intestazioni predefinite
I controlli di uptime restituiscono errori o risultati imprevisti. Questo potrebbe accadere se hai sostituito i valori predefiniti delle intestazioni.
Quando viene inviata una richiesta per un controllo dell'uptime privato a un endpoint di destinazione, la richiesta include le seguenti intestazioni e valori:
Intestazione | 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 |
Calcolata in base ai dati dei post sull'uptime |
Se provi a sostituire questi valori, potrebbero verificarsi i seguenti casi:
- Il controllo di uptime segnala errori
- I valori di override vengono eliminati e sostituiti con i valori nella tabella
Nessun dato visibile
Non vengono visualizzati dati nella dashboard del controllo dell'uptime quando il controllo dell'uptime si trova in un progetto Google Cloud diverso da quello del servizio Service Directory.
Assicurati che il progetto Google Cloud contenente il controllo dell'uptime monitori il progetto Google Cloud contenente il servizio Service Directory.
Per ulteriori informazioni su come elencare i progetti monitorati e aggiungerne di altri, consulta Configurare un ambito delle metriche per più progetti.
Passaggi successivi
- Gestire i controlli di uptime
- Creare criteri di avviso per i controlli di uptime
- Graficare le metriche dei controlli di uptime
- Prezzi e limiti