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. Il principio di base
1.1. Uno sguardo al passato
Poiché Checkmk effettua il monitoraggio continuo di tutti gli host e i servizi a intervalli regolari, fornisce una base eccezionale per la successiva valutazione della loro disponibilità. E non solo: è anche possibile calcolare per quale percentuale di un determinato periodo di tempo un oggetto si trovava in uno o più stati specifici, con quale frequenza si è verificato tale stato, la durata del suo arresto più lungo e molto altro ancora.
Ogni calcolo si basa su una selezione di oggetti e su un determinato periodo di tempo nel passato. Checkmk ricostruisce quindi, all’interno di questo periodo di tempo, una sequenza cronologica degli stati di tutti gli oggetti selezionati. Per ogni stato, i tempi vengono sommati e visualizzati in una tabella. Questa tabella può, ad esempio, mostrare che un determinato servizio ha registrato stati del 99,95% OK e dello 0,005% WARN nel periodo di tempo definito.
Quando esegue questi calcoli, Checkmk tiene correttamente conto anche di fattori quali i tempi di manutenzione programmati, i tempi di manutenzione dei servizi, i periodi di tempo non monitorati e altri fattori speciali, consentendo il riepilogo degli stati e l'ignorare le "brevi interruzioni". Sono disponibili anche numerose opzioni di personalizzazione. È inoltre possibile l'utilizzo di aggregazioni BI.
1.2. Stati possibili
Grazie all’inclusione dei tempi di manutenzione programmati e di stati speciali simili, in teoria esiste un gran numero di possibili combinazioni di stati, ad esempio: CRIT + In Tempo di manutenzione programmata + In Tempo di servizio + Irregolare. Poiché la maggior parte di queste combinazioni non è molto utile, Checkmk le riduce a un numero limitato e, nel farlo, procede secondo un principio di priorità. Dato che nell'esempio sopra il servizio era in un periodo di tempo di manutenzione programmata, si applica semplicemente lo stato "in scheduled downtime" e lo stato effettivo viene ignorato. Questo riduce l'elenco degli stati possibili a quanto segue:

Questo grafico mostra l'ordine in cui gli stati vengono classificati per priorità. Più avanti mostreremo come alcuni stati possano essere ignorati o combinati. Ecco di nuovo gli stati, in dettaglio:
| Stato | Abbreviazione | Descrizione |
|---|---|---|
unmonitored |
N/A |
Periodi di tempo durante i quali l'oggetto non era monitorato. Ci sono due possibili ragioni per questo: l'oggetto non era nella configurazione del monitoraggio, oppure il monitoraggio stesso non era in esecuzione durante il periodo di tempo specificato. |
out of service period |
L'oggetto era al di fuori del suo periodo di servizio |
|
in scheduled downtime |
Downtime |
L'oggetto era in un periodo di tempo di manutenzione programmata |
on down host |
H.Down |
Questo stato è disponibile solo per i servizi — quando l’host del servizio è (DOWN). In questo momento non è possibile effettuare il monitoraggio del servizio. Per la maggior parte dei servizi questo ha lo stesso significato di un servizio in stato di “CRIT” — ma non per tutti! Ad esempio, lo stato di un (File system -Check) è certamente indipendente dall’accessibilità dell’host. |
flapping |
Fasi in cui lo stato è " |
|
UP DOWN UNREACH |
Monitoraggio degli stati di monitoraggio degli host |
|
OK WARN CRIT SCONOSCIUTO |
Stati di monitoraggio per servizi e aggregazioni BI |
2. Ricerca della disponibilità
2.1. Dalla visualizzazione all'analisi
Generare un'analisi di disponibilità è molto semplice. Per prima cosa recupera una qualsiasi visualizzazione di host, servizi o aggregazioni BI. Lì troverai nel menu "Services" o "Hosts" l'elemento "Availability", che ti porta direttamente al calcolo della disponibilità degli oggetti selezionati. I dati verranno visualizzati sotto forma di tabella:

