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

Dynamic host configuration icon.

Negli ambienti cloud e container è sempre più comune che gli host da monitorare possano non solo essere generati ma anche scadere automaticamente. Tenere aggiornata la configurazione del monitoraggio in un ambiente di questo tipo non è più possibile manualmente. Anche le infrastrutture classiche, come ad esempio i cluster VMware, possono essere molto dinamiche e, anche se la cura manuale è ancora possibile, è in ogni caso macchinosa.

Le edizioni commerciali di Checkmk ti supportano in questo processo con uno strumento intelligente, il Dynamic Configuration Daemon o DCD in breve. La configurazione dinamica degli host significa che, sulla base delle informazioni provenienti dal monitoraggio di AWS,Azure, Kubernetes,VMware e altre fonti, gli host possono essere aggiunti e rimossi dal monitoraggio in una procedura completamente automatizzata.

Il DCD è molto generico e non si limita alla creazione di host, ma forma la base per future estensioni di Checkmk che modificheranno dinamicamente la configurazione, ad esempio per la gestione dinamica degli host. A questo scopo il DCD lavora con i cosiddetti connettori. Ogni connettore può ottenere informazioni da un tipo di fonte molto specifico e ha una propria configurazione specifica.

Grazie ai connettori speciali, in futuro sarà ancora più facile inserire automaticamente gli host in Checkmk da un CMDB esistente.

2. Gestione degli host con il DCD

2.1. Il connettore piggyback

Attualmente il DCD di Checkmk è dotato di un solo connettore: quello utilizzato per i dati piggyback. Questo connettore è molto universale, poiché il meccanismo del piggyback viene utilizzato da Checkmk in tutte le situazioni in cui la richiesta da parte di un host (solitamente da parte di un agente speciale) fornisce i dati di altri host (solitamente macchine virtuali o oggetti cloud).

Ecco un paio di esempi in cui Checkmk utilizza il piggyback nel monitoraggio:

In tutti questi casi, il monitoraggio recupera automaticamente i dati da altri host (ad esempio, le macchine virtuali) che non vengono contattati direttamente tramite la rete e sui quali non è necessario che venga eseguito l'agente Checkmk. Con il DCD puoi aggiungere e rimuovere automaticamente tali host nel monitoraggio, in modo da riflettere sempre la situazione reale in modo tempestivo.

Per fare ciò, il DCD analizza i dati piggyback esistenti e li confronta con gli host già presenti nel Setup, per poi ricreare gli host mancanti o, rispettivamente, rimuovere quelli ridondanti. Ci sono host che vengono creati automaticamente dal DCD ma che sono ancora modificabili dall'utente nella GUI del Setup.

2.2. L'utente automazione

Per configurazione predefinita, in Checkmk esiste l'utente automazione, che viene creato da Checkmk per abilitare i prelievi automatici. Un utente automazione esistente è obbligatorio anche per la configurazione dinamica degli host.

Se, per qualsiasi motivo, hai cancellato o modificato questo utente nel tuo sistema, devi creare un altro utente con accesso automatizzato all'API. In questo caso apri le impostazioni di base globali tramite Setup > General > Global settings:

Automation user in basic settings.

Cliccando su Credentials: Use "Checkmk Automation" user accederai alla pagina di modifica della connessione API REST:

Changing the automation user.

Qui puoi inserire un altro utente e i suoi dati di accesso (nome, password) o modificare l'utente di automazione esistente. Non appena avrai salvato le modifiche con Save, l'utente definito verrà utilizzato per l'automazione e potrai continuare con la configurazione dinamica dell'host.

2.3. Configurazione dinamica

Sono presenti i dati piggyback?

L'unico requisito per poter utilizzare il DCD è la presenza di dati piggyback, che saranno sempre presenti se hai impostato correttamente il monitoraggio di AWS, Azure e Co. Puoi verificarlo facilmente anche tramite la linea di comando, perché i dati piggyback di Checkmk saranno stati creati nella directory tmp/check_mk/piggyback:

OMD[mysite]:~$ ls tmp/check_mk/piggyback
myvm01  myvm02  myvm03

Se questa directory non è vuota, i dati piggyback sono stati generati in questo sito.

Impostazioni generali del connettore

Ora vai all'amministrazione dell'host. La voce di menu Setup > Hosts > Dynamic host management ti porta alla configurazione del DCD e del suo connettore:

The 'Dynamic host management' page with empty connector list.

Crea una nuova connessione con Add connection. La prima parte della configurazione è General properties:

General properties when adding a new connector.

Qui devi assegnare, come spesso accade, un ID univoco e un titolo per questo connettore. Importante è anche la selezione dell'istanza Checkmk su cui questo connettore deve funzionare. Poiché i dati piggyback vengono sempre processati localmente, il connettore deve essere sempre assegnato a un sito specifico.

Proprietà del connettore

La seconda parte è Connection Properties:

Connector settings in detail.

