Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduzione

grafana logo

Con il suo sistema di grafici integrato, Checkmk dispone di un potente strumento per la registrazione e la visualizzazione delle metriche. Tuttavia, può essere utile collegare Grafana come sistema di grafici esterno, ad esempio quando si utilizza già Grafana e si desidera unire i dati di Checkmk con quelli di altri sistemi in dashboard condivise.

A partire da Grafana 8.x, è possibile rivolgersi direttamente a Checkmk come fonte di dati in tutte le edizioni e visualizzare singole metriche o interi grafici predefiniti in Checkmk. Inoltre, puoi creare dinamicamente i tuoi grafici utilizzando espressioni regolari per definire un gruppo di host e servizi da cui includere determinate metriche nel grafico.

Questo articolo descrive come recuperare e visualizzare le metriche di Checkmk in Grafana. Le schermate qui utilizzate sono state create con Grafana 10.1; le versioni precedenti differiscono leggermente nell'interfaccia utente. Istruzioni dettagliate su come utilizzare e configurare Grafana sono disponibili nella documentazione di Grafana Labs.

Il plug-in di Grafana è stato sviluppato indipendentemente da Checkmk e viene mantenuto nel proprio repository Github. Questo articolo descrive l'installazione del plug-in nella versione 3.1, che interagisce con Checkmk 2.1.0 e 2.2.0. Poiché il plug-in viene installato in Grafana, non ha senso distribuirlo insieme a Checkmk.

2. Installazione del plug-in in Grafana

A seconda del tipo di installazione del tuo server Checkmk e della tua edizione di Checkmk, sono disponibili diversi metodi per installare il plug-in. L'unica restrizione è che gli utenti della soluzione Grafana Cloud devono utilizzare almeno Checkmk Cloud, cioè Checkmk Cloud o Checkmk MSP, e attivare il plug-in tramite la raccolta ufficiale di plug-in di Grafana. Le installazioni on-premises di Grafana possono essere connesse a tutte le edizioni di Checkmk.

2.1. Installazione tramite linea di comando (da Checkmk Cloud in poi, server Grafana proprio)

Questo tipo di installazione richiede almeno l'utilizzo di Checkmk Cloud. Se Grafana opera su un proprio server, l'installazione dalla raccolta di plug-in di Grafana è possibile tramite la linea di comando:

root@linux# grafana-cli plugins install checkmk-cloud-datasource

Riavvia il servizio server di Grafana:

root@linux# systemctl restart grafana-server

Il plug-in sarà quindi disponibile nell'interfaccia di Grafana e potrà essere attivato e configurato.

2.2. Installazione tramite la GUI di Grafana Cloud (da Checkmk Cloud in poi, Grafana Cloud)

Per prima cosa accedi all'istanza di Grafana in cui vuoi installare la fonte di dati Checkmk. Poi apri la pagina della fonte di dati nella raccolta di plug-in di Grafana. Nella scheda Installation, seleziona l'istanza di Grafana che deve ricevere il plug-in e poi clicca sul pulsante Install. Potrebbero essere necessari alcuni minuti prima che il plug-in sia disponibile nell'interfaccia web dell'installazione di Grafana.

2.3. Installazione da un archivio zip (tutte le edizioni, proprio server Grafana)

Nella pagina dei rilasci del repository GitHub troverai due varianti del plug-in sotto forma di archivio zip:

  • La variante firmata checkmk-cloud-datasource-X.Y.Z.zip menzionata sopra, che può essere utilizzata solo a partire da Checkmk Cloud.

  • Una variante che utilizza il vecchio schema di denominazione tribe-29-checkmk-datasource-X.Y.Z.zip, per tutte le edizioni da Checkmk 2.1.0 in poi.

Basta scaricare l'ultima versione come file zip e copiarla, ad esempio con scp, sul server di Grafana.

grafana download plugin

Invece di usare il browser, puoi ovviamente caricare il file direttamente dalla linea di comando. Tieni presente che per farlo devi conoscere la versione corrente: nell'esempio seguente, scriviamo la versione nella variabile $plugvers.

root@linux# plugvers='3.1.1'
root@linux# wget https://github.com/Checkmk/grafana-checkmk-datasource/releases/download/v${plugvers}/tribe-29-checkmk-datasource-${plugvers}.zip

Successivamente, decomprimi l'archivio zip:

root@linux# unzip tribe-29-checkmk-datasource-${plugvers}.zip

Crea una directory plug-in, se non esiste già, e fai in modo che l'utente Linux sotto il cui ID vengono eseguiti i processi di Grafana (di solito grafana) ne sia il proprietario:

root@linux# mkdir -p /var/lib/grafana/plugins
root@linux# chown grafana:grafana /var/lib/grafana/plugins

