Checkmk è dotato di un potente costruttore di dashboard. Ok, iniziare potrebbe essere più semplice, ma una volta costruita la prima dashboard, avrete imparato come fare e sarete in grado di costruire le successive in modo super veloce.

In questo post, vi mostrerò come costruire una dashboard per monitorare il vostro ambiente vSphere. VMware vSphere è una piattaforma di virtualizzazione per il cloud computing ed è composta da VMware vSphere ESXi, un hypervisor di tipo 1, e VMware vCenter, uno strumento di configurazione.

Nota: questo articolo si basa sulle versioni di Checkmk precedenti alla 2.0. Un tutorial per le versioni più recenti è disponibile qui.

Checkmk può monitorare sia gli host ESXi che le sue macchine virtuali. Ad esempio, sull'host è possibile interrogare Disk-IO, le prestazioni del datastore, lo stato delle interfacce di rete fisiche, diversi sensori hardware e molto altro ancora. Checkmk offre anche una serie di plug-in di controllo per le macchine virtuali: un elenco completo è disponibile nel catalogo dei plug-in di controllo nella sezione VMware ESX. Checkmk ottiene i dati tramite la vSphere-API, non è quindi necessario installare alcun software sugli host ESXi. Per ulteriori informazioni su come monitorare VMware ESXi, leggete questo articolo.

La dashboard di vSphere che ho creato mostra nella colonna di sinistra lo stato di alimentazione della macchina virtuale (le macchine exvm15, 17 e 18 sono spente, come indicato dallo stato WARN). Accanto, è possibile vedere lo stato di salute delle macchine virtuali. Si nota subito che la maggior parte delle macchine virtuali è a posto, mentre alcune hanno un problema con l'heartbeat e gli strumenti guest (ad esempio, non sono installati VMware Tools o è installata una versione obsoleta di VMware Tools).
Sul lato destro della dashboard, si possono vedere le informazioni sui nodi ESXi. In alto a destra, ho aggregato gli stati, poiché non mi interessa vedere la salute di una singola macchina, ma piuttosto se tutti i sensori hardware e i multipath siano a posto. Al contrario, quando guardo alle prestazioni, sono invece interessato alle prestazioni di ogni singolo nodo. In basso a destra posso anche vedere i diversi filesystem utilizzati da tutte le mie macchine virtuali per capire se presto potrei avere problemi di capacità.

Creare la dashboard

Per creare la dashboard, è necessario innanzitutto creare le viste, come spiegato in precedenza. Queste viste possono poi essere aggiunte molto facilmente alla dashboard. Illustrerò prima ogni vista singolarmente, per mostrare le numerose possibilità di creare viste in Checkmk. Dopo la prima vista, saltate pure alla sezione: Aggiunta di viste alla dashboard.

Creazione delle viste

Stato delle macchine virtuali - mostrare i singoli servizi in una vista
Per prima cosa creiamo la vista "State of VMs", che mostra lo stato di ogni macchina virtuale che abbiamo.
Andiamo alla barra laterale e cerchiamo la sezione Viste. Nella parte inferiore di questa sezione, clicchiamo su Modifica. Nella nuova schermata, clicchiamo sul pulsante "New" in alto per creare una nuova vista. Selezioniamo "All Services" in Sorgente dati e continuiamo. Non bisogna invece selezionare alcun oggetto specifico nella schermata successiva, ma solo fare clic su "Continue". Ora inseriamo le informazioni per le proprietà generali della vista. L'argomento è utile perché definisce in quale sezione delle viste si trova la vista appena creata. A sinistra è visibile la sezione vCenter, che ospita tutte le viste relative al monitoraggio di vSphere.

grafico per la creazione delle viste

Ora è necessario selezionare le colonne che si desidera visualizzare in questa vista. Io voglio solo il nome dell'host e lo stato del servizio, come si può vedere qui sotto. Clicco quindi su "Add column", seleziono "Hosts: Hostname" in "Column", quindi aggiungo un'altra colonna e seleziono "Services: Service state". Questo è tutto ciò che bisogna fare. Le voci "Link" e "Tooltip" sono solo un nice-to-have. In questo caso, facendo clic sull'host nella vista si accede a tutti i servizi dell'host. Passando il mouse sullo stato del servizio si visualizza l'output del plugin di controllo, in modo da capire perché lo stato è effettivamente WARN o CRIT, ad esempio.

creazione delle viste, secondo grafico