La tabella mostra gli stessi oggetti che erano visibili nella visualizzazione precedente. In ogni colonna è indicata la percentuale del periodo di tempo richiesto in cui un oggetto si trovava nello stato oggetto della query. Il valore è espresso in percentuale, per impostazione predefinita con due cifre decimali, che puoi facilmente personalizzare.
Il periodo di tempo della query può essere personalizzato con la voce di menu "Availability > Change display options > Time Range". Ne parleremo più avanti…
Hai la possibilità di ricevere la tabella in formato PDF (solo nelle edizioni commerciali). È anche possibile effettuare lo scaricamento dei dati in formato CSV tramite (Export as CSV). Per l'esempio sopra riportato, il risultato sarà simile a questo:
Host;Service;OK;WARN;CRIT;UNKNOWN;Flapping;H.Down;Downtime;N/A
mail.mydomain.test;Check_MK;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Check_MK Discovery;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /var/spool;0.00%;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTP https://mail.mydomain.test/;99.85%;0.15%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTPS https://mail.mydomain.test/;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;MTA performance check;99.23%;0.30%;0.46%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix Queue;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix status;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Uptime;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
Summary;;89.91%;10.05%;0.05%;0.00%;0.00%;0.00%;0.00%;0.00%Con l'aiuto di un utente automazione, che può
autenticarsi tramite l'URL, puoi anche recuperare i dati — ad esempio con
wgeto curl — ed elaborarli automaticamente tramite
script.
2.2. Visualizzazione della timeline
Il simbolo
si trova in ogni riga della tabella.
Questo pulsante ti porta a una visualizzazione della timeline per l'oggetto in questione,
in cui è indicato con precisione quali cambiamenti di stato si sono verificati nel
periodo di tempo specificato (qui abbreviato):

Alcuni consigli utili:
Passa il cursore del mouse su un simbolo della timeline nella riga di un oggetto nella visualizzazione: questo verrà evidenziato nella visualizzazione della tabella.
Inoltre, nella timeline puoi utilizzare le voci di menu "Availability > Change display options" o "Availability > Change computation options" per personalizzare le opzioni di visualizzazione e valutazione.
Con il simbolo "
" puoi aggiungere un "Annotation" all'elemento selezionato. Qui puoi anche registrare retrospettivamente i tempi di manutenzione programmata (ne parleremo meglio nella prossima sezione).Nella sezione "Disponibilità delle aggregazioni BI", con il simbolo della bacchetta magica "
" puoi "viaggiare nel tempo" fino allo stato dell'aggregato per l'intervallo di tempo in questione. Maggiori dettagli in seguito.Utilizzando l'elemento di menu "Availability > Timeline" nella visualizzazione principale, puoi visualizzare le linee temporali di tutti gli oggetti selezionati in un'unica lunga pagina.
2.3. Annotazioni e tempi di manutenzione programmata successivi
Come appena accennato, con il simbolo "
" le linee temporali
offrono la possibilità di aggiungere un'annotazione a un periodo di tempo.
Viene fornito un modulo precompilato ("Properties") in cui è possibile inserire dei commenti:

In questo modo puoi definire ed estendere il periodo di tempo con valori diversi a seconda delle necessità. Ciò è utile, ad esempio, se desideri annotare un periodo di tempo più ampio che ha subito ripetuti cambiamenti di stato. Se ometti di inserire un servizio, l'annotazione verrà creata per l'host. Questa verrà poi automaticamente associata a tutti i servizi dell'host.
In ogni visualizzazione di disponibilità, tutte le annotazioni applicabili al periodo di tempo e agli oggetti visualizzati saranno automaticamente visibili.
Ma le annotazioni hanno una funzione aggiuntiva. I tempi di manutenzione programmata possono essere inseriti a posteriori — o, al contrario, rimossi. L'analisi della disponibilità tiene conto di queste correzioni esattamente allo stesso modo dei tempi di manutenzione programmata "normali". Ci sono almeno due valide giustificazioni per questo:
Durante le operazioni può capitare che i tempi di manutenzione programmata vengano inseriti in modo errato. Questo ovviamente compromette l'accuratezza delle statistiche di disponibilità. Inserendo questi tempi a posteriori, è quindi possibile correggere la segnalazione.
Ci sono utenti che abusano dei tempi di manutenzione programmata durante un'interruzione spontanea per sopprimere una notifica. Questo compromette di fatto l'analisi successiva. Ciò può essere corretto a posteriori cancellando il tempo di manutenzione programmata errato.
Per riclassificare i tempi di manutenzione programmata, basta selezionare la checkbox "Reclassify downtime of this period":

2.4. Visualizzazione della cronologia di monitoraggio
Nella tabella di disponibilità, accanto al simbolo della timeline, si trova un altro
simbolo:
. Questo ti porta a una
visualizzazione della cronologia di monitoraggio con un filtro precompilato per l'oggetto
rilevante e il periodo di tempo della query. Qui non vedrai solo l'evento
su cui si basa l'analisi di disponibilità (i cambiamenti di stato),
ma anche le notifiche associate ed eventi simili:

Ciò che qui non è visibile è lo stato dell'oggetto all'inizio del periodo di tempo della query. Il calcolo della disponibilità risale ancora più indietro nel tempo per determinare in modo affidabile lo stato iniziale.
3. Opzioni di calcolo

Oltre al calcolo stesso, anche la visualizzazione della disponibilità può essere controllata tramite numerose opzioni. Le trovi nelle voci di menu Availability > Change display options e Availability > Change computation options.
Una volta modificate le opzioni e confermate con Apply , la disponibilità verrà ricalcolata e visualizzata. Tutte le opzioni modificate verranno salvate nel profilo dell’utente come impostazioni predefinite, in modo che le ricerche successive utilizzino le stesse impostazioni.
Allo stesso tempo, le opzioni verranno codificate nell'URL della pagina corrente. Se ora salvi un segnalibro sulla pagina — ad esempio, utilizzando il pratico elemento Bookmarks — le opzioni ne faranno parte e, quando in seguito verrà cliccato, verrà generato esattamente allo stesso modo.
3.1. Scegliere il periodo di tempo

La prima e più importante opzione in qualsiasi calcolo di disponibilità è ovviamente
il periodo di tempo da esaminare. In Date range è possibile specificare un periodo di tempo con date di inizio
e fine precise.
L'ultimo giorno — fino alle 24:00 — sarà incluso.

Molto più pratiche sono le specifiche temporali relative, come ad esempio " Last week". Il periodo di tempo esatto che verrà visualizzato — intenzionalmente — dipende dal momento in cui viene effettuato il calcolo. Nota: qui "una settimana" si riferisce sempre a un periodo di tempo che va da lunedì alle 00:00 a domenica alle 24:00.
3.2. Opzioni che influenzano le visualizzazioni
Molte opzioni influenzano il formato delle visualizzazioni, mentre altre a loro volta influenzano i metodi di calcolo. Per cominciare, diamo un’occhiata alle visualizzazioni:
Nascondi le righe con disponibilità al 100%

L'opzione "Only show objects with outages" limita la visualizzazione agli oggetti
che presentano effettivamente delle interruzioni, ovvero i momenti in cui lo stato non era "OK" o "UP".
Ciò è utile quando c'è un gran numero di servizi, ma ti interessano solo quei
pochi che presentano effettivamente dei problemi.
Opzioni di etichetta

L'Labelling optionse permette di attivare o disattivare vari campi di etichetta. Alcune delle opzioni sono interessanti soprattutto per la segnalazione. Se, ad esempio, devi creare un rapporto per un singolo host, la colonna del nome host non è davvero necessaria.
L'alternative display namese per i servizi può essere definita utilizzando una regola e, in questo modo, ad esempio, alle visualizzazioni dei servizi importanti può essere assegnato un nome esplicito e significativo per chi legge il rapporto.
Uso dei colori nella visualizzazione degli SLA con threshold

Con l'Visual levels puoi evidenziare gli oggetti che non hanno mantenuto una disponibilità specificata nel periodo di tempo interrogato. Questo vale solo per la colonna relativa allo stato "OK". Normalmente questa è sempre verde. Un mancato raggiungimento della threshold definita farà cambiare il colore di questa cella da verde a giallo o a rosso. Questo potrebbe essere descritto come una panoramica molto semplice degli SLA.
Visualizzazione del numero e della durata delle singole interruzioni

L'opzione "Outage statistics" fornisce colonne di informazioni aggiuntive nella tabella di disponibilità. Nello screenshot qui sotto si può vedere che le informazioni aggiuntive per "max. duration" e "count" sono state attivate per la colonna di stato "Crit/Down". Ciò significa che per le interruzioni con stato "CRIT" / "DOWN", vengono mostrati il numero di incidenti, così come la durata dell'incidente più lungo.

Nella tabella verranno create queste colonne aggiuntive.
Visualizzazione delle specifiche temporali

Non è sempre opportuno specificare le (in)disponibilità in percentuale. L'opzione Format time ranges consente di switchare a una visualizzazione che presenta i periodi di tempo come valori assoluti. In questo modo è possibile vedere la durata totale delle interruzioni al minuto esatto. La visualizzazione mostra anche i secondi, ma tieni presente che questo ha senso solo se il monitoraggio viene effettuato a intervalli di un secondo, e non come di consueto con un check al minuto. Allo stesso modo è possibile definire la precisione della specifica (il numero di cifre decimali nei valori percentuali).