Sposta la cartella risultante nella directory dei plug-in di Grafana, che di solito è il percorso /var/lib/grafana/plugins/:

root@linux# mv -v tribe-29-checkmk-datasource /var/lib/grafana/plugins/tribe-29-checkmk-datasource

Cambia la proprietà all'utente di Grafana:

root@linux# chown -R grafana:grafana /var/lib/grafana/plugins/tribe-29-checkmk-datasource

L'installazione tramite clonazione dell'archivio Git (come descritto nelle versioni precedenti di questo articolo) non è più possibile. Se vuoi partecipare allo sviluppo del plug-in, leggi la Guida allo sviluppo.

Consentire plug-in non firmati

A partire da Grafana 8.0, non è più possibile integrare plug-in esterni se non sono stati firmati. Questo vale anche per il plug-in Checkmk, per cui è necessario un ulteriore passaggio.

Per farlo, modifica il file di configurazione /etc/grafana/grafana.ini nella sezione [plugins]. Modifica la riga ;allow_loading_unsigned_plugins = come segue, assicurandoti di rimuovere il punto e virgola all'inizio della riga:

/etc/grafana/grafana.ini
[plugins]
allow_loading_unsigned_plugins = tribe-29-checkmk-datasource

Con questa impostazione, aggiungi un'eccezione per questo plug-in. Se utilizzi Grafana in un container (Docker), ci sono diversi modi per apportare modifiche alla configurazione di Grafana. Se sono necessarie solo piccole modifiche alla configurazione, queste possono essere effettuate tramite le variabili d'ambiente:

user@host:~$ sudo docker run -d \
-e GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=tribe-29-checkmk-datasource \
-p 3000:3000 --name grafana \
-v grafana-plugins:/var/lib/grafana/plugins \
-v grafana-db:/var/lib/grafana grafana/grafana

Se sono necessarie importanti personalizzazioni del file INI o dell'intero /etc/grafana/, collega il file INI personalizzato al container o crea un volume che mappi alla directory nel container (/etc/grafana/). Di seguito è riportato un esempio di come collegare il file INI con --mount. Nota che questo è solo un esempio e probabilmente non si applica direttamente al tuo ambiente:

user@host:~$ sudo docker run -d \
--mount type=bind,source=/home/user/grafana/grafana.ini,target=/etc/grafana/grafana.ini \
-p 3000:3000 --name grafana \
-v grafana-plugins:/var/lib/grafana/plugins \
-v grafana-db:/var/lib/grafana grafana/grafana

Riavviare il servizio Grafana

Dopo aver installato il plug-in, aggiornato o modificato il file di configurazione, riavvia il servizio del server Grafana:

root@linux# systemctl restart grafana-server

Il plug-in sarà quindi disponibile nell'interfaccia di Grafana e potrà essere attivato e configurato.

3. Creazione di un utente Grafana in Checkmk

La connessione a Grafana richiede un utente sul lato Checkmk che abbia sufficienti permessi e che sia autenticato tramite una password di automazione(automation secret) anziché una password. I normali utenti guest o di monitoraggio non sono sufficienti e, per motivi di sicurezza, non dovresti usare un amministratore.

Il modo più semplice per creare un utente "adatto" è clonare il ruolo dell'utente ospite (guest) e dotarlo dell'autorizzazione aggiuntiva User management (consentire l'accesso in lettura alle informazioni dell'utente). Se basi il ruolo dell'utente di Grafana su un altro ruolo, assicurati di autorizzare l'autorizzazione See all host and services oltre a User management.

Una volta creato il ruolo, crea uno o più utenti di Grafana con una password di automazione(automation secret). Puoi limitare ulteriormente le autorizzazioni assegnate al ruolo in un secondo momento, ad esempio non è richiesto l'accesso alla BI o alla Console degli Eventi.

4. Attivazione e configurazione del plug-in

Una volta installati i file necessari, puoi attivare il plug-in in Grafana. A tal fine, passa alla configurazione e seleziona l'opzione Data sources. Qui puoi aggiungere una nuova fonte di dati utilizzando il pulsante Add data source:

grafana plugins overview

La voce Checkmk si trova nella categoria Others:

grafana plugin cmk

Il modello per questa fonte di dati è piuttosto semplice: inserisci l'URL del tuo sito, il tipo di edizione e l'utente dell'istanza Checkmk che hai appena creato per Grafana.Importante: se utilizzi Checkmk in un ambiente distribuito, inserisci qui l'URL della tua istanza centrale:

grafana plugin config

Se vuoi collegare più istanze Checkmk, puoi assegnare un nome univoco a ogni singola connessione, altrimenti lascia il nome predefinito Checkmk o Checkmk for Cloud Edition.

