![]() |
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
Affinché un sistema di monitoraggio riceva da un endpoint altre informazioni oltre a quelle semplicemente accessibili, è necessario l'aiuto del sistema di destinazione. Ad esempio, come può Checkmk sapere quanto è pieno il volume di archiviazione di un server senza che questo sistema fornisca in qualche modo le informazioni? Il componente che fornisce queste informazioni è sempre un software attivo, ovvero un agente di monitoraggio, solitamente chiamato semplicemente agente.Un agente raccoglie i dati rilevanti per il monitoraggio da un host a intervalli specifici e li trasmette al server di monitoraggio!
Per i server e le workstation, Checkmk fornisce i propri agenti, noti come agenti Checkmk. Gli agenti Checkmk sono disponibili per un'ampia varietà di sistemi operativi, da quelli più comuni come Windows e Linux a quelli esotici come OpenVMS. Gli agenti sono passivi in modalità pull e sono in ascolto sulla porta TCP 6556. Solo quando ricevono una query del server Checkmk si attivano e rispondono con i dati richiesti. In modalità push, invece, gli agenti Checkmk inviano periodicamente i dati di monitoraggio al server Checkmk in modo autonomo.
Tutti gli agenti Checkmk possono essere trovati tramite l'interfaccia web nel menu Setup. Da lì puoi scaricare gli agenti e installarli sul sistema di destinazione. Puoi imparare come installare, configurare ed estendere gli agenti Checkmk in questo articolo.
Tuttavia, ci sono situazioni in cui non è necessario installare un agente di monitoraggio, poiché uno che può essere utilizzato è già presente. L'esempio migliore è SNMP: tutti i dispositivi di rete e le appliance gestibili hanno un agente SNMP integrato. Checkmk accede a questo agente SNMP e recupera i dettagli sullo stato del sistema con query attive (GET).
Alcuni sistemi, tuttavia, non consentono né l'installazione di un agente né supportano SNMP in un modulo utilizzabile, ma offrono interfacce di programmazione dell'applicazione ( API) per la gestione, basate su Telnet, SSH o HTTP/XML. Checkmk interroga tali interfacce tramite questi cosiddetti agenti speciali in esecuzione sul server Checkmk.
Infine, il monitoraggio dei servizi di rete come HTTP, SMTP o IMAP è un caso a sé stante. Nel caso di un servizio di rete, la procedura più ovvia è quella di interrogare e monitorare il servizio attraverso la rete. Per questo Checkmk a volte utilizza dei plug-in propri, a volte già esistenti. Questi sono chiamati anche controlli attivi. Ad esempio, check_http
è molto popolare per interrogare i siti web. Ma anche in questo caso di solito viene utilizzato un agente aggiuntivo che fornisce dati supplementari sul server per il monitoraggio.
L'immagine seguente mostra i vari modi in cui Checkmk può accedere ai sistemi da monitorare:

Finora abbiamo parlato solo del monitoraggio attivo, la disciplina di punta di Checkmk. Esiste anche il metodo inverso, ovvero quello in cui è il sistema di destinazione stesso a inviare messaggi al monitoraggio, ad esempio tramite syslog o SNMP trap. Per queste funzioni Checkmk dispone della Console degli Eventi, descritta in un apposito articolo.
2. L'agente Checkmk
Per il monitoraggio di un server o di una workstation, è necessario un piccolo programma che deve essere installato sull'host: l'agente Checkmk.
Questo agente è un semplice script di shell, minimalista, sicuro e facilmente estendibile. Nella versione di Checkmk 2.1.0, a questo script è stato aggiunto un nuovo componente, l'Agent Controller. L'Agent Controller è collegato a monte dello script agente, interroga lo script agente e comunica con il server Checkmk al suo posto. Per farlo, il controller si registra con l'Agent Receiver, che gira sul server Checkmk.

