In questo codelab, imparerai come iniziare a utilizzare Stackdriver per monitorare ed esaminare le metriche sulle prestazioni e i log per i servizi Google Cloud Platform e le VM.
In questo codelab
- Acquisisci familiarità con la home page di Stackdriver.
- Informazioni su dashboard e grafici.
- Creare un controllo di uptime.
- Crea un criterio di avviso semplice.
- Utilizzare gli incidenti di avviso.
- Esplorare il visualizzatore log.
Qual è la tua esperienza con Stackdriver?
Configurazione dell'ambiente con pacing automatico
Se non hai ancora un Account Google (Gmail o Google Apps), devi crearne uno.
Accedi alla console di Google Cloud Platform (console.developers.google.com) e crea un nuovo progetto:
Ricorda l'ID progetto, un nome univoco tra tutti i progetti Google Cloud. Vi verrà fatto riferimento più avanti in questo codelab come PROJECT_ID
.
Molto importante. Visita la pagina Compute Engine per avviare l'abilitazione dell'API Compute Engine:
E poi: Compute → Compute Engine → Istanze VM
La prima volta che esegui questa operazione, viene visualizzato il messaggio "Compute Engine in preparazione". L'operazione potrebbe richiedere un minuto o più". Puoi continuare ad accedere a Google Cloud Shell di seguito, ma non potrai creare VM finché questa operazione non sarà completata.
Svolgerai la maggior parte del lavoro da Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud. Questa macchina virtuale basata su Debian viene caricata con tutti gli strumenti di sviluppo di cui hai bisogno e offre una home directory permanente da 5 GB. Apri Google Cloud Shell facendo clic sull'icona in alto a destra dello schermo:
Infine, utilizzando Cloud Shell, imposta la zona e la configurazione del progetto predefinite:
$ gcloud config set compute/zone us-central1-b $ gcloud config set compute/region us-central
Puoi selezionare anche diverse zone. Ulteriori informazioni sulle zone sono disponibili nella documentazione sulle aree geografiche e le zone.
In questa sezione creerai istanze di Compute Engine che eseguono nginx+ utilizzando Cloud Avvio app. Avremo bisogno di queste istanze per dimostrare il monitoraggio e l'avviso. Puoi creare un'istanza di Compute Engine dalla console grafica o dalla riga di comando. Questo lab illustra i passaggi della riga di comando.
Ora iniziamo.
Usa gcloud per impostare il tuo ID progetto:
$ gcloud config set project PROJECT_ID
Ora assicurati di copiare e incollare così:
$ for i in {1..3}; do \ gcloud compute instances create "nginx-plus-$i" \ --machine-type "n1-standard-1" \ --metadata "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \ --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \ --tags "http-server","google-cloud-marketplace" \ --image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \ --boot-disk-size "10" --boot-disk-type "pd-standard" \ --boot-disk-device-name "nginx-plus-$i"; done
Vedrai messaggi di avviso sulle dimensioni del disco e quindi il seguente output durante la creazione di ogni VM:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS nginx-plus-1 us-central1-b n1-standard-2 X.X.X.X X.X.X.X RUNNING ...
Annota la nota EXTERNAL_IP
: è importante in seguito.
Il completamento di queste operazioni potrebbe richiedere alcuni minuti.
Per impostazione predefinita, Google Cloud Platform accetta solo pochi accessi alle porte. Poiché presto avremo accesso a Nginx, consentiremo la porta 80 nella configurazione del firewall:
$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server" Created [...]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS allow-80 default 0.0.0.0/0 tcp:80 http-server
Verrà creata una regola firewall denominata allow-80 con i seguenti valori predefiniti:
- L'elenco di blocchi di indirizzi IP consentiti per effettuare connessioni in entrata (
--source-ranges
) è impostato su0.0.0.0/0
(ovunque). - L'elenco di tag di istanza che indica l'insieme di istanze della rete che può accettare connessioni in entrata è impostato su Nessuno, il che significa che la regola firewall è applicabile a tutte le istanze.
Esegui gcloud compute firewall-rules create --help
per visualizzare tutti i valori predefiniti.
Dopo aver creato la prima istanza, puoi verificare se nginx è in esecuzione e accessibile passando a http://EXTERNAL_IP/ dove EXTERNAL_IP
è l'IP pubblico di nginx-plus-1 e dovresti essere in grado di visualizzare la pagina Nginx:
Puoi anche visualizzare le istanze in esecuzione digitando:
$ gcloud compute instances list
Google Stackdriver è una potente soluzione di monitoraggio che integra vari strumenti per facilitare il monitoraggio e l'analisi delle applicazioni basate su cloud. Con Stackdriver puoi visualizzare le metriche sulle prestazioni, impostare e ricevere avvisi, aggiungere dashboard e metriche personalizzate, visualizzare log e tracce e configurare dashboard integrate, il tutto da un'unica posizione.
I passaggi successivi ti guideranno nell'attivazione di Stackdriver e nell'utilizzo della console.
Per impostazione predefinita, Google Stackdriver è attualmente in versione beta e non è abilitato per i nuovi progetti. Per attivarlo, vai alla barra di navigazione a sinistra e fai clic su "Monitoraggio", (potrebbe essere necessario scorrere verso il basso per trovarlo)
Nella schermata successiva, fai clic su "Abilita Monitoring" e attendi un minuto per l'attivazione.
Una volta attivata, i contenuti cambieranno e visualizzerai il testo di seguito. Fai clic su "Vai a Monitoring" per iniziare a esplorare. Dovrai accedere con Google e poi accedere alla console di Stackdriver per il tuo progetto, dove eseguirai e analizzerai le attività relative al monitoraggio.
Acquisisci familiarità con la home page.
- Il menu in alto: utilizza per selezionare viste / contesti diversi e accedere a tutte le azioni di Stackdriver disponibili.
- Dashboard: sono dashboard di metriche ed eventi monitorati. Inizialmente sono dashboard di sistema predefinite basate sulle risorse nel tuo progetto, ma puoi anche comporre dashboard personalizzate.
- Controlli di uptime: controllano periodicamente la disponibilità delle risorse rivolte all'utente e attivano gli avvisi quando questi diventano non disponibili.
- Elenco gruppi: i gruppi vengono utilizzati per raggruppare risorse che condividono proprietà e caratteristiche, in modo che possano essere gestite come gruppo o cluster per attività quali monitoraggio e avvisi. Possono essere rilevati automaticamente e definiti dall'utente.
- Riquadro Incidenti: il riquadro Incidenti monitora gli incidenti di avviso. Non vedrai nulla fino a quando non avrai definito i criteri di avviso.
- Il log eventi elenca gli eventi correlati alle risorse monitorate, ad esempio modifiche delle istanze, eventi incidenti e così via.
Prima di esaminare i grafici, noterai che la maggior parte delle righe si è appiattita dopo l'inizializzazione dell'istanza iniziale. Vediamo se possiamo "non sfuggere"; alcune di queste generano un certo carico su una delle istanze.
Per connetterti all'istanza tramite SSH dalla riga di comando di Cloud Shell:
$ gcloud compute ssh nginx-plus-1 ... Do you want to continue (Y/n)? Y ... Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): [Hit Enter] Enter same passphrase again: [Hit Enter] ... yourusername@nginx-plus-1:~$
È facilissimo. (In produzione, assicurati di inserire una passphrase :) Inoltre, tieni presente che potrebbe non essere richiesto di aggiungere una passphrase.
In alternativa, puoi anche connetterti all'istanza tramite SSH direttamente dalla console, andando su Compute Engine > istanze VM e facendo clic su SSH.
In the SSH window, type:
yourusername@nginx-plus-1:~$ sudo apt-get install rand yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &
È in corso il caricamento dell'istanza nginx-plus-1 CPU. Possiamo tornare alla scheda della dashboard di Stackdriver e iniziare a esplorare, ma prima di tornare alla pagina delle dashboard di Stackdriver, cogliamo l'opportunità di installare l'agente Cloud Logging.
Fetch and install the script:
yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install
Tieni presente che, durante l'installazione in produzione, assicurati di controllare l'hash SHA-256. Per ulteriori informazioni sulla procedura di installazione, fai clic qui.
È il momento di tornare alla console di Google Stackdriver.
Prenditi il tempo di acquisire familiarità con la navigazione e l'utilizzo delle dashboard e dei grafici. Passa il mouse sopra le linee del grafico per vedere cosa succede. Modifica la durata del tempo per i grafici (i controlli si trovano nell'angolo in alto a destra). Puoi sempre tornare alla visualizzazione "home page" facendo clic sul logo Stackdriver nell'angolo in alto a sinistra della console.
Diamo un'occhiata al grafico di utilizzo della CPU:
Alcuni elementi del grafico sono:
- La linea evidenziata è la metrica attualmente selezionata (un grafico può mostrare più metriche).
- La linea orizzontale grigia rappresenta il punto nel tempo a cui punta il puntatore del mouse.
- In basso, si tratta del nome della risorsa e del valore nel punto selezionato.
- Nella parte superiore del grafico sono presenti punti colorati che rappresentano gli eventi nel log eventi. Puoi fare clic su queste per visualizzare un elenco di eventi. Nota. Potresti non vedere nessuno se non hai ancora nessun evento.
- In alto a destra del grafico sono presenti tre controlli (da sinistra a destra):
- Attiva/disattiva un elenco delle metriche sotto il grafico
- Attiva/Disattiva modalità schermo intero
- Menù con diversi ingredienti (DEVI provare la modalità X-ray quando hai un grafico molto dettagliato). Prendi nota dell'opzione "Visualizza log": raggiungeremo questo aspetto in un secondo momento.
I controlli di uptime ti permettono di verificare rapidamente l'efficienza operativa di pagine web, istanze o gruppi di risorse. Ciascun controllo configurato viene contattato a intervalli regolari da diverse località a livello globale. I controlli di uptime possono essere utilizzati come condizioni nelle definizioni dei criteri di avviso.
Puoi visualizzare i controlli e il loro stato selezionando Avvisi > Controlli di uptime nel menu in alto. Troverai anche le sezioni Controlli di uptime nella dashboard di Google Stackdriver e nelle pagine dedicate a risorse specifiche. Per i controlli di uptime che coprono un gruppo di risorse, puoi espandere il controllo per mostrare lo stato dei singoli membri del gruppo.
Crea un controllo di uptime. Trova il widget dei controlli di uptime nella schermata Home di Stackdriver:
Verrà visualizzato un nuovo popup. Possiamo configurare controlli di uptime per una singola risorsa o un gruppo di risorse, utilizzare intestazioni e payload personalizzati, aggiungere l'autenticazione e altre opzioni. Per ora, utilizzeremo un controllo http predefinito che controllerà il gruppo nginx creato automaticamente ogni minuto.
Usa lo screenshot di seguito per specificare le varie opzioni:
Fai clic sul pulsante "Test" per assicurarti che i tuoi endpoint siano raggiungibili (dovresti avere tre condizioni verdi) e fai clic su Salva. Nota: se non riesci a recuperare il lab, puoi comunque proseguire con il lab, poiché potrebbe trattarsi solo di un problema di tempistica del controllo di prova.
In seguito, riceverai la casella "Controllo di uptime creato" e ti verrà chiesto se vuoi creare un criterio di avviso per questo controllo. Nella prossima sezione eseguiamo questa operazione: non fare ancora clic su di esse.
Puoi configurare criteri di avviso per definire le condizioni che determinano se i servizi cloud e le piattaforme funzionano normalmente. Cloud Monitoring offre molti tipi diversi di metriche e controlli di integrità che puoi utilizzare nei criteri.
Quando le condizioni di un criterio di avviso vengono violate, un incidente viene creato e visualizzato nella console di Stackdriver nella sezione Incidente. I tecnici che intervengono possono confermare la ricezione della notifica e possono chiudere l'incidente una volta che il problema è stato risolto.
Fai clic su "Crea criterio di avviso" e passiamo alla configurazione del criterio.
Ora dovresti vedere questa schermata:
Inserisci un nome per il criterio: "Uptime Check for nginx group"
Ora, nella sezione del metodo di notifica, fai clic su "Aggiungi notifica".
Inserisci l'indirizzo email associato al tuo account Google Cloud. Scorri fino in fondo allo schermo e fai clic su "Salva norma".
Torna alla home page di Stackdriver (facendo clic sul logo nell'angolo in alto a sinistra).
A questo punto dovresti vedere il controllo di uptime creato nella sezione dei controlli di uptime. Per il momento lo stato dovrebbe essere verde.
Scorri verso il basso fino al Log eventi e dovrebbe essere visualizzato l'evento in cui è stato creato un criterio di avviso.
E ora creiamo un po' di problemi :)
Vediamo cosa succede quando interrompiamo il servizio Ngnix.
Accedi di nuovo a SSH all'istanza dalla riga di comando di Cloud Shell:
$ gcloud compute ssh nginx-plus-1
E digita:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Ora il controllo di uptime che abbiamo creato non dovrebbe superare. Di conseguenza, verrà creato un incidente e verrà inviata un'email di notifica di avviso all'indirizzo inserito sopra. Sarà necessario un minuto prima che la condizione venga rilevata (ricorda la durata di 1 minuto durante l'impostazione del controllo di uptime?), quindi andiamo a esaminare la pagina del gruppo nginx.
Esistono diversi modi per accedere alla dashboard di un gruppo di risorse specifico:
- Puoi fare clic sul nome del gruppo nella home page. Passa a una dashboard creata appositamente per monitorare le risorse del gruppo. Puoi anche personalizzare questa dashboard.
- Nel menu di livello superiore, seleziona Gruppi, quindi trova il tuo gruppo specifico.
Ora fai clic sul pulsante di aggiornamento automatico per assicurarti che le dashboard vengano aggiornate automaticamente. L'icona diventa rossa.
Ora stai visualizzando una dashboard specifica per il gruppo nginx creato automaticamente. Sul lato destro sono presenti grafici di diverse metriche chiave relative al gruppo. In altre parole, questi grafici mostrano metriche relative a tutte le risorse del gruppo nginx (le tre VM nginx+ create in precedenza).
Sul lato sinistro vengono visualizzate varie informazioni relative al gruppo:
- Stato dell'incidente
- Controlli di uptime
- Log eventi
- Un elenco di risorse (istanze, volumi ecc.)
Tieni presente che questi riguardano solo il gruppo, pertanto il log eventi elenca solo gli eventi per il gruppo.
Puoi fare clic su risorse o sottogruppi diversi per passare alle rispettive dashboard specifiche. Ad esempio, se fai clic su nginx-plus-1 viene visualizzata una dashboard composta solo da metriche e controlli relativi all'istanza. Provalo subito
Gli incidenti di Stackdriver vengono aperti quando un insieme di condizioni di avviso soddisfa un determinato criterio. Nel nostro caso, abbiamo impostato un avviso per il controllo di uptime nginx, che al momento non funziona su nginx-plus-1. Gli incidenti ti aiutano a tenere traccia delle condizioni attuali e a collaborare con altri membri del team per risolvere i problemi.
Informiamoci dell'incidente, informando gli altri membri del team che stiamo esaminando la situazione:
Tieni presente che questa operazione modifica lo stato dell'incidente da Aperto a Confermato. La situazione è ancora in corso (le condizioni dei criteri di avviso sono ancora state violate), ma stai segnalando ai membri del team che ci sei. Verrà registrato anche nel log eventi.
Gli incidenti possono essere risolti manualmente o possono essere risolti automaticamente. Per quest'ultimo, utilizza nginx-plus-1 per risolvere il problema:
yourusername@nginx-plus-1:~$ sudo service nginx start
Ora l'incidente verrà risolto automaticamente quando il controllo di uptime tornerà al livello normale. Puoi anche risolvere il problema autonomamente selezionando la voce di menu per la risoluzione.
Cloud Logging è una soluzione di logging as a service che offre un pratico punto centrale per visualizzare ed eseguire query sui log da più origini. Puoi anche utilizzare i log per esportarli in altre destinazioni (Google Cloud Storage, Google BigQuery o Google Cloud Pub/Sub).
Per accedere al visualizzatore log di Cloud, sceglilo dal menu a sinistra di Cloud Console:
Si aprirà il visualizzatore log, dove potrai utilizzare le query predefinite o creare e salvare le tue query personalizzate, ottenere un live streaming di log provenienti da più risorse nel tuo deployment cloud, creare metriche dai log, esportarle e molto altro ancora.
Sono disponibili alcuni pratici controlli per filtrare rapidamente le informazioni pertinenti:
- Filtra per tipi di risorse
- Filtra in base ai tipi di log specifici delle risorse selezionate
- Filtra livelli di log specifici
- Filtra in base a date specifiche per esaminare i problemi precedenti
- Attiva/disattiva lo streaming continuo
- Una casella di ricerca per la ricerca di testo, etichette o espressioni regolari
Ora proviamo a restringere i dati a log specifici.
Dal selettore del tipo di risorsa (1 nello screenshot), seleziona Compute Engine -> Tutti i tipi di risorse
Accanto al selettore del tipo di log (2 nello screenshot), seleziona nginx-access per visualizzare tutti i log di accesso
A questo punto, attiva lo streaming continuo (5) per guardare i log man mano che arrivano. Se non vedi nuovi log, prova a inserire l'indirizzo IP esterno di una delle VM nginx-plus nel browser.
Anche se questo codelab non si concentra sui log, puoi esplorarlo più tardi prima di fare pulizia. Puoi trovare ulteriori informazioni su come raggiungere lo spettatore qui. Per informazioni più dettagliate sulle risorse che puoi utilizzare per Cloud Logging, ecco la directory di primo livello per la documentazione pertinente.
Rilasciamo le risorse di calcolo create durante il codelab. Esegui i seguenti comandi in Cloud Shell:
$ for i in {1..3}; do \ gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done
Quindi, vai alla console di Google Stackdriver (dal menu del riquadro a sinistra di Cloud Console) e rimuovi il controllo di uptime e i criteri di avviso che abbiamo creato. Puoi farlo dalle voci di menu di primo livello Avvisi -> Panoramica dei criteri e Avvisi -> Controlli di uptime.
Ora sei pronto per monitorare le tue applicazioni nel cloud.
Cosa abbiamo trattato
- Acquisire familiarità con la home page di Stackdriver.
- Informazioni su dashboard e grafici.
- Creazione di un controllo di uptime.
- Creazione di un criterio di avviso semplice.
- Utilizzo degli incidenti relativi agli avvisi.
- Navigazione nel visualizzatore log.
Passaggi successivi
- Prova a creare una dashboard personalizzata.
- Esplora le diverse opzioni durante la creazione di un criterio di avviso.
- Esplora le diverse opzioni disponibili quando utilizzi Cloud Logging.
Impara anche
- Scopri di più sull'utilizzo dell'API Monitoring.
- Utilizzare le metriche personalizzate.
Inviaci il tuo feedback
- Ti invitiamo a rispondere al nostro sondaggio molto breve