Ci sono molte ragioni per passare da Nagios a un altro strumento di monitoraggio. I consulenti IT di tribe29 hanno già assistito diverse organizzazioni nella sostituzione di Nagios e in questo blog post vorrei mostrarti come potete migrare il tuo monitoraggio da Nagios a Checkmk con uno sforzo relativamente ridotto. Checkmk è ideale come alternativa a Nagios perché, in quanto fork di Nagios, supporta molti concetti familiari e collaudati di Nagios. Tuttavia, Checkmk risolve la maggior parte dei punti deboli di Nagios con nuovi concetti e quindi rende il monitoraggio molto più semplice.

In questo post migreremo un piccolo ambiente Nagios a Checkmk. Le mie istruzioni si basano su alcune caratteristiche e capacità fornite da Checkmk che Nagios non ha. Teoricamente, è possibile utilizzare Checkmk anche per assumere direttamente il controllo di ampie parti di Nagios, ma questo comporta di solito un maggiore impegno. Non è necessario avere alcuna esperienza con Checkmk. Non è necessaria la configurazione di un database o di plug-in. Checkmk ha già tutto ciò che serve per lo switch.

In queste istruzioni, lavoro in gran parte senza utilizzare la riga di comando, ma è possibile configurare Checkmk anche tramite le API. Allo stesso modo, Checkmk può importare i plug-in di Nagios, ma questi sono utili solo in casi eccezionali. L'interfaccia utente di Checkmk rende tutto più semplice e i plug-in ufficiali di Checkmk funzionano in modo più efficiente e affidabile.

