Ho abbastanza spazio nel filesystem per i prossimi mesi? Come si svilupperà in futuro il carico di CPU sul mio server? Non appena si dispone di un monitoraggio adeguato e si viene allarmati quando le cose vanno male, la domanda successiva sarà: è possibile prevenire potenziali problemi futuri?

Dalla versione 1.6, Checkmk dispone di una capacità di previsione che consente di pianificare e prevedere il comportamento futuro sulla base dei dati storici. Questo può anche aiutarvi a gestire la capacità dei vostri sistemi IT.

Sarete in grado di rilevare ogni problema in anticipo? No, perché spesso accadono cose che niente e nessuno può prevedere: ecco perché è necessario il monitoraggio. Ora, oltre a questo, sarete in grado di scoprire tendenze interessanti che potrebbero trasformarsi in problemi e potrete ottenere una comprensione molto migliore della vostra infrastruttura IT.

In questo post condividerò con voi come iniziare a utilizzare le previsioni metriche all'interno di Checkmk e come mettere a punto le opzioni di configurazione.

Installazione del forecasting package

Il modello di previsione delle serie temporali di Facebook Prophet funge da tecnologia di base. In Checkmk 1.6, utilizziamo l'implementazione di Facebook (Prophet) e quindi questa dipendenza deve essere installata separatamente. A partire da Checkmk 2.0, abbiamo implementato gli algoritmi in modo nativo in Checkmk e le previsioni sono pronte all'uso.

Questa guida è stata scritta utilizzando Checkmk Free Enterprise 1.6.0p13 su un'istanza Ubuntu 18.04. Poiché questa funzione sfrutta le capacità grafiche più avanzate delle versioni commerciali di Checkmk, non è disponibile in Checkmk Raw. Per il momento, vi consiglio di provare questa nuova funzione in un'istanza di prova e non in un ambiente produttivo, e nemmeno su un'appliance. Seguirà un articolo dettagliato nella nostra guida utente.

Poiché Prophet deve essere compilato, occorre innanzitutto installare gcc e g++ (sudo apt install gcc g++). Poi bisogna diventare utenti del sito Checkmk (sudo omd su <sitename>), ottenere lo script di installazione, renderlo eseguibile ed eseguirlo.

wget https://raw.githubusercontent.com/tribe29/checkmk/1.6.0/bin/install_fbprophet
chmod +x install_fbprophet
./install_fbprophet

Ci vorrà un po' di tempo e si potrà ignorare la maggior parte degli errori (per esempio, fbprophet 0.5 richiede matplotlib). Come già detto, a partire da Checkmk 2.0, questa operazione non sarà più necessaria.

Creare la prima previsione

Cominciamo con il divertimento vero e proprio! Le previsioni funzionano su qualsiasi singola metrica, quindi per prima cosa dobbiamo selezionarne una. Nel mio esempio, prevederò lo spazio utilizzato nel filesystem del nuovo forum Checkmk, in esecuzione su Discourse da dicembre 2019.

Accedete a qualsiasi vista del servizio e cliccate sul servizio per il quale volete prevedere una metrica.

servizio di filesystem

Scorrete fino a Metriche di servizio e fate clic sull'icona graph exporter-1.png accanto alla metrica e scegliete Nuovo grafico di previsione.

metriche di servizio

Ora abbiamo una previsione predefinita, che considera i dati dell'ultimo mese e prevede fino alla fine del mese. La linea blu rappresenta lo spazio del filesystem effettivamente utilizzato. La linea rossa è la previsione e l'area gialla è la fascia in cui la previsione prevede la metrica. La linea verticale verde segna l'inizio della previsione.

filesystem-forecast-default-2

Questa previsione di base è già molto più sofisticata di una semplice interpolazione lineare. Si può anche notare che ci sono molte opzioni per mettere a punto il modello di previsione. Vediamo di approfondire questo aspetto per ottenere una previsione davvero potente.

Regolazione della previsione del filesystem

La previsione predefinita prende in considerazione solo un intervallo di tempo limitato. Tuttavia, Checkmk raccoglie e archivia i dati a lungo termine, quindi cerchiamo di sfruttarli al meglio per ottenere una migliore comprensione, considerando i dati dell'intero anno fino ad ora e facendo previsioni fino alla fine dell'anno.