Una volta salvata la connessione con il pulsante Save & test, sarà disponibile come fonte di dati in Grafana e potrai configurare i tuoi primi grafici.

5. Creare grafici

5.1. Creazione di un dashboard vuoto

Sotto Home > Dashboards troverai un menu a discesa contrassegnato da un segno più. Clicca su New dashboard per creare un nuovo dashboard:

grafana new dashboard

5.2. Visualizzazione di una singola metrica dell'host

Il dashboard più semplice mostra un singolo grafico per il servizio di un host. Questo può anche essere la metrica di un check locale per il quale non esistono grafici già pronti. Crea una nuova visualizzazione in un dashboard esistente o in quello che hai appena creato. Per prima cosa seleziona Add visualization qui:

grafana dashboard addpanel

La creazione di una visualizzazione ti porta alla selezione dell'origine dei dati. Dopo aver selezionato Checkmk, ti trovi direttamente nella modalità di modifica della Query per il pannello appena creato. Un pannello è un container per una visualizzazione.

L'accesso ai dati da visualizzare differisce leggermente tra Checkmk Raw e le edizioni commerciali: in Checkmk Raw lavori con menu predefiniti - per sito, nome host, servizio e così via. Nelle edizioni commerciali, hai la possibilità di definire cascate di filtri. Questo permette una selezione molto dettagliata, anche utilizzando espressioni regolari. Il semplice esempio che segue è stato scelto in modo da poterlo eseguire con tutte le edizioni.

Per prima cosa seleziona Site, quindi filtra per un Hostname nel monitoraggio. Per il primo test, utilizza qualsiasi host che utilizzi l'agente Windows o Linux. Seleziona Check_MK come Service. Imposta il tipo di Aggregation su Maximum. Graph type disponibile per la selezione è Single metric o Predefined graph:Predefined graphs prende le metriche da Checkmk, che possono contenere anche grafici combinati. I nostri screenshot qui mostrano Single metric, che contiene il tempo totale di esecuzione dell'agente (Time spent waiting for Checkmk agent).

grafana dashboard single config
Selezione delle metriche tramite filtri nelle edizioni commerciali
grafana dashboard single config cre
Selezione delle metriche tramite menu predefiniti in Checkmk Raw.

Grafana visualizza direttamente il risultato. Con il pulsante Apply puoi applicare il grafico senza salvare il dashboard. Con Save ti viene richiesto di inserire un titolo per il nuovo Dashboard e puoi quindi salvare il dashboard appena creato.

grafana dashboard single view
Nuovo dashboard con un nome significativo

5.3. Visualizzazione di un grafico predefinito da Checkmk

Gli sviluppatori di Checkmk hanno già raccolto molte metriche correlate in grafici comuni per facilitare agli utenti la panoramica dei vari aspetti di una singola risorsa. Puoi visualizzare le metriche di questi grafici già pronti direttamente in Grafana.

La procedura è inizialmente la stessa spiegata nella sezione precedente. Tuttavia, per completare il processo, seleziona la voce Graph type Predefined graph e Predefined graph per il servizio da utilizzare.

Se ricevi un messaggio di errore che indica che la selezione di metriche combinate con più di 200 elementi non è consentita, utilizza dei filtri aggiuntivi per limitare la selezione. In caso di dubbio, sposta i filtri che limitano significativamente il risultato all'inizio dell'insieme.

grafana dashboard predefined config

Una volta soddisfatti della selezione, clicca sul pulsante Apply. Il grafico sarà ora disponibile nel dashboard selezionato.

grafana dashboard predefined view

5.4. Creare grafici complessi

Soprattutto in un cluster dinamico, spesso vorrai essere in grado di seguire l'intero andamento di una metrica su tutti gli host partecipanti senza dover personalizzare un grafico ogni volta che viene aggiunto o rimosso un nuovo nodo. Per ottenere questo risultato, esistono diverse opzioni per adattare dinamicamente i grafici.

La prima opzione è quella di filtrare per Host Labels o Host Tags invece di selezionare i singoli host. Un'altra opzione è quella di utilizzare le espressioni regolari. Puoi applicare le espressioni regolari agli host o ai servizi. Nell'esempio seguente, filesystem corrisponde a tutti i servizi che contengono filesystem, indipendentemente dal numero di file system montati dall'host.

grafana dashboard combined config

Con filesystem.*nvme si restringe la selezione a tutti i file system sulle unità NVMe, indipendentemente dal tipo di file system utilizzato, poiché la parte della stringa tra filesystem e nvme può essere arbitraria.