Esistono naturalmente altri modi per sostituire il proprio ambiente Nagios. Ad esempio, la configurazione di Nagios e tutti gli host potrebbero essere letti da Livestatus e trasferiti direttamente a Checkmk utilizzando le API di Checkmk (tra l'altro, Livestatus è stato sviluppato anche dal team di Checkmk). In questo modo sarebbe possibile migrare anche ambienti di grandi dimensioni senza tempi di inattività.

Tuttavia, ciò richiede una buona conoscenza di Linux e richiede molto tempo. La soluzione ottimale dipende certamente dalla configurazione e dalla portata della propria istanza di Nagios. Questa guida dovrebbe funzionare bene per la maggior parte degli scenari di distribuzione. Sono graditi i commenti in calce a questo post. Sentiti liberio di condividere le tue idee o i tuoi problemi nel forum di Checkmk.

Prima di iniziare: La configurazione della mia istanza Nagios

In questo capitolo elencherò i dettagli della mia istanza Nagios. Nella mia configurazione eseguo Nagios Core versione 4.4.5 e sposto il monitoraggio su Checkmk Raw Edition 2.0.0.7b. Anche il passaggio da un ambiente Nagios commerciale a Checkmk è possibile senza problemi utilizzando queste istruzioni. È anche possibile utilizzare direttamente Checkmk Enterprise Edition come alternativa a Nagios o, in seguito, spostare semplicemente il monitoraggio dalla Raw Edition alla Enterprise Edition di Checkmk. Io uso le versioni open-source di Nagios e Checkmk. In ogni caso, dovreste usare una versione aggiornata di Checkmk, che potete trovare nella pagina dei download. La mia istanza di Nagios gira su un server CentOS 7 (versione 7.9.2009). Oltre a Nagios, ho installato i plug-in standard di Nagios e il Nagios Remote Plugin Executer (NRPE). Ho quattro host con un totale di 24 servizi da monitorare: Il mio server host Nagios (localhost), un altro server Linux, un server Windows e uno switch Cisco (sw-01.lan.tribe29.com). Ho creato definizioni corrispondenti per tutti questi host e servizi. Come mostra la schermata di Nagios, sono tutti online e accessibili per il mio host Nagios. Ho configurato alcuni servizi Nagios standard per gli host Linux e Windows. Sul mio server Linux ho installato NRPE v4.0.3. per inviare i dati alla mia istanza Nagios. Sul sistema Windows ho installato l'agente di monitoraggio NSClient++ come servizio Windows per inviare i dati a Nagios. Monitoro lo switch tramite il plug-in SNMP standard di Nagios. Ho configurato manualmente ogni host sul server Nagios tramite la riga di comando.

bild1_recut_unpersonal

Per il mio monitoraggio di Nagios ho definito tre gruppi di contatto, ciascuno con due utenti. Il numero di host, servizi, utenti e gruppi di contatto nel mio ambiente Nagios è relativamente piccolo, ma anche ambienti molto più grandi possono essere migrati senza problemi.

bild2_recut_unpersonal

Preparazione: Configurazione di Checkmk

Per prima cosa installeremo Checkmk su un altro server: per motivi di stabilità non è consigliabile eseguire Nagios e Checkmk sullo stesso server. Checkmk funziona in modo molto più efficiente di Nagios, ma è comunque necessario fornire risorse hardware sufficienti per il server di monitoraggio. Un vantaggio di Checkmk è che non è più necessario configurare manualmente i servizi. Con il rilevamento automatico dei servizi, si otterrà un maggior numero di servizi importanti per host e si ridurrà lo sforzo nel processo di monitoraggio. Nel mio caso, ho lo stesso numero di host di prima, ma il numero di servizi è quadruplicato.

Per questa esercitazione ho configurato Checkmk Raw 2.0.0b7 su un server Linux (Ubuntu 20.04) come descritto nella documentazione. La "b" in 2.0.0b7 sta per beta. Naturalmente, per la migrazione si dovrebbe sempre utilizzare una versione attuale e stabile.

Per la migrazione di Nagios si deve innanzitutto configurare un'istanza con l'edizione di Checkmk scelta e avviarla. Poiché Checkmk viene fornito come pacchetto integrato, l'installazione avviene in poco tempo e non richiede l'installazione separata di un database o di un server web. Dopo aver effettuato l'accesso tramite l'interfaccia grafica, si vedrà una schermata di monitoraggio vuota.

Includere i dispositivi SNMP in Checkmk

La situazione è cambiata dall'inclusione in Checkmk di un dispositivo che non è possibile monitorare con gli agenti. In genere si tratta di dispositivi di rete che possono essere monitorati solo con SNMP. Le opinioni sull'SNMP sono discordanti: per me l'SNMP è un male necessario. Checkmk è fortunatamente in grado di astrarre la complessità di SMNP e include plug-in per quasi tutti i dispositivi di rete, il che significa che come utente non devo lottare con le idiosincrasie di SNMP.

Se hai intenzione di monitorare molto la rete, ti consiglio di leggere l'articolo del nostro blog 'Network Monitoring: Four Rules to rule them all" prima della migrazione e di seguire le istruzioni contenute nell'articolo. Nel mio caso, ho un solo switch e utilizzo le impostazioni predefinite fornite da Checkmk.

Per aggiungere il tuo host, vai su Setup ➳ Hosts. In alto a sinistra si trova il pulsante Add host. Fare clic su di esso e compilare i campi necessari per questo host.

Aggiunta di host in Checkmk

Vorrei assegnare un nome alias come nel mio vecchio ambiente Nagios. In BASIC SETTINGS sono presenti 'Hostname' e 'Alias'. Se il nome host è scritto correttamente e il DNS è impostato correttamente nella rete. Checkmk può risolverlo e identificare l'indirizzo IP da solo. A scopo dimostrativo, tuttavia, inserisco anche l'indirizzo IP. In DATA SOURCES, impostare 'Checkmk Agent' su 'No agent' e impostare la versione SNMP desiderata nel campo 'SNMP' sottostante, in questo caso 'SNMP v2 or v3'.

Nel campo successivo è necessario inserire o meno le 'SNMP credentials'. Come la maggior parte delle organizzazioni, utilizzo SNMP v2c, quindi non ho modificato la Comunità standard del mio switch e posso quindi utilizzare il Default value. In questo caso, Checkmk utilizza 'public' come valore predefinito per la comunità SNMP. Se ci si discosta dai dati di accesso SNMP standard, è necessario regolare questo valore di conseguenza. Per il mio switch si presenta così:

Creare un host SNMP in Checkmk

Dopo aver inserito i dati, fare clic su Save & go to service configuration. Checkmk cercherà ora di recuperare i dati di monitoraggio dallo switch. Se l'operazione è riuscita, Checkmk mostrerà un elenco di porte e chiederà se si desidera includerle come servizi nel monitoraggio.

Proprio come me, ora ti mancheranno alcune porte perché Checkmk per ora scopre solo le porte che sono attualmente online. Questo è il prezzo della scorciatoia. La soluzione migliore è presentata dal mio collega nel già citato post sul blog SNMP. Ha perfezionato il monitoraggio SNMP in Checkmk con l'aiuto di regole e tag, in modo da includere nel monitoraggio anche le porte temporaneamente offline e distinguere tra porte di accesso, uplink e così via. Per il mio switch di esempio, mi accontento delle porte attualmente online.

Ora è necessario selezionare i servizi che si desidera aggiungere al monitoraggio. Se non è stata effettuata una selezione individuale, Checkmk seleziona tutte le porte rilevate e le include nel monitoraggio. Il modo più semplice è fare clic su Fix all. Checkmk non solo aggiungerà tutti i servizi monitorati, ma assegnerà anche le etichette corrispondenti. Utilizzando il plug-in Check snmp_info, Checkmk ha riconosciuto che l'host è uno switch e gli ha quindi assegnato automaticamente un Host Label adeguato. Checkmk ora mostra le porte come servizi e il monitoraggio del mio switch è quasi completo.

Fissa tutti i servizi per un host SNMP

Tuttavia, devo ancora accettare le modifiche. Per farlo, fare clic su Changes nell'angolo in alto a destra per accedere alla panoramica delle Pending changes. Selezionare la casella Activation status nella parte anteriore della relativa istanza di Checkmk e fare clic su Activate on selected sites. A questo punto è stato aggiunto il primo host al nuovo monitoraggio.

Creare cartelle per gli host in Checkmk

Questa operazione è stata relativamente facile rispetto a Nagios, ma ovviamente non si vuole includere ogni host individualmente nel monitoraggio. Lavorare con le cartelle in Checkmk è un buon inizio per semplificare il monitoraggio quotidiano.

In Setup ➳ Hosts è possibile creare tali cartelle per i propri host. Le cartelle non esistevano nel mio Nagios. Tuttavia, poiché la gestione tramite cartelle in Checkmk è uno strumento potente, proviamo qui, proprio all'inizio.

Fare clic su Add subfolder e nominare la cartella secondo le proprie esigenze. Io ho creato tre cartelle per i miei host: "Server Linux", "Server Windows" e "Dispositivi di rete". Tutti gli host ereditano automaticamente le impostazioni delle loro cartelle. Quindi, ad esempio, è possibile impostare la configurazione di SNMP una volta nella cartella appropriata e in futuro sarà sufficiente assegnare l'host a quella cartella al momento della creazione dell'host.

Quindi, ho impostato 'No agent' e 'SNMP v2 or v3' come DATA SOURCES per la mia cartella 'Dispositivi di rete', proprio come ho fatto in precedenza per il mio switch Cisco. In futuro, potrò inserire i miei dispositivi di rete in questa cartella durante la creazione dell'host e non dovrò più effettuare ulteriori configurazioni. Inoltre, è possibile assegnare gli host esistenti alle cartelle desiderate nella Main directory tramite il simbolo della cartella con la freccia. Ho spostato il mio switch Cisco direttamente nella cartella.

Cartella di aiuto per il monitoraggio di Checkmk

Non dimenticare di accettare le modifiche. È possibile creare facilmente dei modelli utilizzando le cartelle, in modo da poter importare successivamente un gran numero di host nel monitoraggio con pochi clic. Checkmk supporta anche Bulk import di host tramite elenchi CSV o script automatici tramite la riga di comando. Tuttavia, è consigliabile includere i primi host nel monitoraggio tramite l'interfaccia grafica, al fine di acquisire esperienza con Checkmk.

Oltre alle cartelle, con Etichette e Tag Checkmk offre buone funzioni per gestire facilmente ambienti di monitoraggio di grandi dimensioni con un gran numero di host.

Installazione degli agenti Checkmk sui sistemi da monitorare

Nella fase successiva, è necessario dotare gli host degli agenti Checkmk appropriati. Per fare ciò, è necessario avere accesso ai sistemi come root. Nella Raw Edition, gli agenti si trovano in Setup ➳ Agents.

Gli agenti inclusi in Checkmk

Nel mio monitoraggio ho tre server che voglio monitorare tramite agenti: un server Linux di produzione e uno Windows, oltre al mio sistema host di monitoraggio. Per i sistemi Linux, accedo come root e installo il pacchetto agente corrispondente. Sul server Windows, eseguo il file MSI localmente e installo l'agente Checkmk come servizio Windows. Nel mio esempio, mi sono così assicurato di poter prelevare i dati dai miei server utilizzando gli agenti Checkmk.

Nel manuale troverete istruzioni dettagliate su come installare i rispettivi agenti sulle vostre piattaforme server. Sono inoltre disponibili plug-in per molti altri sistemi per un monitoraggio più approfondito. Poiché le estensioni di Checkmk forniscono solitamente più informazioni con un minor consumo di risorse, vale la pena di sostituire i vecchi plug-in di Nagios con i corrispondenti plug-in di Checkmk.

Si noti inoltre che Checkmk può essere esteso anche con controlli locali. È possibile convertire i plug-in di Nagios in controlli locali per Checkmk. Se non esiste un plug-in ufficiale per un sistema, è possibile adattare le estensioni esistenti di altri strumenti di monitoraggio per renderle conformi alle linee guida di Checkmk. Molti dei nostri clienti hanno implementato con successo questa soluzione nella pratica. Si noti, tuttavia, che tribe29 non può garantire il supporto in questo caso.

Includere i sistemi come host nel monitoraggio

Una volta che gli agenti sono in esecuzione sui sistemi, possiamo includerli nel monitoraggio. Per il mio piccolo sistema Nagios e per introdurre il principio, lo faremo di nuovo tramite la GUI.

Inizieremo con il nostro server di monitoraggio localhost. Andare di nuovo in Setup ➳ Hosts, aprire la cartella corrispondente e creare l'host con Add Host. Inserire "localhost" come hostname. Questo è già sufficiente: si possono lasciare vuoti gli altri campi. Senza modificare le impostazioni dell'host, Checkmk presuppone sempre che si voglia monitorare un host tramite l'agente. Quindi, è sufficiente inserire correttamente il nome dell'host e avere una risoluzione ragionevole del nome nella rete.

Aggiungere un localhost in Checkmk

Fare nuovamente clic su Save & go to service configuration per avviare la scoperta automatica del servizio. I passaggi restanti sono identici a quelli utilizzati per il monitoraggio dello switch.

Non dimenticare di accettare nuovamente le modifiche. Questa è esattamente la procedura che ho utilizzato per aggiungere il mio localhost, il mio server Windows e l'altro server Linux.

Configurazione di gruppi di host, utenti e altri allarmi

Checkmk offre naturalmente anche la possibilità di gestire host e utenti in gruppi. Esistono anche numerosi meccanismi di allarme. Come già detto a proposito di etichette, tag e cartelle, questi vanno spesso oltre le capacità di Nagios e possono essere combinati a piacere.

Inoltre, non è più necessario effettuare queste operazioni tramite la riga di comando, ma è possibile eseguirle comodamente nell'interfaccia utente. Quindi, dimenticati di lavorare con gli oggetti di Nagios che hai dovuto definire faticosamente usando i file di configurazione. Troverai invece istruzioni precise nel manuale di Checkmk e potrai semplicemente cercare lì gli elementi desiderati, come l'amministrazione degli utenti e la gestione degli allarmi degli host.

A questo punto, ho creato di nuovo i miei sei utenti in tre gruppi di contatto, compresi i dettagli di contatto. Ho anche ricreato rapidamente i gruppi di host. Sta a te decidere come configurare Checkmk, ma con l'aiuto del manuale è relativamente facile personalizzare Checkmk a tuo piacimento. Una volta configurato il monitoraggio secondo i propri desideri, è possibile completare la migrazione.

Completare la migrazione

A questo punto hai quasi finito. Tuttavia, ora stai monitorando alcuni sistemi due volte. Soprattutto nel mio switch, Nagios e Checkmk accedono ora all'agente SNMP. Ho quindi disattivato la mia istanza di Nagios e ti consiglio di fare lo stesso. È inoltre possibile eliminare i vecchi agenti Nagios dai propri host. Come previsto, Checkmk ha trovato più servizi. Con Nagios c'erano 24 servizi, ora ce ne sono 107, senza bisogno di alcuna configurazione manuale.

Panoramica degli host in Checkmk dopo la migrazione

Come accennato in precedenza, questa è solo una delle diverse opzioni per migrare da Nagios. Per ambienti molto grandi, può valere la pena di migrare gli host tutti in una volta tramite uno script dalla riga di comando. L'interfaccia Checkmk Livestatus può eseguire questa operazione leggendo i dati di tutti gli oggetti Nagios dall'ambiente Nagios. Tuttavia, è relativamente facile creare host con Checkmk, quindi l'approccio descritto qui è generalmente più sicuro e semplice.

Il tuo entusiasmante viaggio con Checkmk è appena iniziato. Come utente di Nagios, senza dubbio ti orienterai facilmente e sono sicuro che non sentirai la mancanza di Nagios. Oltre al manuale di Checkmk, puoi partecipare a un corso di formazione su Checkmk o postare nel nostro forum se vuoi approfondire o se hai altre domande.

Buon monitoraggio!