La formattazione dei timestamp si applica alle impostazioni nel file Timeline. Il passaggio alle epoche Unix (secondi trascorsi dal 1° gennaio 1970) semplifica la correlazione dei periodi di tempo con le posizioni appropriate nei dati di log della cronologia di monitoraggio.
Personalizzazione della riga di riepilogo

Non solo puoi attivare/disattivare il riepilogo nell'ultima riga della tabella con questa opzione, ma puoi anche scegliere tra una somma totale e una media. Per le colonne che contengono un valore percentuale, l'uso dell'impostazione "Display total sum" farà sì che venga mostrata una media, poiché sommare valori percentuali non ha molto senso.
Visualizzazione della piccola timeline

Questa opzione aggiunge una versione in miniatura della timeline di disponibilità direttamente alla tabella dei risultati. Corrisponde alla barra grafica nella timeline dettagliata, ma è più piccola ed è integrata direttamente nella tabella. Inoltre, è in scala, in modo da poter confrontare più oggetti nella stessa tabella.
Raggruppamento per host, gruppo di host o gruppo di servizi

Indipendentemente dalla schermata da cui provieni, la disponibilità mostra sempre tutti gli oggetti in una tabella comune. Con questa opzione puoi selezionare un raggruppamento per host, per gruppo di host o per gruppo di servizi — ogni gruppo avrà quindi la propria linea Summary.
Tieni presente che con un raggruppamento per gruppo di servizi, i servizi possono apparire più volte, poiché i servizi possono essere assegnati a più gruppi contemporaneamente.
Visualizza solo la disponibilità

L'opzione "Availability" assicura che venga visualizzata solo la colonna relativa agli stati "OK" o "UP" — con il titolo "Avail.". In questo modo verrà mostrata solo la disponibilità "actual". Questa opzione può essere combinata con le ulteriori opzioni spiegate di seguito, con altri stati (ad es. "WARN"), e può includere anche lo stato "OK" e quindi essere valutata come disponibile.
3.3. Raggruppamento degli stati
Gli stati descritti nell'introduzione possono essere personalizzati e raggruppati in moltissimi modi. In questo modo si possono generare in modo flessibile moduli di valutazione molto diversi. Ci sono varie opzioni per farlo.
Gestione degli stati WARN, SCONOSCIUTO e DOWN

L'opzione "Service status grouping" offre la possibilità di mostrare vari "stati intermedi". Una situazione comune è quella di forzare il trattamento di "WARN" come "OK". Questo può essere molto utile se ti interessa la disponibilità effettiva di un servizio. Spesso "WARN" non significa che esista già un problema reale, ma che potrebbe svilupparsi a breve. Quindi, vista in questo modo, "WARN" deve essere considerata disponibile. Con servizi di rete come un server HTTP, è certamente sensato trattare i periodi in cui l'host è "DOWN" allo stesso modo di quando il servizio è "CRIT".
Gli stati che vengono omessi a causa del raggruppamento ovviamente mancano anche dalla tabella dei risultati, che avrà meno colonne.

L'opzione "Host status grouping" è molto simile, ma si riferisce alla disponibilità degli host. Lo stato "UNREACH" significa che un host, a causa di problemi di rete, non può essere monitorato da Checkmk. In tali situazioni, ai fini dei calcoli di disponibilità puoi decidere se preferisci trattare lo stato "UNREACH" come "UP" o "DOWN". L'impostazione predefinita è quella di trattare "UNREACH" come uno stato a sé stante.
Gestione dei periodi di tempo non monitorati e irregolari