Le impostazioni sono per lo più autoesplicative. Impostate Considera cronologia di su Quest'anno e Previsione nel futuro su Fino alla fine dell'anno. Impostate anche Visualizza dati storici dall'ultimo a 180 giorni, in modo da poter vedere anche i dati storici.

filesystem-forecast-anno-1

Nei primi mesi del 2020, lo spazio del filesystem utilizzato è cresciuto parecchio e sembra che il filesystem sia stato ripulito a un certo punto. Da allora, sembra che la crescita sia rimasta piuttosto stabile. L'algoritmo di previsione è stato in grado di interpretarlo correttamente e ha creato una previsione decente. La banda superiore e quella inferiore hanno uno spread piuttosto ampio, ma ciò è dovuto al comportamento irregolare dei primi 3 mesi dell'anno.

Per chiarire che i semplici algoritmi non sono utilizzabili per prevedere le tendenze, creiamo una semplice interpolazione lineare. A tale scopo, è sufficiente cambiare la flessibilità del Trend in Lineare.

previsione lineare del filesystem-1

La previsione lineare ora prevede che lo spazio del filesystem utilizzato si ridurrà fino alla fine dell'anno, il che ovviamente non è realistico. L'interpolazione lineare non può tenere conto dell'effetto dell'eliminazione una tantum dei file a marzo. Pertanto, in generale, non consiglio le previsioni lineari, ma piuttosto l'impostazione predefinita di Adaptable, che utilizza algoritmi molto più avanzati.

Le diverse opzioni della voce Flessibilità del trend consentono di regolare il grado di adattamento dell'algoritmo alle variazioni dei dati originali. Si consiglia di fare qualche esperimento per capire come funzionano queste opzioni.

Previsione del carico della CPU

Abbiamo visto che è possibile creare previsioni piuttosto accurate per i filesystem. Ma guardando le previsioni per il nostro forum, entro la fine dell'anno possiamo aspettarci una crescita da 16 GByte, fino a 18 GByte, e la variazione giornaliera non è così dinamica come, ad esempio, per il carico della CPU. Poiché il nostro team cresce mensilmente e tutti noi utilizziamo Jira, ho dato un'occhiata al carico della CPU del nostro server Jira.

cpu-load-jira-1

Possiamo notare che il carico della CPU è aumentato costantemente. Soprattutto negli ultimi mesi si è registrato un aumento molto più consistente. Gli algoritmi sono in grado di gestire anche questo aspetto. Se da un lato abbiamo aggiunto sempre più persone a Jira, dall'altro negli ultimi mesi abbiamo iniziato a utilizzare molto di più le funzioni di analisi di Jira e Jira Service Desk, e questo potrebbe essere uno dei motivi per cui il carico della CPU sta aumentando più rapidamente. Abbiamo 8 core su quel server, quindi per ora dovremmo essere a posto, ma è meglio tenerlo d'occhio.

È possibile trovare tutte le previsioni create accedendo allo snap-in della barra laterale Viste , Modifica e poi facendo clic su Grafici delle previsioni nella barra dei menu in alto. Checkmk vi offre ora gli strumenti per diventare dei data scientist con i vostri stessi dati di monitoraggio, e per creare previsioni adeguate per i vostri filesystem, carichi di CPU e così via. Potete esportare le previsioni in report e condividerle con il vostro manager per avere una base migliore per discutere del prossimo budget IT. È inoltre possibile utilizzare le previsioni per individuare in anticipo potenziali problemi.

Abbiamo ancora molto lavoro da fare per migliorare questa funzione piuttosto nuova. Il primo passo è stato completato, ed è stato quello di semplificare l'installazione senza raddoppiare le dimensioni del pacchetto Checkmk. I prossimi passi saranno quelli di lavorare sull'usabilità e di eliminare i bug. In futuro sono previsti temi come l'allarme basato sulle previsioni.

Fateci sapere le vostre esperienze in merito e come potremmo migliorare la funzione di previsione scrivendo a feedback@checkmk.com.

Buon monitoraggio!