Il connettore Piggyback data è già preselezionato qui (ed è attualmente l'unico possibile).

Il parametro Sync interval determina la frequenza con cui il connettore deve cercare nuovi host. Se mantieni il normale intervallo di controllo di un minuto, non ha senso farlo molto più spesso, dato che una modifica dei dati piggyback può avvenire al massimo una volta al minuto. In ambienti molto dinamici puoi utilizzare sia l'intervallo di controllo che l'intervallo del connettore impostati su valori molto più bassi. Tuttavia, questo comporta un maggiore utilizzo della CPU da parte del server Checkmk.

Ora è importante aggiungere alla voce Piggyback creation options almeno un elemento (Add new element) che ti porterà alle impostazioni per gli host creati automaticamente:

Folder where hosts are created and data sources used for this.

Qui puoi specificare due cose importanti: In quale cartella devono essere creati gli host (ad esempio AWS Cloud 02) e quali attributi dell'host devono essere impostati (per quest'ultimo è necessario che sia attivata la modalità Mostra di più )). Sono preimpostati quattro importanti attributi che si applicano principalmente agli host piggyback:

  1. Nessun monitoraggio via SNMP.

  2. Nessun agente Checkmk sull'host stesso (i dati arrivano tramite piggyback).

  3. I dati piggyback sono sempre attesi (e se mancano viene segnalato un errore).

  4. Gli host non hanno un indirizzo IP.

Importante: Solo se attivi Delete vanished hosts gli host verranno eliminati quando spariranno dall'ambiente dinamico.

Se non vuoi creare automaticamente tutti gli host, puoi farlo limitando l'opzione Only add matching hosts con un'espressione regolare.Importante: qui intendiamo gli host che vengono creati e non gli host che hai impostato per monitorare AWS, ad esempio.

Quest'ultimo può essere ottenuto con l'opzione Restrict source hosts, che si riferisce ai nomi degli host che generano dati piggyback.

Attiva le modifiche

Altre due opzioni riguardano l'attivazione automatica delle modifiche, nel caso in cui gli host siano stati realmente creati o rimossi, perché solo in questo caso appariranno nel monitoraggio.

Se l 'attivazione delle modifiche richiede molto tempo sul tuo sito, puoi utilizzareGroup "Activate changes" per fare in modo che non si avvii immediatamente con ogni nuovo host, ma piuttosto una volta che sono stati raccolti alcuni host.

Inoltre, puoi anche bloccare completamente l'attivazione automatica delle modifiche in determinati momenti della giornata, ad esempio quando il tuo sistema di monitoraggio viene controllato attivamente. Infatti, se il DCD attiva le modifiche, diventeranno attive anche tutte le altre modifiche che tu o un tuo collega avete appena effettuato!

Dopo il salvataggio, il connettore viene visualizzato nell'elenco, ma non può essere eseguito prima di aver attivato le modifiche: solo allora inizierà a funzionare. Pertanto, non irritarti per il messaggio che appare subito dopo il salvataggio:
Failed to get the status from DCD (The connection 'piggy01' does not exist)

3. Avvio del connettore

3.1. La prima attivazione

Dopo aver salvato le proprietà del connettore e dopo aver attivato le modifiche, il connettore inizierà automaticamente a funzionare. Questa operazione può essere così rapida che, subito dopo aver attivato le modifiche, vedrai immediatamente come gli host vengono creati nel monitoraggio:

List of pending changes immediately before automatic transfer to monitoring.

Se ricarichi questa pagina poco dopo, probabilmente queste modifiche saranno già scomparse, perché sono state attivate automaticamente dal DCD. I nuovi host sono già presenti nel monitoraggio e verranno monitorati regolarmente.

4. Eliminazione automatica degli host

4.1. Quando vengono cancellati gli host?

Come accennato in precedenza, puoi ovviamente permettere che gli host che "non esistono più" vengano eliminati automaticamente dal monitoraggio del DCD. A prima vista sembra molto logico. Cosa si intenda esattamente per "non esistono più" è però a prima vista un po' più complesso, in quanto ci sono diverse situazioni da considerare. Nella panoramica che segue partiamo dal presupposto che tu abbia attivato l'opzione di cancellazione, altrimenti gli host non verranno mai rimossi automaticamente.

Situazione Cosa succede?

Rimozione di un connettore DCD

Se chiudi un connettore DOWN (do not activate this dynamic configuration connection) o lo rimuovi del tutto, tutti gli host creati da questo connettore vengono conservati. Se necessario, dovrai eliminarli a mano.

L'host piggyback non sarà più monitorato

Se rimuovi dal monitoraggio l'host da cui monitorizzi il tuo ambiente cloud o container, ovviamente non genererà più dati piggyback. In questo caso gli host generati automaticamente verranno eliminati dopo un'ora.

L'host piggyback non può essere contattato

Se il tuo ambiente cloud non è raggiungibile e il servizio Checkmk che lo richiede va in CRIT, gli host generati rimarranno in monitoraggio a tempo indeterminato. Non esiste un timeout di un'ora!

Il server Checkmk stesso viene fermato

