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

Example of a graph.

Oltre al monitoraggio vero e proprio del sistema - ovvero il rilevamento dei problemi - Checkmk è un ottimo strumento per la registrazione e l'analisi dei diversi valori misurati che possono essere generati negli ambienti IT. Questi possono includere, ad esempio:

  • Prestazioni del sistema operativo (IO del disco, utilizzo della CPU e dello storage, ...)

  • Statistiche di rete (larghezza di banda utilizzata, tempi di trasferimento dei pacchetti, tassi di errore, ecc.)

  • Sensori ambientali (temperatura, umidità, pressione dell'aria, ...)

  • Statistiche di utilizzo (utenti loggati, richieste di pagine, sessioni, ...)

  • Indicatori di qualità delle applicazioni (es. tempi di risposta dei siti web).

  • Consumo e qualità dell'elettricità in un data center (correnti, tensioni, potenza, capacità delle batterie, ...)

  • Dati specifici di un'applicazione (es. lunghezza della coda delle e-mail da MS Exchange)

  • e molto altro ancora...

Checkmk registra tutte le misurazioni generate dal monitoraggio per un periodo (personalizzabile) di quattro anni, in modo da poter accedere non solo ai dati attuali, ma anche a quelli storici. Per tenere sotto controllo l'utilizzo dello spazio su disco, i dati vengono sempre più compressi man mano che invecchiano.

Le metriche stesse vengono rilevate dai singoli plug-in di controllo, che quindi determinano anche quali metriche vengono fornite.

L'interfaccia per la visualizzazione dei dati storici misurati è basata su HTML5 ed è identica nelle edizioni commerciali e in Checkmk Raw. Esclusivamente nelle edizioni commerciali puoi utilizzare funzioni avanzate come l'esportazione in PDF, le raccolte di grafici, i grafici personalizzati e la connessione a database di metriche esterni.

2. Accesso tramite la GUI

I valori misurati di un servizio sono presentati in tre moduli diversi nella GUI. Il cosiddetto Perf-O-Meter appare direttamente nelle tabelle di un host o di un servizio e fornisce una panoramica rapida e un confronto visivamente. Tuttavia, di solito sono limitati dallo spazio a una singola metrica selezionata. Per i file system, ad esempio, si tratta della percentuale di spazio utilizzato:

View of the localhost with Perf-O-Meter values.

Puoi visualizzare tutte le metriche di un servizio in un periodo di tempo, spostando il cursore sull'icona del grafico o facendo clic su di essa. Il valore @ a destra sopra il grafico indica l'intervallo di tempo in cui vengono recuperati e aggiunti nuovi dati. Ad esempio, @ 1m indica un intervallo di query di un minuto.

Gli stessi grafici sono facilmente reperibili anche nei dettagli di un host o di un servizio:

Graph of CPU utilization.

Una tabella con i valori misurati di tutte le metriche si trova anche nella pagina dei dettagli:

Excerpt of the service metrics.

3. Interazione con i grafici

Puoi influenzare in modo interattivo la visualizzazione dei grafici in vari modi:

  • Facendo un panning (o trascinando) con il pulsante del mouse tenuto premuto, puoi spostare il periodo di tempo (sinistra/destra) o scalare verticalmente (su/giù).

  • Utilizzando la rotella del mouse per ingrandire o rimpicciolire il periodo di tempo

  • Trascinando l'angolo in basso a destra del grafico per modificarne le dimensioni.

  • Cliccando su una posizione in un grafico si imposta un pin. In questo modo puoi identificare l'ora esatta di un punto e tutti i valori misurati per quel momento. L'ora esatta del punto viene salvata per ogni utente e visualizzata in tutti i grafici.

  • Cliccando sull'intestazione di una colonna puoi impostare i valori visualizzati come minimi, massimi o medi.

Visualization of possible interactions in a graph.

Se una pagina include più grafici, tutti i grafici si adeguano alle modifiche apportate al periodo di tempo e allo spillo: in questo modo i valori possono essere sempre confrontati tra i vari grafici. Allo stesso modo, la scalatura viene effettuata su tutti i grafici. Questi aggiustamenti, tuttavia, vengono visualizzati prima con l'aggiornamento della pagina (altrimenti potrebbe verificarsi un certo caos nella visualizzazione...).

Non appena utilizzi le funzioni interattive, come ad esempio l'impostazione di un pin, sullo schermo appare un grande simbolo di "pausa" e l'aggiornamento della pagina si interrompe per 60 secondi. Ciò significa che le modifiche apportate al grafico non vengono immediatamente annullate dall'aggiornamento. Il conto alla rovescia viene sempre riportato a 60 secondi quando torni ad essere attivo. Puoi anche mettere in pausa il conto alla rovescia cliccando sul numero. Il simbolo di pausa ti permette di terminare la pausa direttamente in ogni caso.

The pause icon in a graph.

4. Raccolte di grafici

Nelle edizioni commerciali, puoi utilizzare il menu, visualizzato in basso a sinistra del grafico, per incorporarlo in vari punti, ad esempio nei report o nei dashboard. La sezione del menu Add to graph collection è molto utile in questo caso. Puoi inserire in una raccolta di grafici tutti i grafici che desideri e successivamente confrontarli o esportarli in PDF. Per impostazione predefinita, ogni utente ha una raccolta di grafici denominata My graphs. Puoi aggiungerne facilmente di nuove e renderle visibili agli altri utenti. La procedura è esattamente la stessa delle visualizzazioni.

Puoi accedere alla tua raccolta di grafici tramite Monitor > Workplace > My graphs.La voce My graphs appare solo se hai effettivamente aggiunto almeno un grafico a quella raccolta.

Selection of the graph collection in the 'Monitor' menu.

Customize > Graphs > Graph collections apre la tabella che elenca tutte le tue raccolte di grafici e ti permette di aggiungerne di nuove, di modificare quelle esistenti, ecc.

5. Regolazioni dei grafici

Nelle edizioni commerciali puoi apportare piccole modifiche ai grafici integrati tramite Customize > Graphs > Graph tunings.Queste Graph tunings ti permettono, ad esempio, di modificare la scala dell'asse Y per un particolare grafico, tramite l'opzione Vertical axis scaling:

The settings for customizing a graph.

Questa modifica può essere limitata a specifiche occorrenze del grafico con Apply to, ad esempio nei dashboard. L'immagine seguente mostra una scalatura nell'intervallo da 0,5 a 0,9 in un report PDF:

View of a restricted scaling.

Inoltre, sono disponibili altre due opzioni: Graph visibility può essere utilizzato per mostrare o nascondere esplicitamente un grafico in determinati punti. E Vertical axis mirroring è utile per i grafici che mostrano i dati al di sopra e al di sotto della linea temporale (asse X), come nel caso del grafico sul throughput del disco mostrato di seguito: In questo caso i dati possono essere ribaltati verticalmente in modo che i dati precedentemente visualizzati sopra la linea temporale possano essere mostrati sotto e viceversa.

Nota: gli utenti possono impostare le unità di misura della temperatura dei grafici e dei Perf-O-Meter individualmente tramite il loro profilo. La personalizzazione generale dei riepiloghi e delle visualizzazioni dettagliate avviene tramite il set di regole del servizio Temperature.

6. Grafici personalizzati

Le edizioni commerciali forniscono un editor grafico con il quale puoi creare grafici completi e personalizzati, con formule di calcolo proprie. Con questo è ora possibile anche combinare metriche provenienti da host e servizi diversi in un unico grafico.

Puoi accedere ai grafici personalizzati tramite Customize > Graphs > Custom graphs.. Un metodo alternativo è quello della tabella delle metriche di un servizio. Per ogni metrica c'è un menu con una voce che permette di aggiungere la metrica a un grafico personalizzato:

Selection options for custom graphs.

L'immagine seguente mostra un elenco dei grafici personalizzati (qui con una sola voce):

Overview of custom graphs.

Per ogni grafico esistente sono possibili cinque operazioni:

Visualizzazione di questo grafico.

Crea una copia di questo grafico.

Eliminare questo grafico.

Aprire le proprietà di questo grafico. Qui, oltre al titolo del grafico, puoi anche definirne la visibilità per gli altri utenti. Tutte queste funzioni sono identiche a quelle delle visualizzazioni. Se hai delle domande su una delle impostazioni, puoi visualizzare l'aiuto contestuale con Help > Show inline help.

Qui puoi accedere al designer di grafici, in cui è possibile modificare il contenuto del grafico.

Nota che ogni grafico personalizzato, come le visualizzazioni, ha un ID unico. Questo ID viene utilizzato nei report e nelle dashboard. Se in seguito modifichi l'ID di un grafico, questi collegamenti saranno interrotti. Tutti i grafici che non sono hidden sono visualizzati per impostazione predefinita in Monitor > Workplace.

6.1. Il designer di grafici

General view of the graph designer.

Il designer di grafici è diviso in quattro sezioni:

6.2. Anteprima del grafico

Qui puoi vedere il grafico esattamente come verrà visualizzato dal vivo. Puoi anche utilizzare tutte le sue funzioni interattive.

6.3. Elenco delle metriche

Le curve incluse nei grafici possono essere modificate direttamente qui. La modifica del titolo di una curva in questo campo viene confermata con il tasto "Invio". Il sito Styledefinisce il modo in cui vengono visualizzati i valori nei grafici. Ecco le opzioni possibili:

Line

Il valore sarà disegnato come una linea

Area

Il valore sarà disegnato come un'area. Tieni presente che le curve posizionate più in alto nell'elenco hanno la priorità e possono coprire quelle successive. Se desideri combinare linee e aree, le aree devono sempre essere posizionate sotto le linee.

Stacked Area

Tutte le curve con questo stile saranno disegnate come aree e impilate in base ai loro valori (in pratica, aggiunte). Il limite superiore di questa pila simboleggia quindi la somma di tutte le curve del grafico.

Le altre tre opzioni -Mirrored Line, Mirrored Area eMirrored Stacked - sono simili, ma le curve vengono disegnate verso il basso a partire dalla linea dello zero. In questo modo è possibile ottenere uno stile di grafico come quello generalmente utilizzato da Checkmk nei grafici di input/output:

An input/output graph.

Nella colonna Actions troverai un pulsante per clonare ogni metrica che hai creato. In questo modo potrai copiare rapidamente le curve e sostituire semplicemente il nome host, ad esempio.

6.4. Aggiunta di metriche

Con il box Metrics puoi aggiungere nuove metriche ai grafici. Non appena inserisci un nome host valido nel primo campo, il secondo campo verrà riempito con un elenco dei servizi dell'host. Selezionando un servizio in questo elenco, il terzo campo verrà riempito con l'elenco delle metriche di questo servizio. Nel quarto e ultimo campo, seleziona la funzione di consolidamento. Qui le opzioni sono Minimum,Maximum e Average. Queste funzioni vengono utilizzate quando i dati archiviati negli RRD per il periodo di tempo specificato sono già stati compressi. In un intervallo in cui, ad esempio, è disponibile solo un valore per mezz'ora, puoi scegliere di tracciare il valore misurato originale minimo, massimo o medio per questo periodo di tempo.

Selection of options for a metric.

Allo stesso modo, puoi usare la funzione Add new scalar per visualizzare i valori di un servizio per WARN, CRIT, massimo e minimo come linee orizzontali.

View of a constant in a metric.

Puoi anche aggiungere una costante al grafico. Inizialmente verrà disegnata come una linea orizzontale. Le costanti sono talvolta necessarie per generare formule di calcolo. Maggiori informazioni in seguito.

6.5. Opzioni del grafico

Qui puoi trovare le opzioni che riguardano i grafici completi. Unit influenza le etichette degli assi e le legende. Viene impostata automaticamente quando viene aggiunta la prima metrica. Nota che è possibile, ma non consigliabile, aggiungere due metriche con unità di misura diverse a un singolo grafico.

Con Explicit vertical range puoi predefinire l'asse verticale di un grafico. L'asse Y viene normalmente scalato in modo che tutti i valori misurati nel periodo di tempo scelto rientrino esattamente nel grafico. Se ad esempio crei un grafico per i valori percentuali, puoi scegliere di visualizzare sempre i valori da 0 a 100. Tieni presente però che gli utenti (e tu stesso) possono in ogni caso scalare un grafico utilizzando il mouse, rendendo inefficace il posizionamento.

6.6. Calcolo con le formule

Il designer di grafici ti permette di combinare le singole curve utilizzando dei calcoli. L'esempio seguente mostra un grafico con due curve: Utilizzo della CPU, per User e System.

Supponiamo che per questo grafico tu sia interessato solo alla somma delle due curve. Per questo motivo seleziona i box di selezione per entrambe le curve. Una volta fatto questo, nel pannello Metrics sulla riga Operation on selected metricsappariranno alcuni nuovi pulsanti per tutte le operazioni ammissibili:

Additional options in the overview of a graph.

Cliccando su Sum le due curve verranno combinate in una nuova curva. Il colore di questa nuova curva sarà automaticamente un misto dei colori delle due curve di ingresso. La nuova curva sarà intitolata Sum of User, System. La formula utilizzata per il calcolo sarà mostrata nella colonna Formula. Inoltre apparirà un nuovo simbolo:

View of a graph for combined values.

Cliccando su di esso si ottiene un "annullamento", con il quale è possibile visualizzare nuovamente le singole curve originali. Altri suggerimenti per gli operatori di calcolo:

  • A volte è opportuno includere delle costanti - per esempio per sottrarre il valore di una curva dal numero 100.

  • Gli scalari possono essere utilizzati per i calcoli.

  • Le operazioni possono essere annidate in qualsiasi ordine.

7. InfluxDB, Graphite e Grafana

Se utilizzi una delle edizioni commerciali, puoi collegare database di metriche esterni in parallelo al grafico integrato in Checkmk e inviare le metriche a InfluxDB o Graphite.

In tutte le edizioni è anche possibile integrare Checkmk con Grafana e recuperare e visualizzare le metriche da Checkmk in Grafana.

8. Valori misurati storici nelle tabelle

8.1. Di cosa si tratta?

Se osservi i valori misurati in passato, a volte non ti interessano i dettagli esatti del loro andamento in un periodo di tempo. Potrebbe essere più interessante un riassunto approssimativo, ad es. l'utilizzo medio della CPU negli ultimi 7 giorni. In questo esempio, il risultato sarebbe semplicemente un numero in percentuale, ad esempio 88%.

In una tabella di host o servizi, puoi aggiungere colonne che rappresentano la media, il minimo, il massimo o altri riepiloghi di una metrica in un periodo di tempo. Questa funzione ti permette anche di creare report che ordinano in base a queste colonne, ad es. visualizzando l'elenco degli host ESXi che hanno avuto l'utilizzo più basso nel periodo selezionato.

Per visualizzare questi valori misurati in una visualizzazione, procedi come segue:

  1. Seleziona una visualizzazione esistente o creane una nuova.

  2. Aggiungi una colonna del tipo Services: Metric History.

8.2. Creare una visualizzazione

Per prima cosa devi creare una visualizzazione a cui aggiungere le colonne. Può essere una visualizzazione di host o di servizi. Per maggiori dettagli sulla creazione o la modifica delle visualizzazioni, consulta l'articolo sulle visualizzazioni.

Per il seguente esempio, abbiamo scelto la visualizzazione All hosts, che puoi aprire tramite Monitor > Hosts > All hosts. Dal menu, seleziona Display > Customize view. Questo ti porterà alla pagina Clone view, dove potrai personalizzare la visualizzazione a tuo piacimento.

Affinché l'originale All hosts non venga sovrapposto alla copia, scegli un nuovo ID e un nuovo titolo con il quale la visualizzazione verrà poi visualizzata nel menu Monitor.

Quindi (facoltativamente) rimuovi tutte le colonne che mostrano il numero di servizi nei diversi stati.

8.3. Aggiungere una colonna

Ora aggiungi una colonna del tipo Services: Metric History. Poiché si tratta di una colonna di servizi, nel caso di una visualizzazione host è necessario il tipo di colonna Joined column come prima selezione, che consente di visualizzare una colonna di servizi in una tabella host. Con una visualizzazione di servizi, è sufficiente aggiungere una nuova Column.

Options for adding an additional column.

In Metric seleziona il nome della metrica che deve essere valutata storicamente. Se non sei sicuro del nome della metrica, puoi trovarlo nei dettagli del servizio alla voce Service Metrics:

View of the service details.

Nell'esempio abbiamo scelto la metrica CPU utilization, che è anche lo stesso nome del servizio.

Con RRD consolidation è meglio scegliere lo stesso valore utilizzato sotto Aggregation function, poiché non avrebbe senso calcolare cose come "il minimo del massimo". Puoi scoprire il significato dell'opzione di selezione degli RRD nel capitolo successivo sull'organizzazione dei dati RRD.

Time range è il periodo di tempo nel passato che vuoi analizzare. Nell'esempio, si tratta degli ultimi sette giorni, che corrispondono esattamente a 168 ore.

Nell'esempio, scegliamo Util @ 7 days come Column title. Non sorprenderti se in seguito appare un campo con il nome Title: lo vedrai solo se viene utilizzato un Joined column, che permette sempre di specificare un titolo. Lascia semplicemente in bianco il secondo titolo.

Infine, nel campo Of Service, inserisci il nome del servizio a cui appartiene la metrica selezionata in precedenza, facendo attenzione all'esatta ortografia del servizio, comprese maiuscole e minuscole.

Dopo aver salvato, otterrai una nuova visualizzazione con l'aggiunta di una colonna che mostra la percentuale di utilizzo della CPU negli ultimi sette giorni.

Host overview with the additional column for CPU utilization

Note

  • Naturalmente puoi anche aggiungere più colonne in questo modo, ad es. per metriche diverse o periodi di tempo diversi.

  • Per gli host che non hanno la metrica o il servizio in questione, la colonna rimane vuota.

  • Se lavori con una tabella di servizi, non hai bisogno di Joined Column. Tuttavia, puoi visualizzare solo un servizio per host in ogni riga.

9. I database Round Robin (RRD)

Checkmk memorizza tutti i valori misurati in database appositamente sviluppati, i cosiddetti Round Robin Database (RRD). In questo caso è possibile utilizzare l'RRDtool di Tobi Oetiker, molto popolare e ampiamente utilizzato per i progetti open source.

Gli RRD offrono importanti vantaggi per l'archiviazione dei valori misurati rispetto ai classici database SQL:

  • Gli RRD archiviano i dati misurati in modo molto compatto ed efficiente.

  • Lo spazio utilizzato per ogni metrica sull'unità è statico. Gli RRD non possono né crescere né ridursi. Lo spazio su disco richiesto può essere ben pianificato.

  • Il tempo di CPU e disco per ogni aggiornamento è sempre lo stesso. Gli RRD sono (virtualmente) in grado di funzionare in tempo reale, in modo che le riorganizzazioni non causino ingorghi di dati.

9.1. Organizzazione dei dati negli RRD

Per impostazione predefinita Checkmk è configurato in modo da registrare l'andamento di ogni metrica in un periodo di tempo di quattro anni. La risoluzione di base utilizzata è di un minuto. Questo ha senso in quanto l'intervallo di controllo è preimpostato a un minuto, in modo da ricevere nuovi dati misurati da ogni servizio esattamente una volta al minuto.

Ovviamente, memorizzare un valore al minuto per un periodo di quattro anni richiederà un'enorme quantità di spazio sull'unità (anche se gli RRD richiedono solo 8 byte per ogni valore misurato). Per questo motivo, nel tempo i dati vengono compressi. La prima compressione avviene a 48 ore. A partire da questo momento verrà memorizzato un solo valore ogni cinque minuti. Altre fasi vengono implementate dopo 10 giorni e 90 giorni:

Fase Durata Risoluzione Valori misurati

1

2 giorni

1 minuto

2880

2

10 giorni

5 minuti

2880

3

90 giorni

30 minuti

4320

4

4 anni

6 ore

5840

La domanda più ovvia è: come consolidare cinque valori in uno solo? Per questo sono disponibili le funzioni di consolidamento -massimo,minimo e medio. Ciò che è significativo nella pratica dipende dall'applicazione o dal punto di vista della visualizzazione. Se, ad esempio, vuoi monitorare le fluttuazioni della temperatura in un data center per un periodo di quattro anni, la temperatura massima registrata è probabilmente la più interessante. Per le tariffe di accesso di un'applicazione, invece, potrebbe essere più interessante una media.

Per ottenere la massima flessibilità per i calcoli successivi, gli RRD di Checkmk sono semplicemente preimpostati per memorizzare tutti e tre i valori contemporaneamente: minimo, massimo e medio. Per ogni livello di compressione e funzione di consolidamento, l'RRD include un tipo di archiviazione ad anello, il cosiddetto Round Robin Archive (RRA). Nella struttura standard ci sono 12 RRA. La struttura standard di Checkmk richiede quindi 384.952 byte per metrica. Questo numero deriva da: 2880 + 2880 + 4320 + 5840 punti di misurazione, per tre funzioni di consolidamento, per 8 byte per valore misurato, per un totale di 382.080 byte. Aggiungendo l'intestazione del file di 2872 byte si ottiene la dimensione finale di 384.952 byte citata sopra.

Un interessante schema alternativo potrebbe essere, ad esempio, quello di memorizzare un valore al minuto per un intero anno. Questo metodo avrebbe un piccolo vantaggio: gli RRD avrebbero sempre la risoluzione ottimale e potrebbero quindi fare a meno del consolidamento e generare solo un valore medio, ad esempio. Calcolando 365 x 24 x 60 valori misurati, per 8 byte, il risultato è un totale di quasi 4 MB per metrica. In questo modo, anche se gli RRD hanno un fabbisogno di spazio di archiviazione decuplicato, l'"I/O su disco" è in realtà ridotto! Il motivo è che non è più necessario memorizzare e aggiornare dodici RRA separati, ma ne basta uno solo.

9.2. Personalizzazione della struttura RRD

Se lo schema di archiviazione predefinito non ti soddisfa, può essere modificato tramiteset di regole (e sono possibili anche versioni diverse per host o servizi). Il set di regole desiderato può essere trovato più facilmente tramite la ricerca delle regole (quindi il menu Setup ) e una volta lì è sufficiente digitare RRD. Qui troverai il set di regoleConfiguration of RRD databases of services. Esiste anche un set di regole simile per gli host, ma questi ultimi hanno valori misurati solo in casi eccezionali. L'immagine seguente mostra la regola RRD con le sue impostazioni predefinite:

Rule settings for an RRD.

Nei campi Consolidation functions e RRA configuration puoi definire e impostare il numero e la dimensione delle fasi di compressione pronte per essere utilizzate dai consolidamenti. Il campo Step (precision) definisce la risoluzione in secondi e di regola è di 60 secondi (un minuto). Per i servizi con un intervallo di controllo inferiore al minuto può essere ragionevole impostare questo numero più basso. Nota però che il valore del campo Number of steps aggregated into one data point non rappresenterà più i minuti, ma l'intervallo di tempo impostato in Step (precision).

Ogni modifica alla struttura dell'RRD ha inizialmente effetto solo sugli RRDappena creati, cioè sugli host o sui servizi appena incorporati nel monitoraggio. Puoi anche permettere a Checkmk di ristrutturare gli RRD esistenti. Questo avviene con il comando cmk --convert-rrds, per il quale è sempre disponibile l'opzione -v (verbosa). Checkmk ispezionerà tutti gli RRD esistenti e li ristrutturerà come necessario nel formato di destinazione definito.

Importante: per garantire l'integrità dei dati contenuti negli RRD, arresta sempre il tuo sito (con omd stop) prima di convertire gli RRD esistenti con cmk --convert-rrds.

OMD[mysite]:~$ cmk -v --convert-rrds
myserver012:
   Uptime (CMC).....converted, 376 KB -> 159 KB
   Filesystem / (CMC).....converted, 1873 KB -> 792 KB
   OMD mysite apache (CMC).....converted, 14599 KB -> 6171 KB
   Memory (CMC).....converted, 14225 KB -> 6012 KB
   Filesystem /home/user (CMC).....converted, 1873 KB -> 792 KB
   Interface 2 (CMC).....converted, 4119 KB -> 1741 KB
   CPU load (CMC).....converted, 1125 KB -> 475 KB

Il comando è abbastanza intelligente da riconoscere gli RRD che hanno già la struttura desiderata:

OMD[mysite]:~$ cmk -v --convert-rrds
myserver345:
   Uptime (CMC).....uptodate
   Filesystem / (CMC).....uptodate
   OMD mysite apache (CMC).....uptodate
   Memory (CMC).....uptodate
   Filesystem /home/user (CMC).....uptodate
   Interface 2 (CMC).....uptodate
   CPU load (CMC).....uptodate

Se il nuovo formato ha una risoluzione maggiore o funzioni di container aggiuntive, i dati esistenti verranno interpolati al meglio in modo che gli RRD contengano i valori più significativi possibili. È tuttavia ovvio che se, ad esempio, invece di 2 giorni si richiedono 5 giorni con valori a intervalli di un minuto, l'accuratezza dei dati esistenti non può essere aumentata retroattivamente.

9.3. Il formato di archiviazione RRD

La regola descritta in precedenza ha un'altra impostazione: RRD storage format. Con questa puoi scegliere tra due metodi che Checkmk può utilizzare per creare gli RRD. Il formato One RRD per host/service (formato Checkmk, in breve) memorizza tutte le metriche di un host o di un servizio in un unico file RRD. Questo permette di scrivere in modo più efficiente i dati su un'unità, in modo che un set completo di metriche possa sempre essere scritto in un'unica operazione. Queste metriche vengono poi collocate in blocchi di memoria vicini, riducendo così il numero di blocchi che devono essere scritti sul disco.

Se le tue istanze Checkmk sono state create con un'edizione commerciale in una versione precedente a 1.2.8, potresti voler verificare se i dati misurati sono stati convertiti nel formato attuale, molto più efficiente. Se i dati sono ancora archiviati in formato PNP, puoi convertirli nel formato Checkmk applicando una regola come mostrato nel set di regole precedente.

Anche in questo caso è necessario il comando cmk --convert-rrds e, ancora una volta, interrompi sempre il sito prima di convertire gli RRD esistenti.

OMD[mysite]:~$ cmk -v --convert-rrds
myhost123:
   Uptime PNP -> CMC..converted.
  WARNING: Dupliate RRDs for stable/Uptime. Use --delete-rrds for cleanup.
   OMD mysite apache PNP -> CMC..converted.
  WARNING: Dupliate RRDs for stable/OMD mysite apache. Use --delete-rrds for cleanup.
   fs_/home/user PNP -> CMC..converted.
  WARNING: Dupliate RRDs for stable/fs_/home/user. Use --delete-rrds for cleanup.
   OMD mysite apache PNP -> CMC..converted.
  WARNING: Dupliate RRDs for stable/OMD mysite apache. Use --delete-rrds for cleanup.
   Memory PNP -> CMC..converted.
...

Come puoi vedere dall'avviso, Checkmk all'inizio lascia inalterati i file esistenti. Questo ti permette, in caso di dubbio, di tornare al formato originale dei dati, poiché non è possibile effettuare una conversione in senso inverso. L'opzione--delete-rrds garantisce che questa copia non venga creata o che venga eliminata in seguito. Puoi facilmente eseguire l'eliminazione manualmente in un secondo momento utilizzando nuovamente il comando:

OMD[mysite]:~$ cmk -v --convert-rrds --delete-rrds

9.4. Il daemon della cache RRD (rrdcached)

Per ridurre (drasticamente) il numero di accessi in scrittura all'unità disco, è possibile utilizzare un servizio ausiliario: il daemon della cache RRD (rrdcached). Si tratta di uno dei servizi avviati all'avvio di un sito:

OMD[mysite]:~$ omd start
Temporary filesystem already mounted
Starting agent-receiver...OK
Starting mkeventd...OK
Starting liveproxyd...OK
Starting mknotifyd...OK
Starting rrdcached...OK
Starting cmc...OK
Starting apache...OK
Starting dcd...OK
Starting redis...OK
Initializing Crontab...OK

Tutti i nuovi valori misurati per gli RRD vengono inviati dal Checkmk Micro Core (edizioni commerciali) o dall'NPCD (Checkmk Raw) al demone rrdcached. Questo non scrive i dati direttamente negli RRD, ma li conserva nella memoria principale per poterli scrivere successivamente come raccolta nei rispettivi RRD. In questo modo il numero di accessi in scrittura all'unità disco (o alla SAN!) si riduce notevolmente.

Per evitare che i dati vadano persi in caso di riavvio, gli aggiornamenti vengono scritti anche nei file di log del giornale. Anche in questo caso si tratta di accessi in scrittura, ma poiché i dati sono disposti in sequenza, generano pochi IO.

Per poter lavorare in modo efficiente, il demone della cache RRD ha bisogno di molta memoria principale. La quantità necessaria dipende dal numero di RRD e dalla durata della cache dei dati. Quest'ultimo aspetto può essere definito nel file~/etc/rrdcached.conf. L'impostazione standard prevede la memorizzazione per 7200 secondi (due ore) - questo valore può essere personalizzato dall'utente - più un intervallo casuale di 0-1800 secondi. Questo ritardo randomizzato per ogni RRD evita la scrittura "a impulsi" e assicura che l'IO sia distribuito regolarmente nel tempo:

~/etc/rrdcached.conf
# Tuning settings for the rrdcached. Please refer to rrdcached(1) for
# details. After changing something here, you have to do a restart
# of the rrdcached (reload is not sufficient)

# Data is written to disk every TIMEOUT seconds. If this option is
# not specified the default interval of 300 seconds will be used.
TIMEOUT=3600

# rrdcached will delay writing of each RRD for a random
# number of seconds in the range [0,delay). This will avoid too many
# writes being queued simultaneously. This value should be no
# greater than the value specified in TIMEOUT.
RANDOM_DELAY=1800

# Every FLUSH_TIMEOUT seconds the entire cache is searched for old values
# which are written to disk. This only concerns files to which
# updates have stopped, so setting this to a high value, such as
# 3600 seconds, is acceptable in most cases.
FLUSH_TIMEOUT=7200

# Specifies the number of threads used for writing RRD files. Increasing this
# number will allow rrdcached to have more simultaneous I/O requests into the
# kernel. This may allow the kernel to re-order disk writes, resulting in better
# disk throughput.
WRITE_THREADS=4

Attiva una modifica alle impostazioni di questo file con:

OMD[mysite]:~$ omd restart rrdcached
Stopping rrdcached...waiting for termination....OK
Starting rrdcached...OK

9.5. File e directory

Ecco una panoramica dei file e delle directory più importanti associate ai valori misurati e agli RRD (tutti quelli relativi alla directory home del sito):

Nome del percorso Descrizione

~/var/check_mk/rrd

RRD in formato Checkmk

~/var/pnp4nagios/perfdata

RRD nel vecchio formato (PNP)

~/var/rrdcached

File di log del daemon della cache RRD

~/var/log/rrdcached.log

File di log del daemon della cache RRD

~/var/log/cmc.log

File di log del core Checkmk (contiene messaggi di errore sugli RRD, se applicabile)

~/etc/rrdcached.conf

Impostazioni per il demone della cache RRD

In questa pagina