Nell'opzione "Status classification
" verranno effettuati ulteriori riepiloghi.
La casella di controllo "Consider periods of flapping states
" è attiva di
default: in questo modo le fasi di frequenti cambiamenti di stato costituiscono uno stato a sé stante
: "
" — "irregolare
". L'idea alla base è
che, anche se si può dire che in quei momenti il servizio interessato torni sempre
allo stato "OK
", a causa delle frequenti interruzioni il servizio è
di fatto inutilizzabile.
Disattivando questa opzione, il concetto di “irregolare” verrà completamente
ignorato e riapparirà lo stato effettivo corrispondente — e anche la colonnaflapping
verrà rimossa dalla tabella.
La rimozione dell'opzione "Consider times where the host is down" funziona in modo simile. Il concetto di "Host down" viene disattivato. Questa opzione ha senso solo per la disponibilità dei servizi. Nelle fasi in cui l'host non è "UP", lo stato attuale del servizio verrà preso come base per la disponibilità — o più precisamente, lo stato dell'ultimo check prima che l'host diventasse non disponibile. Questo può essere utile con servizi per i quali l'accessibilità tramite la rete non è rilevante.
Anche l'opzione "Include unmonitored time" è simile. Supponiamo che si debba effettuare un'analisi per febbraio e che un determinato servizio sia stato sottoposto a monitoraggio solo a partire dal 15 febbraio. Questo servizio ha quindi una disponibilità di solo il 50%? Con l’impostazione predefinita — opzione attiva — sarà effettivamente così. Il 50% mancante non verrà considerato come interruzione, ma verrà sommato in una colonna a sé stante sotto il titolo “N/A”. Senza l’opzione corrisponderà al 100% del tempo dal 15 al 28 febbraio. Questo significa però che un'interruzione di un'ora per questo servizio verrà riflessa come il doppio della percentuale di un servizio che è stato sottoposto a monitoraggio per l'intero mese.
Gestione dei tempi di manutenzione programmati

Con l'opzione "Scheduled Downtimes" puoi specificare in che modo i tempi di manutenzione programmati influenzano l'analisi della disponibilità:
Honor scheduled downtimes è l'impostazione predefinita. In questo caso i tempi di manutenzione programmata saranno trattati come uno stato a sé stante e riassunti in una colonna dedicata. Con l'opzione "Treat phases of UP/OK as non-downtime" puoi sottrarre i tempi durante i quali, nonostante il periodo di manutenzione programmata, il servizio era OK.
Ignore scheduled downtimes viene trattato come se non fosse stato inserito alcun tempo di manutenzione programmata. Le interruzioni sono interruzioni, punto e basta. Ovviamente solo se si è verificata davvero un'interruzione.
Exclude scheduled downtimes significa che i tempi di manutenzione programmati vengono semplicemente esclusi dal periodo di tempo analizzato. La percentuale di disponibilità corrisponde quindi ai tempi al di fuori dei tempi di manutenzione programmati.
Unire fasi uguali

Attraverso la conversione da uno stato a un altro (ad es. da WARN a OK) può capitare che sezioni consecutive della timeline di un oggetto abbiano lo stesso stato. Normalmente tali sezioni vengono unite in un'unica sezione. Questo in genere è positivo e chiaro, ma ha un effetto sulla visualizzazione dei dettagli nella timeline e, possibilmente, anche sul conteggio degli eventi con l'opzione "Outage statistics". Puoi quindi disattivare l'unione con l' opzione Do not merge consecutive phases with equal state.
3.4. Ignorare le brevi interruzioni
A volte il monitoraggio genera spesso messaggi di errore momentanei, ma in condizioni normali l'oggetto è già OKe quando viene eseguito il check successivo (dopo un minuto) — e non è stato trovato alcun modo, tramite la regolazione delle soglie o simili, per gestire in modo pulito questi casi. Una soluzione comune è impostare il Maximum number of check attempts da 1 a 3 per consentire più errori prima che venga attivata una notifica. È stato così sviluppato il concetto di "Soft states" — ovvero gli stati WARN, CRIT o SCONOSCIUTO — purché non siano stati "esauriti" tutti i tentativi consentiti.
A volte gli utenti che usano questa funzione ci chiedono perché il modulo Availability di Checkmk non abbia una funzione per il calcolo basato esclusivamente sull'Hard states. Il motivo è semplice: c'è una soluzione migliore! Si potrebbero usare gli hard state come base…
… in modo che le interruzioni reali, dovute al fallimento del primo e del secondo tentativo di check, vengano valutate come troppo brevi di due minuti.
… e non si potrebbe riadattare retrospettivamente il comportamento per le interruzioni brevi.