Ora dobbiamo assicurarci di visualizzare solo i servizi di nostro interesse. Andiamo su "Context/Search Filters", nella riga "Service" selezioniamo "Service" e clicchiamo su "Add filter". Nel mio caso, posso inserire VM exvm* per filtrare tutti i servizi che iniziano con VM exvm in tutti gli host.

Nota: una buona convenzione di denominazione aiuta a identificare automaticamente le macchine virtuali interessate. Tutte le mie macchine virtuali iniziano con il nome exvm.

grafik-2

Adesso basta fare clic su "Save" e, nella rispettiva sezione delle viste, troverete la vista appena creata. La mia ha questo aspetto:

creazione delle viste, terzo grafico

A questo punto, è possibile passare all'aggiunta di viste alla dashboard o continuare con la creazione di viste.

Commento: Questa vista non è essenziale per la dashboard. La seguente vista "ESX VM Table" mostra le informazioni chiave sulle macchine virtuali, ma non è possibile mostrare lo stato delle macchine virtuali in questa vista poiché ogni servizio che descrive lo stato della macchina virtuale ha un nome diverso e una "Joined column" non funziona con i caratteri jolly.
Affinché entrambe le viste si integrino tra loro, devono essere soddisfatti alcuni requisiti, che potete vedere alla fine della sezione che descrive la "ESX VM Table".

ESX VM Table - mostrare gli stessi servizi di più host in una vista tabellare
Ora possiamo creare una vista molto potente, che può essere utilizzata se si dispone di molti host con servizi simili e si desidera, ad esempio, confrontarli tra loro.
Come prima cosa, dobbiamo creare una nuova vista. Selezioniamo "All hosts" come fonte di dati, senza selezionare oggetti specifici, e continuiamo. Inseriamo nuovamente le informazioni per le proprietà generali. Quando si aggiunge una nuova colonna, è necessario selezionare ora la colonna "Joined". Selezioniamo "Services: Service state" per la colonna. Inseriamo il nome esatto del servizio che vogliamo monitorare in "Of service", ad esempio ESX Heartbeat e (facoltativo) possiamo inserire un titolo per la colonna.

creazione delle viste, quarto grafico

Ora è sufficiente filtrare gli host che devono essere monitorati. In Filtri "Context / search filters", selezioniamo "Hostname", clicchiamo su "Add filter" e inseriamo un'espressione regolare che corrisponda al nome di tutte le macchine virtuali.

grafico 5

Ora posso vedere una bella tabella per tutti i servizi dell'host. In questo caso, Non ho qui inserito alcun nome di host, quindi non posso sapere per quale host sto osservando un servizio. Queste informazioni possono però essere ricavate dalla vista che avevamo appena creato e che si trova accanto a questa nuova vista.

Dashboard di monitoraggio ESX

Nota: posizioneremo la vista "ESX VM table" accanto alla vista "State of VMs". Affinché questo funzioni, è necessario che siano soddisfatti i seguenti requisiti (grazie Marsellus)

  • tutte le macchine virtuali devono essere anche nel monitoraggio, in modo che la tabella delle macchine virtuali ESX sia lunga quanto la tabella dello stato ESX
  • tutte le macchine virtuali devono essere denominate esattamente(!) come in ESX, in modo che il contenuto di "ESX VM table" corrisponda a quello di "ESX VM state".
  • entrambe le viste devono essere configurate in modo da non essere ordinabili dagli utenti, perché se si ordina/filtra una di esse modificando l'intestazione di una colonna, i contenuti della tabella non corrisponderanno più l'uno all'altro.

Ora abbiamo tutte le viste necessarie per le macchine virtuali. Non entrerò nel dettaglio di come creare la vista per le prestazioni dei nodi ESXi, perché può essere creata esattamente nello stesso modo della vista precedente. È possibile, ad esempio, utilizzare il pulsante "Clone" per copiare la vista ESX_VM e poi vi sarà sufficiente regolare le colonne e impostare il filtro giusto per il nome dell'host (per me: .*example.org$ poiché tutti i miei nodi ESXi terminano con il nome example.org).

Nodi di monitoraggio ESX

Salute dei nodi ESXi
Questa è una nuova vista, in quanto utilizzeremo anche il concetto di gruppi di servizi Checkmk. Anche questo aspetto è trattato nella documentazione. Seguiamo quindi la documentazione e creiamo i gruppi di servizi esxi_hwsensors, esxi_multipaths, esxi_state. Creiamo anche una regola "Assignment of services to service group" e assegniamo i servizi al relativo gruppo di servizi, ad esempio "Hardware sensors". Ripetiamo l'operazione per gli altri gruppi di servizi.