Oltre alle opzioni di filtro estese, usa Aggregation per determinare la visualizzazione delle metriche nel grafico e Graph per determinare quale grafico deve essere usato come riferimento. Nota che le metriche di un host/servizio vengono visualizzate solo se ha anche il grafico selezionato. Un grafico potrebbe quindi avere il seguente aspetto, ad esempio:

grafana dashboard combined view

5.5. Rinominare usando le espressioni regolari

Nella modalità di modifica di ogni pannello, troverai una scheda Transform. Puoi utilizzare il sotto elemento Rename by regex disponibile qui per riordinare i nomi delle metriche o sopprimere le informazioni non necessarie. L'esempio seguente cerca due gruppi di caratteri separati da una virgola seguita da uno spazio, li scambia e mette esplicitamente Service e Host in testa:

grafana series renaming regex

Le variabili $1 e $2 corrispondono alle stringhe "catturate" nella riga precedente(gruppi di corrispondenza o gruppi di cattura). Grafana consente anche gruppi di corrispondenza annidati. La sezione corrispondente nell'articolo sulle espressioni regolari fornisce una panoramica delle possibilità disponibili per questi gruppi.

6. Rendere i grafici più flessibili utilizzando le variabili

Puoi utilizzare le variabili per aggiungere in modo flessibile i grafici ai dashboard. In questo modo puoi determinare l'host di una metrica specifica tramite una selezione a discesa oppure puoi utilizzare le variabili per aggiungere simultaneamente i grafici di più host a un dashboard. Questo articolo non può e non deve sostituire la documentazione di Grafana. In primo luogo, qui vogliamo fornire una panoramica delle possibili applicazioni e un'introduzione al tema.

Le variabili possono essere create a partire da query. In questo caso, puoi filtrare su siti, host o servizi. In alternativa, c'è anche la possibilità di definire quantità o campi di testo libero, che ti permettono di creare un numero qualsiasi di filtri.

6.1. Creare variabili

Ogni variabile è una proprietà di un dashboard. Deve essere creata nelle impostazioni del dashboard e può essere utilizzata solo all'interno di questo dashboard. Poiché la query richiede la configurazione più estesa, ne mostreremo l'uso nel nostro esempio.

Le proprietà rilevanti per una variabile sono il suo tipo e il suo nome; tutte le altre proprietà sono utilizzate solo a scopo di chiarezza nella dashboard. Il nome deve differenziare le variabili. Quindi, se intendi utilizzare diverse variabili per selezionare host da diversi sottoinsiemi, utilizza un nome che faccia riferimento a questo insieme invece di host come nell'esempio, ad esempio host_from_linuxservers.

grafana variable name
Creazione della variabile host nelle proprietà della dashboard

Quando selezioni una fonte di dati, assicurati che sia selezionata una connessione Checkmk. Puoi restringere ulteriormente il tipo di oggetto selezionato, ad esempio con espressioni regolari. Tutti i filtri utilizzati vengono valutati sul server Checkmk. Al contrario, i campi Regex e Sort vengono valutati da Grafana.

grafana variable query
I filtri sono utilizzati per definire quali valori può assumere la variabile

I due checkbox per Selection options in fondo alla pagina possono essere utilizzati facoltativamente in un secondo momento, a seconda delle esigenze. Se necessario, puoi modificare queste impostazioni in qualsiasi momento; per il primo test, lascia entrambe le impostazioni predefinite (vuote). Salva le variabili usando Save dashboard quando hai effettuato tutte le impostazioni.

6.2. Usare le variabili per i grafici

Ora puoi inserire le variabili assegnate nei campi appropriati per creare un grafico flessibile. Le variabili possono essere utilizzate anche nel titolo del grafico.

grafana variable use
I nomi delle variabili sono accessibili, come in alcune shell, tramite il prefisso "dollaro".

Nel dashboard viene visualizzata una selezione a discesa per ogni variabile, che puoi utilizzare per impostare i valori delle variabili (host, servizi...) che vuoi visualizzare nel dashboard. Se hai attivato la selezione multipla, puoi impostare l'opzione Repeat by variable nelle impostazioni del pannello per visualizzare il pannello per ogni valore della variabile selezionata.

grafana variable panel
Selezione a discesa degli host di riferimento con l'opzione di selezione multipla

7. File e directory

I seguenti file e directory sono rilevanti in un server Grafana self-hosted.

Percorso del file Descrizione

/var/lib/grafana/plugins/

Qui Grafana cerca i (nuovi) plug-in. Ogni plug-in ha una propria sottodirectory. Il plug-in di Checkmk dovrebbe quindi essere collocato qui.

/etc/grafana/

Directory di configurazione di Grafana.

/etc/grafana/grafana.ini

Il file di configurazione centrale di Grafana. Qui puoi definire quali plug-in non firmati sono consentiti.

In questa pagina