L'opzione "Short time Intervals" è molto più flessibile e allo stesso tempo molto semplice. Basta definire un intervallo di tempo che deve essere superato prima che gli stati vengano valutati.
Supponiamo che il valore temporale sia stato impostato su 2,5 minuti (150 secondi). Se un servizio è stato continuamente OK, poi è CRIT per 2 minuti e poi torna a OK, il breve intervallo CRIT verrà semplicemente valutato come OK! Anche la situazione opposta funziona, tra l’altro! Un breve OK all’interno di una lunga fase WARN verrà allo stesso modo valutato come WARN.
In generale, gli intervalli brevi in cui prima e dopo prevale lo stesso stato riceveranno quello stesso stato. Per una sequenza diOK , seguita da un intervallo di 2 minutiWARN , e poi daCRIT , lo statoWARN persisterà — anche se è durato meno del tempo definito!
Tieni presente, quando definisci il tempo, che in Checkmk l'intervallo di controllo standard è di un minuto. Quindi ogni stato ha una durata pari a multipli di circa un minuto. Poiché i tempi di risposta effettivi dell'agente variano leggermente, questo può facilmente essere 61 o 59 secondi. Pertanto è più sicuro non inserire minuti esatti come valore, ma includere un margine di sicurezza — da qui l'esempio con 2,5 minuti.
3.5. Effetto dei periodi di tempo
Una funzione importante dei calcoli di disponibilità nelle edizioni commerciali di Checkmk è che questi calcoli possono essere resi dipendenti da periodi di tempo. In questo modo è possibile definire degli orari per ogni singolo host o servizio. In questi orari ci si aspetta che l'host/servizio sia disponibile e lo stato verrà quindi utilizzato per i calcoli. Pertanto ogni oggetto ha l'attributo Service period. La procedura è la seguente:
Definisci un periodo di tempo per gli orari di servizio.
Assegnali agli oggetti con i set di regole "Host & Service parameters > Monitoring configuration > Service period for hosts" o "… for services".
Attiva le modifiche.
Usa l'opzione di disponibilità "Service time" per controllare il comportamento:

Qui ci sono tre semplici possibilità. L' Base report only on service timespredefinito nasconde i tempi al di fuori degli orari di servizio definiti. Questi tempi nascosti non vengono quindi conteggiati nel 100%. Verranno effettivamente considerati solo i periodi di tempo compresi negli orari di servizio. Nella visualizzazione della timeline i tempi rimanenti saranno "disattivati".
Base report only on non-service times fa il contrario, e di fatto calcola la visualizzazione inversa: com'era la disponibilità al di fuori degli orari di servizio?
La terza opzione Include both service and non-service times disattiva completamente il concetto di orari di servizio e mostra i calcoli per tutti i tempi da lunedì 00:00 a domenica 24:00.
A proposito: se un host non rientra nell'orario di servizio, per Checkmk ciò non significa automaticamente che questo valga anche per i servizi presenti sull'host. I servizi richiedono sempre una propria regola in Service period for services.
Il periodo di notifica

C'è tra l'altro un'altra opzione correlata: Notification period. Qui è possibile impostare anche il periodo di notifica per la valutazione. In realtà questa opzione è stata concepita solo per evitare che in determinati orari venissero generate notifiche per problemi, e non copre necessariamente l'orario di servizio. Questa opzione è stata introdotta in passato quando il software non funzionava ancora con un orario di servizio, e oggi è stata mantenuta solo per motivi di compatibilità. È meglio non usarla.
3.6. Limitare il periodo di calcolo
Quando si calcola la disponibilità, è necessario riaprire la cronologia completa dell'oggetto selezionato.
Come funziona nel dettaglio lo scoprirai
più avanti. Soprattutto in una Comunità Checkmk
, l'analisi
può richiedere un po' di tempo, poiché il suo core non dispone di una cache per i dati richiesti e i
dati di log testuali devono essere cercati in modo sequenziale.
Affinché una query eccessivamente complessa — che potrebbe essere stata avviata involontariamente — non blocchi un processo Apache, consumi CPU e quindi “si blocchi”, ci sono due opzioni per limitare la durata del calcolo. Entrambe sono attivate di default:

L'opzione "Query time limit" limita la durata della query sottostante al nucleo di monitoraggio a un tempo specificato. Questo è predefinito a trenta secondi. Se questo tempo viene superato, l'analisi verrà interrotta e verrà segnalato un errore. Se sei sicuro che l'analisi possa essere eseguita più a lungo, basta aumentare manualmente il timeout.