Sensori hardware ESXi

Se clicchiamo ora su "Service Groups (Summary)" nella barra laterale, nella sezione "View", vedremo una vista riassuntiva dei gruppi di servizi. Possiamo anche cliccare su "Edit view" per creare una copia (i template originali delle viste non possono essere sovrascritti, ma viene creata una copia).

Gruppi di servizi ESXi

Rinominare le "General Properties" e assicuriamoci di inserire il "Topic" giusto, in modo da poter ritrovare facilmente la vista modificata. L'unica cosa da fare ora è impostare un filtro per vedere solo i gruppi di servizi che vogliamo vedere. I miei gruppi di servizi per me rilevanti iniziano tutti con esx, quindi posso semplicemente inserire esx nel campo "Servicegroup (Regex)".

Gruppo di servizi ESX

Come risultato, ho adesso la vista riassuntiva per gruppo di servizi. Posso vedere tutti i miei sensori hardware indipendentemente dagli host e vedere immediatamente se uno di essi è in WARN (W), CRIT (C) ecc. e quindi reagire per risolvere il problema.

Vista del gruppo di servizi ESXi

vCenter Filesystems - Viste dettagliate del servizio
Per quest'ultima vista, sono stato piuttosto pigro. Ho semplicemente copiato la vista "allservices".

Vista dei file system di vCenter

Ho quindi rinominato le "General properties", rimosso le colonne che non mi servono più (Hosts/Services: Service icons, Services: The age of the current service state, Services: The time since the last check of the service). Dopodiché, ho impostato i filtri per il servizio, come si può vedere di seguito.

Vista vCenter: impostare i filtri

La creazione della prima vista a primo impatto può sembrare una seccatura. Ma per creare le viste successive basta copiare quelle vecchie e impostare il filtro giusto.

Aggiunta di viste alla dashboard

Passiamo ora alla creazione della dashboard. Un articolo della documentazione descrive in dettaglio le dashboard.
Come prima, facciamo clic sul pulsante "Edit" nella sezione "Views" della barra laterale. Ora clicchiamo su "Dashboard" nel menu in alto. Clicchiamo infine su "New" per creare una nuova dashboard. Non selezioniamo nulla, ma facciamo clic su "Continue". Nelle General properties impostiamo il Topic su Overview, in modo che la vista venga visualizzata accanto alle altre dashboard, ma non impostiamo alcun filtro Context / Search. Infine, salviamo.

La nuova dashboard vuota è ora disponibile nella sezione Overview delle Views. Il pulsante Edit the Dashboard non è facile da trovare: è un po' nascosto in basso a destra.

Vista della dashboard di vSphere

Clicchiamo sull'icona con gli ingranaggi e poi su Edit dashboard. Facciamo di nuovo clic sugli ingranaggi e successivamente su Add dashlet -> Existing View. Selezioniamo una delle viste create in precedenza. Nella schermata successiva, scorriamo verso il basso e clicchiamo su Salva.

Dashboard di modifica di vSphere

Procediamo in questo modo per tutte le viste che abbiamo creato. Poi si può iniziare a spostarle con il Drag & Drop.
Ecco come le ho disposte io:

Dashboard vSphere - riorganizzazione degli elementi

Alcuni piccoli trucchi:
È possibile ridimensionare da soli (barra bianca sul lato o sulla parte superiore del dashlet), lasciando che Checkmk trovi la larghezza e l'altezza migliori facendo clic su questa barra bianca, che diventa gialla. È anche possibile forzare la lunghezza massima facendo nuovamente clic sulla barra, che diventa rossa.

Il cerchio nell'angolo, che non è nero, indica l'origine fissa di questo dashlet. Ad esempio, qui è in alto a destra, quindi tutte le frecce si muoveranno da lì ed è da lì che Checkmk inizierà a massimizzare larghezza e altezza.

Vista dei nodi ESXi

Questa è stata una guida piuttosto lunga per la creazione di una dashboard. Ma ora siete in grado di inserire quasi tutto, in una dashboard a vostro piacimento.

Divertitevi a progettare la vostra dashboard e sentitevi liberi di condividere con noi le dashboard di cui siete molto orgogliosi!