L'interruzione di tutto il monitoraggio farà sì che i dati piggyback diventino obsoleti, ma ovviamente questo non comporterà l'eliminazione degli host creati. Lo stesso vale se il server Checkmk viene riavviato (il che causa la perdita temporanea di tutti i dati piggyback, dato che si trovano nella RAM).

Un host non è più presente nei dati piggyback

Questa è una situazione normale: Un host in un ambiente cloud/container è scomparso. In questo caso verrà immediatamente rimosso dal monitoraggio.

Nota che con la regola Automatic host removal è possibile rimuovere automaticamente tutti gli host. Entrambe le opzioni per la gestione del ciclo di vita funzionano indipendentemente l'una dall'altra, cioè un host viene rimosso se si verifica una delle due condizioni.

4.2. Opzioni di configurazione

Oltre alla questione se gli host debbano essere rimossi automaticamente o meno, nelle proprietà del connettore ci sono altre tre opzioni che influiscono sulla cancellazione, opzioni che abbiamo saltato in precedenza:

Fine tuning to automatically delete hosts.

La prima impostazione - Prevent host deletion right after initialization - influisce sul riavvio completo del server Checkmk. In questa situazione, i dati piggyback di tutti gli host saranno inizialmente mancanti fino a quando gli host non verranno interrogati per la prima volta. Per evitare l'insensata cancellazione e ricomparsa degli host (che è anche accompagnata da ripetute notifiche per problemi noti), per impostazione predefinita le cancellazioni saranno generalmente rinunciate durante i primi 10 minuti. Questo limite di tempo può essere personalizzato qui.

L'opzione Validity of missing data gestisce la situazione in cui un host, i cui dati di monitoraggio hanno creato automaticamente diversi host, non restituisce dati piggyback. Questo può accadere, ad esempio, quando l'accesso ad AWS e Co. ha smesso di funzionare o anche, naturalmente, se hai rimosso l'agente speciale dalla configurazione. Gli host generati automaticamente rimarranno nel sistema per il tempo impostato prima di essere rimossi dalla configurazione.

L'opzione Validity of outdated data è simile, ma tratta il caso in cui anche se i dati piggyback vengono ricevuti, ma non da alcuni host. Questo è il caso normale se, ad es. le macchine virtuali o i servizi cloud non sono più disponibili. Se vuoi che gli oggetti corrispondenti scompaiano da Checkmk in modo tempestivo, imposta qui un periodo di tempo relativamente breve.

5. Diagnosi

5.1. Cronologia delle esecuzioni

Se vuoi osservare il DCD al lavoro, per ogni voce dell'elenco dei connettori troverai il simbolo che ti porterà alla cronologia delle esecuzioni:

Execution history when searching and creating new hosts.

Se per qualche motivo la creazione di un host non riesce, lo vedrai nella cronologia di esecuzione.

5.2. Audit log

Con Setup > General > Audit log si apre una pagina con l'elenco di tutte le modifiche apportate alla GUI di Setup, indipendentemente dal fatto che siano già state attivate o meno. Cerca le voci dell'elenco dell'utente automation. Il DCD lavora con questo account e genera le modifiche in esso: qui puoi seguire quali host il DCD ha creato o rimosso e quando.

5.3. File di log del DCD

Il file di log del DCD è var/log/dcd.log. Ecco un esempio che corrisponde alla descrizione precedente. Qui troverai anche il messaggio di errore che indica che non è stato possibile creare un host specifico:

var/log/dcd.log
2021-11-10 14:45:22,916 [20] [cmk.dcd] ---------------------------------------------------
2021-11-10 14:45:22,916 [20] [cmk.dcd] Dynamic Configuration Daemon (2.0.0p14) starting (Site: mysite, PID: 7450)...
2021-11-10 14:45:22,917 [20] [cmk.dcd.ConnectionManager] Initializing 0 connections
2021-11-10 14:45:22,918 [20] [cmk.dcd.ConnectionManager] Initialized all connections
2021-11-10 14:45:22,943 [20] [cmk.dcd.CommandManager] Starting up
2021-11-10 15:10:58,271 [20] [cmk.dcd.Manager] Reloading configuration
2021-11-10 15:10:58,272 [20] [cmk.dcd.ConnectionManager] Initializing 1 connections
2021-11-10 15:10:58,272 [20] [cmk.dcd.ConnectionManager] Initializing connection 'piggy01'
2021-11-10 15:10:58,272 [20] [cmk.dcd.ConnectionManager] Initialized all connections
2021-11-10 15:10:58,272 [20] [cmk.dcd.ConnectionManager] Starting new connections
2021-11-10 15:10:58,272 [20] [cmk.dcd.piggy01] Starting up
2021-11-10 15:10:58,273 [20] [cmk.dcd.ConnectionManager] Started all connections

6. File e directory

Percorso Funzione

tmp/check_mk/piggyback

Qui vengono creati i dati piggyback. Viene creata una directory per ogni host piggyback incluso nei dati piggyback.

var/log/dcd.log

Il file di log per il Daemon di configurazione dinamica (DCD)

In questa pagina