L'opzione "Limit processed data" protegge dai calcoli con molti oggetti. Qui verrà applicato un limite che funziona in modo analogo a quello nelle visualizzazioni. Se la query al nucleo di monitoraggio produrrà più di 5000 periodi di tempo, il calcolo verrà interrotto con un avviso. La limitazione sarà stata pre-elaborata nel core — dove i dati vengono raccolti.
4. Disponibilità nella Business Intelligence
4.1. Il principio di base
Una potente funzionalità del calcolo della disponibilità di Checkmk è la possibilità di calcolare la disponibilità dalle aggregazioni BI. Il grande vantaggio è che, a questo scopo, Checkmk ricostruisce retroattivamente lo stato preciso dei rispettivi aggregati in un determinato momento utilizzando i protocolli degli stati degli host e dei servizi.
Perché tanto tempo e tanta fatica? Perché non interrogare semplicemente l'aggregazione BI con un active check e poi mostrare la sua disponibilità? Beh, questo sforzo offre un bel po' di vantaggi per l'utente:
La struttura delle aggregazioni BI può essere adattata a posteriori, e quindi la disponibilità può essere ricalcolata.
Il calcolo è più preciso, poiché non utilizzando un active check non si genera un'imprecisione di +/- un minuto.
È disponibile un'eccellente funzione di analisi, con la quale è possibile indagare a posteriori sulla causa esatta di un'interruzione.
Ma soprattutto, non è necessario creare un check aggiuntivo.
4.2. Recupero della disponibilità
Il recupero della visualizzazione di disponibilità è inizialmente analogo a quello per gli host e i servizi.
Seleziona una visualizzazione con una o più aggregazioni BI e seleziona l'elemento di menu "BI Aggregations > Availability".
Qui c'è anche un secondo metodo: ogni aggregazione BI ha un percorso diretto
alla sua disponibilità utilizzando il simbolo "
":
Di per sé il calcolo è inizialmente simile a quello dei servizi, ma senza le colonne "Host down" e "flapping", poiché questi stati non esistono per la BI:

4.3. Viaggio nel tempo
La grande differenza sta nella visualizzazione della linea temporale "
".
L'esempio seguente mostra un aggregato nel nostro server demo, che è stato "CRIT"
per un brevissimo intervallo di tempo di un secondo (questo sarebbe un ottimo esempio per l'
uso dell'opzione "Short time intervals").

Vuoi sapere qual è stata la causa dell'interruzione? Basta un semplice clic
sulla bacchetta magica. Questo ti permette di fare un viaggio
nel tempo fino al momento esatto in cui si è verificata l'interruzione,
e apre una visualizzazione dell'aggregazione BI in quel momento — nell'immagine seguente,
già aperta nella posizione corretta:

5. Disponibilità nei rapporti
Le visualizzazioni di disponibilità possono essere incorporate nei rapporti. Il modo più semplice è tramite "Export > Add to report" nella barra del menu. Seleziona il rapporto a cui vuoi aggiungere la visualizzazione e conferma con "Add to".

L'elemento del rapporto "Availability table" inserisce un'analisi della disponibilità nel rapporto. Tutte le opzioni descritte sopra sono disponibili come parametri direttamente nell'elemento, anche se in una forma grafica leggermente diversa:

L'ultima opzione è speciale:

Qui puoi specificare quale visualizzazione deve essere aggiunta al rapporto:
La tabella di disponibilità
La rappresentazione grafica della timeline
La timeline in dettaglio con i singoli periodi di tempo
A differenza delle normali visualizzazioni interattive, qui puoi incorporare contemporaneamente tabelle e linee temporali nei rapporti.
Una seconda funzionalità è la specificazione del periodo di tempo di valutazione. Questa opzione qui non è presente, poiché viene determinata automaticamente dal rapporto.
La selezione degli oggetti, come per ogni elemento del rapporto, viene ripresa dal rapporto o predefinita direttamente nell'elemento.
6. Aspetti tecnici
6.1. Come funzionano i calcoli
Per calcolare la disponibilità, Checkmk accede alla cronologia storica di monitoraggio archiviata e, per farlo, si basa sui cambiamenti di stato. Se, ad esempio, alle 17:14 del 20/10/2021 un servizio cambia il proprio stato in CRIT , e poi alle 17:24 torna a OK , allora sai che durante questo periodo di tempo di 10 minuti il servizio era in uno stato CRIT.
Questi cambiamenti di stato vengono registrati nel log di monitoraggio, hanno il tipo di avviso
HOST ALERTo SERVICE ALERT e si presentano ad esempio in questo modo:
[1634742874] SERVICE ALERT: mail.mydomain.com;Filesystem /var/spool;CRITICAL;HARD;1;CRIT - 95.9% used (206.96 of 215.81 GB), (warn/crit at 90.00/95.00%), trend: 0.00 B / 24 hoursC'è sempre un file di log attuale che include le voci relative alle attività più recenti fino al momento presente, oltre a una directory con un archivio dei periodi precedenti. La posizione di questi file varia a seconda del nucleo di monitoraggio in uso:
| Core | File attuale | File precedenti |
|---|---|---|
|
|
|
|
|
L'interfaccia utente non accede direttamente a questi file, ma li interroga tramite una query Livestatus emessa dal nucleo di monitoraggio. Tra le altre cose, questo è importante perché in un monitoraggio distribuito i file di cronologia non vengono memorizzati sullo stesso sistema della GUI.
La query Livestatus utilizza la tabella statehist. A differenza della
tabella log – che fornisce un accesso "nudo" alla cronologia – qui viene utilizzata la tabella statehist perché ha già eseguito le
fasi iniziali di calcolo che richiedono molto tempo. Tra le altre cose, si occupa di
controllare la cronologia per determinare lo stato iniziale e di
calcolare i periodi di tempo con lo stesso stato, con le loro date di inizio,
durata e fine.
La procedura di condensazione degli stati viene eseguita nella panoramica utente dal Modulo di Disponibilità, come descritto all’inizio di questo articolo.
6.2. La cache di disponibilità in CMC
Come funziona la cache
Per le query che risalgono molto indietro nel tempo, molti file di log
devono essere elaborati di conseguenza. Ciò ha ovviamente un effetto negativo sulla
durata del calcolo. Per questo motivo, nel Checkmk
Micro Core è presente una cache molto efficiente della cronologia di monitoraggio,
in cui fin dall'inizio tutte le informazioni importanti sui cambiamenti di stato degli oggetti
sono già state determinate dai file di log conservati nella RAM, e che viene
aggiornata continuamente durante il monitoraggio attivo.
La conseguenza è che tutte le richieste di disponibilità possono essere
risposte direttamente e in modo molto efficiente dalla RAM, e quindi non è necessario alcun ulteriore
accesso.
L'analisi dei file di log è molto rapida e, con dischi rigidi sufficientemente veloci, si può raggiungere una velocità di elaborazione fino a 80 MB/sec! Affinché la creazione della cache non ritardi l'avvio del monitoraggio, questa operazione viene eseguita in modo asincrono — in realtà dal presente a ritroso nel tempo. Si noterà un breve ritardo se, subito dopo l'avvio dell'istanza Checkmk, viene avviata immediatamente una richiesta di disponibilità che copre un lungo periodo di tempo. In una situazione del genere è possibile che la cache non risalga ancora abbastanza a ritroso nel tempo e che la GUI abbia bisogno di qualche istante per elaborare la richiesta.
Con un "Activate changes" la cache viene mantenuta! Solo con un vero e proprio (ri)avvio di Checkmk sarà necessario generarla nuovamente — ad esempio, dopo un riavvio del server o un aggiornamento di Checkmk.
Statistiche della cache
Se sei curioso di sapere quanto tempo potrebbe richiedere la generazione di una cache,
puoi trovare una statistica nel file di log di ~/var/log/cmc.log. Ecco un
esempio tratto da un sistema di monitoraggio di piccole dimensioni:

Ottimizzazione della cache
Per tenere sotto controllo lo spazio di archiviazione richiesto dalla cache, questa è limitata a un orizzonte temporale massimo di 730 giorni nel passato. Questo limite è fisso — quindi le query che risalgono più indietro nel tempo non sono solo più lente, ma impossibili. Questo può essere facilmente personalizzato utilizzando l'impostazione globale Global Settings > Monitoring Core > In-memory cache for availability data:

Oltre all’orizzonte temporale per il calcolo, c’è anche una seconda impostazione interessante: Ignore core restarts shorter than…. Un nuovo avvio del core (ad esempio, per un aggiornamento o un riavvio del server) genera effettivamente periodi di tempo considerati come unmonitored. Le interruzioni fino a 30 secondi verranno quindi semplicemente ignorate. Questo tempo può essere aumentato e anche periodi più lunghi possono essere semplicemente soppressi. Il calcolo della disponibilità presupporrà quindi che tutti gli host e i servizi abbiano mantenuto i rispettivi ultimi stati comunicati per l'intero periodo.
7. File e directory
| Percorso del file | Funzione |
|---|---|
|
File di log corrente per la cronologia di monitoraggio nel CMC |
|
Directory contenente i file di log precedenti della cronologia |
|
Il file di log del CMC, in cui è possibile effettuare la visualizzazione delle statistiche della cache di disponibilità |
|
Il file di log attuale per la cronologia di monitoraggio di Nagios |
|
Directory con i file di log più vecchi in Nagios |
|
Qui vengono memorizzate le annotazioni e i tempi di manutenzione programmati modificati a posteriori per le interruzioni di servizio. Il file è in formato Python e può essere modificato manualmente. |
