Ep. 54: Monitoraggio dei cluster OpenShift con Checkmk
| [0:00:00] | Salve, benvenuti nel canale Checkmk. Oggi vi mostreremo come monitorare i cluster OpenShift con Checkmk. |
| [0:00:11] | OpenShift è una distribuzione Kubernetes di Red Hat. Con Checkmk è possibile monitorare la salute e le prestazioni del cluster stesso, dell'infrastruttura e del carico di lavoro del cluster OpenShift. Vediamo come configurarlo con Checkmk. |
| [0:00:32] | Il nostro viaggio inizia con la guida ufficiale di Checkmk, dove troveremo tutti i passaggi necessari per configurare il monitoraggio di OpenShift. Cerchiamo l'articolo su OpenShift e in questo articolo scopriremo nello specifico i prerequisiti del cluster che dobbiamo creare. |
| [0:00:52] | Tra questi, il primo è la creazione di uno spazio dei nomi. Copiamo il comando ed eseguiamolo nella nostra shell. Abbiamo creato lo spazio dei nomi "checkmk-monitoring". La prossima cosa da fare è applicare questo file YAML al nostro cluster; prima di farlo, consiglio sempre di darci un'occhiata per evitare di installare qualcosa di strano nel sistema. Il file YAML specifica un account di servizio, un ruolo del cluster e un binding del ruolo del cluster. Il ruolo del cluster consente di vedere quale accesso Checkmk otterrà nel cluster, sarà in grado di vedere queste risorse e di vedere i dettagli su queste risorse. Si tratta di un insieme molto limitato di diritti, quindi è abbastanza sicuro implementarlo. |
| [0:01:44] | Eseguiamolo e vediamo che abbiamo creato un account di servizio, un ruolo di cluster e un binding di ruolo di cluster. Ora abbiamo i requisiti su questa parte, la prossima cosa da fare è capire dove si trova l'endpoint API che ci serve per monitorare il cluster. Per questo possiamo usare il comando 'cluster-info'. Che ci dirà che il piano di controllo di Kubernetes è in esecuzione a questo indirizzo. |
| [0:02:15] | Questo ci servirà più avanti nella configurazione di Checkmk. La prossima cosa di cui abbiamo bisogno è l'endpoint di Prometheus, perché quello che facciamo con Checkmk è interrogare l'API di Kubernetes, ma anche l'endpoint dell'API di Prometheus per ottenere tutti i dati necessari al monitoraggio di OpenShift. Qui possiamo vederlo. Questo è l'endpoint che dobbiamo configurare in seguito. |
| [0:02:49] | Infine, dobbiamo ottenere un token per assicurarci di avere comunicazioni sicure e di essere autorizzati a comunicare con l'API. Si può eseguire questo comando e si otterrà questo token, da salvare anche in seguito. Infine, possiamo ottenere il certificato. In questo caso salterò questo passaggio, ma negli ambienti di produzione consiglio di ottenere il certificato e di applicarlo per garantire la sicurezza delle comunicazioni con il cluster. Come passo successivo, dobbiamo impostare il monitoraggio di Checkmk. Potete anche seguire le linee guida qui, ma dato che non dobbiamo più copiare alcun comando, passeremo direttamente a Checkmk. Ora siamo in Checkmk e la prima cosa da fare è salvare la password del token nel nostro archivio di password, in modo da poterla riutilizzare in seguito in modo sicuro. |
| [0:03:53] | Possiamo aggiungere una password, la chiamo il mio OpenShift _cluster, torno alla riga di comando e copio questo token. Ora è salvato nel nostro archivio di password. La prossima cosa da fare è creare un host, un host in cui saranno memorizzati tutti i dati del cluster OpenShift e che interrogherà il cluster OpenShift. Chiamiamolo "openshift-cluster" e non dobbiamo assegnargli un indirizzo IP, possiamo lasciarlo così, salvarlo e visualizzare la cartella. |
| [0:04:44 | Come pezzo successivo, configuriamo la connessione andando su 'Setup', su "VM, Cloud, Container" e poi su Kubernetes. Aggiungiamo una regola. La chiamo "OpenShift". Uso la funzione comune per dire che l'ho creato come "cmkadmin" e nei passi successivi specifico il cluster, in questo caso il mio cluster di test OpenShift "openshift-test". Utilizzo il token dalla memoria delle password e ora devo inserire la connessione al server API. Per questo torno alla mia console e qui potete vedere questo è ciò che ho copiato prima di copiarlo e incollarlo qui. |
| [0:05:34] | Poi scelgo di arricchire i dati di utilizzo con i dati di OpenShift, quindi devo selezionare questa opzione nella casella a discesa e poi posso specificare l'endpoint dell'API di Prometheus. Questo è quello che abbiamo qui. Quindi copiatelo e salvatelo qui. Lascio qui le opzioni standard. Si può anche decidere di monitorare spazi dei nomi specifici per garantire l'aggregazione delle risorse del cluster, ossia quali dati sono inclusi nelle risorse disponibili nel cluster. In genere non è necessario farlo e si può anche decidere di importare le annotazioni, in modo da poterle usare in seguito nelle etichette degli host e nelle regole di Checkmk. Anche in questo caso non lo si fa, ma è un'opzione potente. Infine, dobbiamo assegnare questa regola a "openshift-cluster". In questo modo Checkmk sa che questo host interrogherà i dati dell'ambiente OpenShift. Come ultimo passo, configuriamo la gestione dinamica degli host. |
| [0:06:45] | Aggiungiamo una nuova connessione che chiameremo "openshift". La chiamerò di nuovo "openshift". Utilizziamo il tipo di connettore "piggyback data" e limitiamo l'host di origine a "openshift-cluster" per garantire che venga utilizzato solo quell'host. Utilizziamo poi l'intervallo di sincronizzazione standard di 1 minuto e lasciamo le opzioni standard. Decidiamo inoltre di eliminare gli host senza dati di piggyback, il che significa che se un pod scompare da OpenShift o un'applicazione scompare da OpenShift, scompare anche dal monitoraggio. Con carichi di lavoro effimeri come OpenShift, questa è un'opzione utile perché non si vuole che le applicazioni siano ancora monitorate. |
| [0:07:37] | Salviamo e ora dobbiamo solo attivare le modifiche. A questo punto possiamo dare un'occhiata al nostro host OpenShift. Eseguiamolo di nuovo e vediamo se la connessione funziona. Vediamo che siamo riusciti a connetterci. Checkmk ha rilevato molti servizi e ora possiamo eseguire il rilevamento dei servizi. → "Esegui il rilevamento dei servizi". |
| [0:08:23] | Checkmk scopre immediatamente le informazioni di base sul cluster, che possiamo vedere sotto la voce "Servizi non definiti". Siamo riusciti a trasportare con successo i dati da Prometheus, le risorse della CPU sul cluster, come vengono utilizzate le richieste, se l'API è disponibile e pronta, come viene consumata la memoria sul cluster, quanti nodi abbiamo. Possiamo vedere che si tratta di un cluster molto piccolo. E quanti pod sono in esecuzione. Accettiamo queste modifiche. Attiviamo di nuovo le modifiche e così abbiamo impostato il monitoraggio di OpenShift. |
| [0:09:05] | Checkmk fornisce dashboard per Kubernetes che si trovano nel menu "Monitor" sotto "Applicazioni" e poi "Kubernetes". Qui potete vedere il nostro cluster "openshift-test". Dovremo aspettare un po' prima che i dati vengano popolati, in genere uno o due minuti, poi avremo dati sufficienti per visualizzare ogni "Dashlet". Il monitoraggio di OpenShift ha iniziato a raccogliere dati. Possiamo vedere il cluster di prova OpenShift che abbiamo configurato in precedenza, possiamo vedere le risorse della CPU consumate sul cluster e le risorse di memoria, quanti pod sono in esecuzione, quanti nodi di lavoro. Abbiamo anche altre metainformazioni, come la versione del cluster OpenShift. Se si configurano altri cluster, vengono visualizzati tutti qui e si possono vedere informazioni più dettagliate nei grafici a destra. |
| [0:10:08] | Diamo un'occhiata al singolo cluster e possiamo accedere a una dashboard più dettagliata facendo clic sul nome del cluster, per poi accedere a una dashboard dettagliata. Facciamo un po' di zoom, in modo da poter vedere tutto. E siamo in grado di vedere tutte le metriche rilevanti direttamente in un'unica vista. |
| [0:10:28] | Possiamo vedere i "DaemonSet", gli "StatefulSet" e le implementazioni in esecuzione sul sistema. Possiamo vedere quali, ad esempio, consumano meno memoria e quali consumano più memoria. Possiamo vedere come viene utilizzato il cluster. Si può vedere come vengono raccolte le metriche e più a lungo si mantiene in funzione, più informazioni si avranno. Possiamo anche vedere i problemi del cluster, come ad esempio un problema con l'applicazione "Container Installer" in esecuzione in un pod per il "Kube-controller-manager". |
| [0:11:11] | Possiamo anche vedere che un deployment di "openshift-console" ha solo un pod pronto su due. E possiamo vedere che un pod che ha esattamente queste caratteristiche è incappato in un errore; possiamo quindi esaminare ulteriori dettagli una volta che ci spostiamo più in basso nei nostri dashboard. Spostarsi più in basso è abbastanza facile. Si può selezionare, ad esempio, la distribuzione "apiserver" e si otterrà una dashboard della distribuzione, che fornisce dettagli su tutti i pod in esecuzione in questa distribuzione. Si può vedere l'utilizzo, l'utilizzo della memoria e, se si vuole, si può anche approfondire un pod specifico e vederne i dettagli. Per esempio, la condizione. I contenitori, che in questo caso sono due, possono vedere quali immagini vengono utilizzate e alcune meta-informazioni. La "Fase" che stanno eseguendo, quanti riavvii hanno avuto nell'ultima ora e in totale e per quanto tempo è in funzione. |
| [0:12:23] | Questo è il monitoraggio di OpenShift con Checkmk. Se volete approfondire l'argomento, andate alla voce "Kubernetes" del menu 'Applicazioni' e avrete una panoramica di tutti i vostri cluster OpenShift. |
| [0:12:42] | Questo era il monitoraggio di OpenShift con Checkmk. Con pochi passaggi siamo stati in grado di configurare il monitoraggio e di ottenere una visibilità completa dell'intero cluster, dal livello superiore a quello molto dettagliato dei pod. Checkmk fa tutto questo senza un grande sforzo sul cluster OpenShift, non installando alcun carico di lavoro, ma raccogliendo i dati tramite l'API Kubernetes e gli endpoint di Prometheus. E con questo forniamo un modo molto sicuro di monitorare i cluster OpenShift. |
| [0:13:12] | Grazie per averci seguito e a presto. |
Vuoi saperne di più su Checkmk? Partecipa al nostro webinar "Introduzione a Checkmk".