Questa architettura è identica nell'agente Linux e nell'agente Windows e solo l'implementazione tecnica è specifica per ogni sistema operativo.
Lo script dell'agente è responsabile della raccolta dei dati di monitoraggio e della loro messa a disposizione dell'Agent Controller. Questo script è..:
minimalista, perché utilizza una quantità minima di RAM, CPU, spazio su disco e risorse di rete.
sicuro, perché non consente alcun accesso dalla rete.
facilmente estendibile, perché puoi scrivere plug-in dell'agente in qualsiasi linguaggio di programmazione o scripting e farli eseguire dallo script agente.
L'Agent Controller è il componente dell'agente responsabile del trasporto dei dati raccolti dall'agent script. In modalità pull, è in ascolto sulla porta TCP 6556 per le connessioni in arrivo dall'istanza Checkmk e interroga l'agent script.
L'architettura software dell'agente con l'Agent Controller è il prerequisito per offrire nuove funzioni, che non si sarebbero potute ottenere con il design minimalista dello script agente, come la crittografia della comunicazione tramite Transport Layer Security (TLS), la compressione dei dati e l'annullamento della direzione della comunicazione dalla modalità pull alla modalità push.
Nella modalità pull, il server Checkmk avvia la comunicazione e richiede i dati all'agente, mentre nella modalità push l'iniziativa proviene dall'agente. La modalità push è necessaria per una configurazione basata sul cloud e in alcune reti compartimentate. In entrambi i casi, il server Checkmk non può accedere alla rete in cui si trovano gli host da monitorare. L'agente trasmette quindi automaticamente i dati al server Checkmk su base regolare.
L'Agent Receiver è il componente del server Checkmk che funge da endpoint generale per la comunicazione dell'Agent Controller, ad es. per registrare la connessione e ricevere i dati inviati dall'Agent Controller in modalità push. Nella modalità push, i dati ricevuti vengono archiviati dall'Agent Receiver nel file system e quindi messi a disposizione degli agenti Checkmk Fetcher, che nelle edizioni commerciali sono i fetcher di Checkmk. Al contrario, nella modalità pull, lo scambio di dati avviene direttamente tra i fetcher del sito e l'Agent Controller senza bisogno di un Agent Receiver.
La crittografia TLS e la compressione dei dati avvengono tramite l'Agent Controller e l'Agent Receiver, cioè il server Checkmk e l'agente devono avere almeno la versione 2.1.0. Il primo passo dopo l'installazione è la registrazione dell'Agent Controller con l'Agent Receiver del sito Checkmk, che stabilisce una relazione di fiducia tra questi due componenti. La crittografia TLS della comunicazione sarà configurata durante questa registrazione. Per la modalità push, il server Checkmk e l'agente devono avere almeno la versione 2.2.0.
La seguente tabella riassume le varie funzioni dell'agente Checkmk e mostra in quali edizioni di Checkmk sono disponibili:
Funzione | Descrizione | Disponibilità |
---|---|---|
Registrazione |
Viene stabilita la relazione di fiducia tra l'Agent Controller dell'host e l'Agent Receiver dell'istanza Checkmk. |
In tutte le edizioni a partire dalla versione 2.1.0 |
Crittografia TLS |
Dopo l'avvenuta registrazione, i dati vengono scambiati in modulo criptato utilizzando il protocollo TLS. |
Tutte le edizioni a partire dalla versione 2.1.0 |
Compressione |
I dati vengono scambiati in modulo compresso. |
Tutte le edizioni a partire dalla versione 2.1.0 |
Modalità pull |
L'agente Checkmk invia i dati su richiesta dell'istanza Checkmk. |
Tutte le edizioni |
Modalità push |
L'agente invia i dati al sito Checkmk in modo autonomo. |
Checkmk Cloud a partire dalla versione 2.2.0, Checkmk MSP a partire da 2.3.0 |
Configurazione individuale degli agenti |
Con Agent bakery, gli agenti possono essere configurati individualmente per singoli o gruppi di host e i pacchetti di agenti possono essere creati per l'installazione. |
Edizioni commerciali |
Il pacchetto dell'Agent bakery viene installato manualmente o tramite script e da quel momento in poi viene aggiornato automaticamente. |
Edizioni commerciali |
|
La registrazione dell'agente Checkmk e la creazione dell'host avvengono automaticamente. |
Checkmk Cloud a partire dalla versione 2.2.0, Checkmk MSP a partire dalla versione . 2.3.0 |
3. Scaricare l'agente dalla pagina di download
Attualmente il progetto Checkmk gestisce agenti per undici diverse famiglie di operatori. Tutti questi agenti sono componenti di Checkmk e sono disponibili per il download tramite l'interfaccia web del server Checkmk. Si accede a questi agenti tramite Setup > Agents.
In Checkmk Raw, le voci di menu Linux, Windows e Other operating systems ti porteranno direttamente alle pagine di download dove troverai gli agenti preconfigurati e i plug-in dell'agente, nell'esempio seguente alla pagina di download di Linux, Solaris, AIX:

Nelle edizioni commerciali, la voce di menu Windows, Linux, Solaris, AIX ti porta a una pagina che ti dà anche accesso all'agent bakery. Da questa pagina, la voce di menu Related ti porterà alle pagine dei file dell'agente Checkmk Raw.
I pacchetti di agenti per Linux (nei formati RPM e DEB) e per Windows (nel formato MSI) si trovano nel primo box della corrispondente pagina di download. In questi pacchetti software troverai il nuovo agente con Agent Controller dalla versione 2.1.0. L'installazione e la configurazione sono descritte in dettaglio negli articoli sugli agenti Linux e sugli agenti Windows.
Nel box Agents puoi trovare gli script dell'agente appropriati per i vari sistemi operativi. Per i sistemi operativi su cui l'agente deve essere configurato in modalità legacy (cioè senza Agent Controller), sono disponibili gli articoli Monitoraggio di Linux in modalità legacy e Monitoraggio di FreeBSD.
4. L'agent bakery
4.1. Introduzione
Se utilizzi una delle edizioni commerciali, puoi creare pacchetti di agenti personalizzati con l'Agent Bakery. In questo modo, oltre agli agenti esistenti, puoi creare (o "cuocere") pacchetti di agenti che contengono configurazioni personalizzate e plug-in aggiuntivi o opzionali. Puoi installare questi pacchetti con un solo comando. Tali pacchetti sono ideali per la distribuzione e l'installazione automatica. Puoi anche creare agenti personalizzati per cartelle o gruppi specifici di host. Ciò consente una grande flessibilità grazie all'uso degli aggiornamenti automatici degli agenti.
Anche se è vero che l'agente Checkmk può funzionare immediatamente "nudo", senza bisogno di configurazione e senza plug-in, in alcuni casi l'agente deve essere configurato. Alcuni esempi:
Limitazione dell'accesso a indirizzi IP specifici
Monitoraggio di database Oracle (sono necessari un plug-in e una configurazione)
Monitoraggio di file di log di testo (sono necessari un plug-in, nomi di dati e modelli di testo).
Utilizzo dell'inventario hardware/software (è necessario un plug-in).
![]() |
Per ogni processo di cottura è possibile generare una revisione consecutiva per distinguere i diversi processi di cottura, visibile solo nei metadati del pacchetto cotto. Da Checkmk 2.3.0, questa funzione è disattivata per impostazione predefinita per evitare che gli agenti Bake agents perdano la loro firma valida. Se vuoi comunque attivare la revisione del bake, ad esempio per un'elaborazione unica in un gestore di pacchetti, attiva l'opzione Setup > Global settings > Setup > Apply bake revision. E se attivata: Per gli agenti cotti automaticamente in un secondo momento tramite la regola Automatically create monitoring agents, la revisione precedente rimane in ogni caso e non viene incrementata ulteriormente, anche in questo caso per non perdere la firma. Se hai bisogno di Bake agents cotti automaticamente con revisioni consecutive, dovresti utilizzare l'API REST invece della regola, ad esempio. |
4.2. Scaricare l'agente
Puoi accedere all'agent bakery tramite il sito Setup > Agents > Windows, Linux, Solaris, AIX:

Checkmk supporta i sistemi operativi Windows, Linux, Solaris e AIX con l'Agent bakery. Per Linux puoi scegliere tra i formati di pacchetto RPM (per i sistemi basati su Red Hat Enterprise Linux (RHEL), SLES) e DEB (per Debian, Ubuntu), oltre a un cosiddetto "tarball" nel formato TGZ che viene semplicemente scompattato come root
sotto /
.
Allo stesso modo, per AIX è disponibile un tarball, che però non prevede l'integrazione automatica in inetd
. L'integrazione deve essere eseguita manualmente come azione una tantum. Per Solaris ci sono ancora il tarball e un pacchetto PKG.
Se non hai ancora effettuato alcuna impostazione per host specifici, esiste un'unica configurazione predefinita dell'agente. Nelle prossime due sezioni verrà fornita una spiegazione delle varie configurazioni possibili dell'agente.
Ogni configurazione dell'agente ha un ID esplicito: il suo hash. I primi otto caratteri di un hash vengono visualizzati nella GUI. Questo hash fa parte della versione del pacchetto ed è incorporato nel nome del file del pacchetto. Ogni volta che modifichi qualcosa nella configurazione di un pacchetto o aggiorni Checkmk, anche l'hash del pacchetto viene modificato. In questo modo il gestore di pacchetti del sistema operativo riconosce che si tratta di un pacchetto diverso ed esegue un aggiornamento. Il numero di versione di Checkmk non è sufficiente per fare una distinzione.
I pacchetti Baked per Linux e Windows vengono installati nello stesso modo dei pacchetti disponibili nella pagina di download di Checkmk.
4.3. Configurazione tramite regole
La configurazione dell'agente Checkmk può essere modificata, come spesso accade in Checkmk, attraverso delle regole. Queste ti offrono la possibilità di dotare host diversi di impostazioni o plug-in dell'agente differenti. Il pulsante Agent rules ti porta a una pagina che elenca tutti i set di regole che influenzano gli agenti:

