Ep. 26: Monitoraggio di Kubernetes con Checkmk

Per caricare questo video di YouTube è necessario accettare i cookie pubblicitari.

[0:00:00] Salve, bentornati sul canale Checkmk. Oggi parleremo del monitoraggio di Kubernetes.
[0:00:15] Kubernetes è un ottimo strumento. È dotato di molte funzioni interessanti e ha anche capacità di self-healing. Ma non è tutto magico. A un certo punto le cose potranno andranno male, guastarsi. Per questo è meglio avere un sistema di monitoraggio.
[0:00:29] Con il nuovo Checkmk 2.1, vi offriamo un monitoraggio di Kubernetes completamente rinnovato, con molte caratteristiche che renderanno il monitoraggio dei vostri cluster Kubernetes un gioco da ragazzi.
[0:00:39] Oggi daremo un'occhiata a questo aspetto. Ecco come appare il nostro monitoraggio di Kubernetes.
[0:00:44] Prima di passare all'installazione e alla configurazione vera e propria, voglio solo anticiparvi il risultato finale che otterrete, una volta terminato con un paio di semplici passaggi.
[0:00:55] Questa è una dashboard del cluster che vi aiuta a visualizzare tutte le metriche importanti e lo stato di salute delle applicazioni e dei carichi di lavoro nel cluster.
[0:01:05] È solo l'inizio del viaggio nella visibilità di Kubernetes. Da lì in poi è possibile scendere nelle singole dashboard.
[0:01:14] Ad esempio, si può scendere nella dashboard Deployments per la distribuzione specifica che sembra avere un problema, dove si può vedere chiaramente qualcosa in rosso. Ehi, c'è qualcosa che non va. E potremmo scendere qui per vedere cosa c'è esattamente che non va.
[0:01:29] Possiamo vedere le metriche dettagliate della distribuzione, dei Pod appartenenti alla distribuzione, i problemi di questa distribuzione in un'unica vista.
[0:01:37] E ora passiamo alla fase successiva. Come iniziare a lavorare?
[0:01:43] Ok, installiamo i collettori Kubernetes che ci servono per ottenere i dati dal cluster Kubernetes. Questi collettori Kubernetes si possono trovare sul nostro repository github alla voce tribe29/checkmk_kube_agent.
[0:01:57] Qui dovete solo andare nella cartella deploy, charts/checkmk, dove troverete anche la documentazione su come effettuare l'installazione.
[0:02:06] Per l'installazione è necessaria una versione recente di Kubernetes, la 1.19+ è piuttosto vecchia quindi dovreste essere in grado di soddisfarla come prerequisito e avete bisogno di helm come strumento.
[0:02:17] Helm è fondamentalmente un gestore di pacchetti per Kubernetes. La prima cosa da fare è aggiungere il repository. Prendo questo comando.
[0:02:29] Do un nome al repository. Lo chiamo tribe29 ed è stato aggiunto. La prossima cosa da fare è aggiornare il repository. Un semplice comando e il gioco è fatto.
[0:02:48] Ok, abbiamo appena aggiornato il repository di helm. E prima di passare alla fase successiva di installazione dei collettori Kubernetes, otterremo un file chiamato values.yaml.
[0:03:00] Sì, lo trovate qui sopra. Vi aiuta a configurare i collettori Kubernetes. Semplifica molto le cose. Si può specificare se si vuole abilitare la comunicazione TLS.
[0:03:14] Si può specificare se si vogliono abilitare i criteri di sicurezza delle porte. E tante altre cose piacevoli in modo molto semplice.
[0:03:22] Lo faremo scaricando questo. Ho già preparato un comando a questo scopo. Scarichiamolo. Ora lo abbiamo sul nostro sistema.
[0:03:36] Cambierò un paio di valori per rendere i collettori Kubernetes esposti al mondo esterno. Perché per impostazione predefinita, il collettore Kubernetes che installeremo non è accessibile dall'esterno.
[0:03:53] Ma affinché Checkmk possa effettivamente prelevare i dati dal cluster Kubernetes, dobbiamo farlo. Per questo, scendo qui fino a raggiungere il servizio.
[0:04:10] Ci sono due opzioni che si possono utilizzare. Si può esporre il servizio Kubernetes del collettore del cluster oppure si può abilitare un ingresso, a seconda di come è impostato Kubernetes.
[0:04:24] Qui ho un cluster Kubernetes molto semplice. Non ho alcun ingress, ecco perché sceglierò l'opzione NodePort. Quindi, devo solo specificare NodePort qui e de-commentare questa riga.
[0:04:40] Questa è l'unica modifica che devo fare per esporre il mio collettore di cluster al mondo esterno su quella specifica porta di quel nodo.
[0:04:53] Per ora non ci soffermeremo su come eseguirlo. Questo è un argomento da trattare in un altro video.
[0:04:57] Per il momento questo nodo è accessibile solo all'interno del mio ambiente interno, quindi per me va bene avere una comunicazione non protetta.
[0:05:06] Ma per qualsiasi cluster produttivo, consiglio vivamente di usare TLS o di assicurarsi che le comunicazioni siano sicure usando un ingress con le capacità integrate di quell'ingress.
[0:05:19] Ok, ora abbiamo configurato questo values.yaml e possiamo tornare alla documentazione e copiare questo comando.
[0:05:33] In questo comando, dobbiamo prima specificare il Namespace in cui verrà installato il collettore Kubernetes. Io uso checkmk-monitoring. Diamo a tutto il nome della release. Potete fare quello che volete, io ho scelto semplicemente checkmk.
[0:05:49] E dobbiamo specificare il repository, che deve essere lo stesso nome che ho usato sopra, e sopra ho usato tribe29.
[0:05:58] E ho anche passato il values.yaml per sovrascrivere la configurazione standard di questa tabella helm per esporre il cluster sulla NodePort 30035.
[0:06:15] Ok, vediamo cosa succede. Ok, il collettore di cluster è stato installato con successo e l'helm chart ci fornisce anche molti comandi utili per iniziare.
[0:06:28] Sì, questi comandi sono tutti utili per configurare la connessione di Checkmk al collettore del cluster Kubernetes.
[0:06:37] La prima cosa da fare è accedere al collettore del cluster. Questa è la prima parte. La seconda parte riguarda i token e il certificato per la connessione al cluster collector e all'API Kubernetes.
[0:06:54] Copio questi comandi e li eseguo. Se poi li guardo, potrò vedere il token che mi serve per comunicare con il mio cluster e potrò anche ottenere il certificato ca.
[0:07:14] Questi sono due elementi di cui ho bisogno per configurare la mia connessione al collettore Kubernetes in Checkmk.
[0:07:21] Ok, ora abbiamo tutto ciò che ci serve per configurare Checkmk in modo che sia in grado di monitorare Kubernetes. Ho creato un sito completamente nuovo.
[0:07:33] In questo sito la prima cosa da fare è andare su Hosts e aggiungere un host per il nostro cluster Kubernetes. Ora lo chiamo kube-internal.
[0:07:47] Gli ho dato nessun IP perché serve solo a raccogliere i dati. In pratica si tratta di un host che è la destinazione di tutti i miei dati.
[0:08:02] La prossima cosa che faccio è creare una cartella in cui mettere tutto. La chiamo k8s-objects.
[0:08:13] Poi creiamo una password, usiamo la password di Checkmk per memorizzare il token per la connessione al collettore del cluster e all'API di Kubernetes.
[0:08:29] Gli do il nome di Kubernetes Internal Token. Ora vado nella mia console, copio il token appena ottenuto, torno a Checkmk e lo salvo.
[0:08:46] È una cosa molto utile perché ora è crittografato sul mio disco, il che è molto utile.
[0:09:07] Andiamo qui e aggiungiamo un nuovo certificato CA. Torniamo alla console. Copiamo il certificato. Salviamo. E ora abbiamo fatto tutto ciò che ci serve per potervi accedere.
[0:09:26] Ora è possibile configurare la connessione. Per farlo, basta andare su Setup e digitare qualcosa con Kubernetes e qui troveremo la regola sotto VM, Cloud, Container, chiamata Kubernetes.
[0:09:37] Possiamo aggiungere una regola qui. Ok, configuriamo la regola Kubernetes. La prima cosa da fare è dare un nome al nostro cluster. Io lo chiamo interno.
[0:09:49] Poi dobbiamo assegnare un token. Prendiamo quello dell'archivio delle password che abbiamo appena specificato. Poi dobbiamo specificare l'endpoint del server API.
[0:10:02] Se non conoscete l'indirizzo IP o l'FQDN, guardate la configurazione del vostro strumento kubectl e troverete nel kubeconfig l'indirizzo del server API.
[0:10:17] Ovviamente vogliamo verificare il certificato. Il passo successivo consiste nell'arricchire i dati ottenuti con quelli provenienti dal collettore del cluster Checkmk.
[0:10:29] A tale scopo, utilizzo ciò che ho specificato prima e quando abbiamo distribuito il collettore di cluster nel nostro cluster Kubernetes. Ho selezionato NodePort. Ovviamente si può usare anche ingress.
[0:10:41] Per NodePort, devo solo specificare l'indirizzo IP di un nodo. È una cosa che ogni cluster Kubernetes può fare. Non ho abilitato l'HTTPS in produzione, fatelo.
[0:10:57] E ora abbiamo quasi finito. Dobbiamo solo assegnare questa regola a un host. Assegno questa regola all'host kube-internal e il gioco è fatto. Salviamo la regola, attiviamola e diamo un'occhiata ai nostri host.
[0:11:22] Abbiamo l'host interno di kube che abbiamo appena creato e questo. La prima cosa da fare è guardare nel Checkmk service discovery e modificare i servizi.
[0:11:36] E possiamo già vedere che ha scoperto un paio di cose. Ha scoperto alcuni servizi Kubernetes.
[0:11:44] Li accettiamo tutti e riceviamo le metriche, l'utilizzo della CPU del cluster. L'API Kubernetes è attiva e pronta. Vediamo la matrice della memoria. Vediamo quanti nodi abbiamo nel cluster e quanti pod.
[0:12:07] Tuttavia, ora abbiamo solo un host in Checkmk. Ovviamente vogliamo che tutti i pod, tutte le distribuzioni e tutte le altre cose appaiano in Checkmk.
[0:12:17] Per questo dobbiamo attivare la gestione dinamica degli host. Creo una nuova connessione. La chiamo Kubernetes. Aggiungo qui, tra le opzioni di creazione di Piggyback, un nuovo elemento.
[0:12:38] Creo gli host nella cartella che ho appena creato. Potete scegliere quello che volete. E scelgo anche di eliminare gli host che non hanno dati Piggyback.
[0:12:49] Il meccanismo dei dati Piggyback è il modo in cui i dati vengono trasferiti dal collettore del cluster a Checkmk.
[0:12:57] Ora useremo questa funzione per inserire i dati. Limiterò gli host di origine a kube-internal, perché voglio che la configurazione dinamica sia applicata solo a quell'host specifico.
[0:13:16] Salviamo e attiviamo le modifiche. Possiamo già vedere tutti gli host che vengono creati.
[0:13:25] Checkmk stesso ora sta scoprendo tutto nel cluster Kubernetes. Tutti i pod che si possono vedere qui sono stati creati.
[0:13:34] Tutti i Namespace, le distribuzioni, i set immuni, ogni oggetto nel cluster Kubernetes vengono ora monitorati. Checkmk se ne occuperà per voi, in modo che non dobbiate farlo voi.
[0:13:47] Ok, possiamo vedere che ora abbiamo già 87 host nel nostro Kubernetes nel nostro monitoraggio Checkmk.
[0:13:56] La prima cosa che possiamo fare è dare un'occhiata alle dashboard di Kubernetes che ho mostrato all'inizio. Per farlo, andate su Monitor e alla voce Applicazioni troverete Kubernetes.
[0:14:14] Qui potete vedere il nostro cluster che abbiamo appena configurato con alcune metriche. Ora possiamo entrare nel cluster, andare più in profondità e vedere la dashboard del cluster.
[0:14:26] Al momento è ovviamente piuttosto vuota, perché tutti i dati vengono raccolti sul momento.
[0:14:31] Concediamo un po' di tempo e diamo un'occhiata a come appare in un paio di secondi.
[0:14:36] Ok, e appena un paio di secondi dopo, abbiamo l'intero monitoraggio di Kubernetes pronto e funzionante. Possiamo vedere immediatamente quali Namespace abbiamo, possiamo vedere qui i nostri carichi di lavoro.
[0:14:53] Possiamo ordinarli se vogliamo vedere quale workload ha un carico elevato. Possiamo ordinarli anche in base al consumo di memoria per identificare i maggiori consumatori.
[0:15:04] Disattiverò la barra laterale in modo da poter visualizzare per intero. Le prime metriche stanno già arrivando.
[0:15:13] Possiamo vedere, ok, come è in questo momento la risorsa CPU su un cluster e possiamo anche entrare. Possiamo, ad esempio, dire: "Voglio vedere tutto quello che c'è nel mio Namespace predefinito".
[0:15:24] E possiamo, ad esempio, controllare la dashboard del Namespace. È possibile vedere immediatamente quali carichi di lavoro sono in esecuzione direttamente nel default. E poi, ad esempio, possiamo andare più in basso, anche qui, in una distribuzione specifica.
[0:15:43] Questa è l'installazione e la configurazione del monitoraggio di Kubernetes con Checkmk 2.1.
[0:15:46] Spero che il video vi sia piaciuto. Nel prossimo video, vi mostrerò come è possibile eseguire gli avvisi per il vostro cluster Kubernetes.
[0:15:46] Grazie per aver guardato e per favore mettete "Mi piace" e iscrivetevi.

Vuoi saperne di più su Checkmk? Partecipa al nostro webinar "Introduzione a Checkmk".

Registrati adesso

Altri Video di Checkmk