Facciamo un esempio: vuoi limitare l'elenco degli indirizzi IP a cui è consentito l'accesso all'agente. Per questo seleziona il set di regole Generic Options > Allowed agent access via IP address (Linux, Windows). Inserisci uno o più indirizzi IP come valore della regola:

Lascia invariati i valori predefiniti nel box Conditions in modo che questa regola si applichi a tutti gli host. Salva la nuova regola.
4.4. Le configurazioni dell'agente
Dopo aver salvato, torna alla pagina Windows, Linux, Solaris, AIX. Il pulsante assicura che l'agente sia di pertinenza. Il risultato: ora hai due configurazioni individuali:

Nella colonna Agent type puoi leggere a quali host è assegnata la rispettiva configurazione. Per motivi di spazio, questo elenco potrebbe non essere completo.
Vanilla (factory settings) |
I pacchetti agente contengono solo la configurazione predefinita e quindi nessuna regola agente. |
Folders |
I pacchetti agente contengono tutte le regole agente in cui non sono definite condizioni per gli host e che si applicano alle cartelle elencate. |
Hosts |
I pacchetti agente contengono tutte le regole agente che si applicano agli host dell'elenco. |
Nell'esempio mostrato sopra, la regola Allowed agent access via IP address (Linux, Windows) è stata creata senza condizioni per gli host. La nuova configurazione dell'agente si applica quindi alla cartella Main e a localhost
, attualmente l'unico host del sito.
Più regole specifiche per gli host distribuisci, più varianti di agenti saranno costruite. L'Agent bakery si preoccupa di costruire solo le configurazioni che sono utilizzate da almeno una delle cartelle o degli host esistenti.
Inoltre, puoi accedere ai pacchetti agente di un host comodamente dalle proprietà dell'host cliccando sull'host in Setup > Hosts > Hosts e selezionando Monitoring agent nel menu Hosts:

Perché per ogni host vengono forniti i pacchetti per tutti i sistemi operativi? La risposta è molto semplice: se su un sistema non è installato alcun agente Checkmk non è in grado di riconoscere il sistema operativo. In ogni caso, una volta attivato l'aggiornamento automatico dell'agente, non dovrai fare altro.
4.5. Estensione tramite plug-in
Molte regole riguardano l'installazione di vari plug-in. Questi estendono l'agente di monitoraggio di componenti piuttosto specifici. La maggior parte di questi sono applicazioni speciali come, ad esempio, i database. Accanto alla regola che attiva un plug-in troverai anche i set di regole per configurare il plug-in. Ecco, ad esempio, la regola per il monitoraggio di MySQL:

4.6. File di configurazione
Fai attenzione a non modificare manualmente i file di configurazione generati dall'Agent bakery sul sistema di destinazione. Anche se le modifiche manuali funzionano per il momento, al successivo aggiornamento dell'agente le modifiche andranno perse. Tuttavia è possibile installare plug-in e file di configurazione aggiuntivi senza problemi.
4.7. Attivare il log
Nelle impostazioni globali puoi attivare il log per i processi di panificazione sotto Agent bakery logging. I risultati si trovano nel file ~/var/log/agent_bakery.log
.

Senza l'attivazione della registrazione, potrai vedere queste informazioni solo se fai il bake agent con cmk --bake-agents -v
al comando.
5. Quando deve essere aggiornato l'agente?
Indipendentemente dal fatto che tu monitorizzi solo una manciata o addirittura migliaia di host, l'aggiornamento dell'agente Checkmk su tutti gli host è sempre un'operazione di grande portata. L'aggiornamento automatico dell'agente nelle edizioni commerciali è comunque di grande aiuto. Tuttavia, dovresti aggiornare l'agente solo quando:
l'aggiornamento risolve un problema che ti riguarda, oppure
l'aggiornamento include nuove funzioni necessarie.
Affinché ciò sia possibile, in Checkmk vige una regola generale: le versioni più recenti di Checkmk sono in grado di gestire l'output degli agenti più vecchi.
Se la versione di Checkmk di un agente è più recente di quella del server Checkmk, è possibile che i plug-in di controllo non riescano a interpretare correttamente l'output dell'agente. In questo caso, i servizi interessati passano allo stato SCONOSCIUTO:

Anche se l'output dell'immagine precedente suggerisce il contrario, non inviare un report sui crash in questo caso.
6. Diagnosi degli errori
6.1. Testare l'agente tramite la linea di comando
Un agente correttamente installato può essere facilmente interrogato dalla linea di comando. Il modo migliore per farlo è direttamente dall'istanza Checkmk che sta monitorando attivamente l'agente. In questo modo puoi essere certo che l'indirizzo IP del server sarà accettato dall'agente. I comandi adatti sono ad es. telnet
e netcat
(o nc
).
OMD[mysite]:~$ echo | nc 10.1.1.2 6556
16
L'output di 16
indica che la connessione stabilita tramite la porta TCP 6556 è andata a buon fine e l'handshake TLS può ora avere luogo. L'agente Checkmk è stato registrato presso l'istanza Checkmk tramite l'Agent Controller, quindi la comunicazione è criptata TLS e non verrà visualizzato alcun output dell'agente. Per i dettagli sulla registrazione, consulta gli articoli sull'agente Linux e sull'agente Windows.
Se la comunicazione tra l'agente e il server Checkmk è ancora non criptata (come nella modalità legacy pull) o è e rimane non criptata (come nella modalità legacy), questo comando ti fornirà l'output completo dell'agente non criptato invece di 16
(di cui sono mostrate solo le prime righe):
OMD[mysite]:~$ echo | nc 10.1.1.2 6556
<<<check_mk>>>
Version: 2.1.0p1
AgentOS: linux
Hostname: mycmkserver
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/lib/check_mk_agent/plugins
L'output inizia sempre con la riga <<<check_mk>>>
. Le righe incluse in <<<
e >>>
sono chiamate header sezioni. Queste dividono l'output dell'agent in sezioni. Ogni sezione contiene informazioni correlate e di solito è semplicemente l'output di un comando diagnostico. La sezione check_mk
ha un ruolo speciale: contiene informazioni generali sull'agent, come ad es. il numero di versione.
Se l'host è già monitorato, puoi ottenere i dati con il comando cmk -d
, che utilizza l'indirizzo IP configurato in Setup, consente di riconfigurare il numero di porta e di individuare eventuali agenti speciali presenti: con l'opzione --debug -v
puoi ottenere anche alcune informazioni di debug.
OMD[mysite]:~$ cmk -d mycmkserver
<<<check_mk>>>
Version: 2.1.0p1
Se il monitoraggio è già in corso regolarmente per l'host in questione, una copia aggiornata dell'output si trova sempre nella directory del sito ~/tmp/check_mk/cache
:
OMD[mysite]:~$ cat tmp/check_mk/cache/mycmkserver
<<<check_mk>>>
Version: 2.1.0p1
![]() |
Per informazioni su altri comandi di diagnostica che possono essere eseguiti sull'host dell'agente, consulta gli articoli sull'agente Linux e sull'agente Windows. |
6.2. Testare l'agente tramite l'interfaccia web
Puoi anche eseguire una diagnosi dell'agente tramite l'interfaccia web, che tiene conto di tutte le impostazioni e supporta anche i dispositivi SNMP e quelli interrogati tramite special agent. In effetti, Checkmk tenta sempre di interrogare contemporaneamente la porta TCP 6556 e SNMP.
Puoi accedere al test di connessione tramite le proprietà dell'host: nella pagina Properties of host, seleziona Host > Connection tests dal menu e avvia il test facendo clic su Run tests:

Puoi provare subito alcune di queste impostazioni (ad esempio, la comunità SNMP) e salvarle in caso di successo.