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

Affinché un sistema di monitoraggio possa ricevere da un endpoint informazioni oltre alla semplice accessibilità, è necessario l'aiuto del sistema di destinazione. Ad esempio: in che altro modo Checkmk può sapere quanto è pieno il volume di archiviazione di un server senza che quel sistema fornisca in qualche modo l'informazione? 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 specificati 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 — dai più comuni come Windows e Linux a quelli più esotici come OpenVMS. Gli agenti sono passivi in modalità pull e ascoltano sulla porta TCP 6556. Solo quando ricevono una richiesta dal server Checkmk questi agenti si attivano e rispondono con i dati richiesti. In modalità push, invece, l'agente Checkmk invia periodicamente i dati di monitoraggio al server Checkmk di propria iniziativa.

Tutti gli agenti Checkmk sono disponibili tramite l'interfaccia web nel menu "Setup". Da lì puoi effettuare lo scaricamento degli agenti e installarli sul sistema di destinazione. In questo articolo puoi imparare come installare, configurare ed estendere gli agenti Checkmk.

Tuttavia, ci sono situazioni in cui non è necessario installare un agente per il monitoraggio, poiché ne è già presente uno utilizzabile. L'esempio migliore è SNMP: Tutti i dispositivi di rete gestibili dispongono di un agente SNMP integrato. Checkmk accede a questo agente SNMP e recupera i dettagli sullo stato del sistema tramite query attive (GET).

Alcuni sistemi, tuttavia, non consentono l'installazione di un agente né supportano SNMP in una forma utilizzabile. Al loro posto offrono interfacce di programmazione dell'applicazione per la gestione, le cosiddette API, basate su Telnet, SSH o HTTP/XML. Checkmk interroga tali interfacce tramite questi cosiddetti special agents 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 ovvia è quella di interrogare e monitorare il servizio attraverso la rete. Per questo Checkmk utilizza a volte i propri plug-in, a volte quelli già esistenti. Questi sono chiamati anche active checks. 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 al monitoraggio.

L'immagine seguente mostra i vari modi in cui Checkmk può accedere ai sistemi da monitorare:

Illustration of the ways Checkmk accesses monitored systems.

Finora abbiamo parlato solo del monitoraggio attivo, il fiore all’occhiello 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 sua Console degli Eventi, descritta in un articolo a parte.

2. L'agente Checkmk

Per il monitoraggio di un server o di una workstation, ti serve un piccolo programma da installare sull'host: l'agente Checkmk.

Questo agente è un semplice shell script minimalista, sicuro e facilmente estendibile. Nella versione Checkmk 2.1.0 , a questo script agente è 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 presso l'Agent Receiver, che gira sul server Checkmk.

Illustration of the communication between an agent and a site.
Interazione dei componenti di software

Questa architettura è identica nell'agente Linux e nell'agente Windows, e solo l'implementazione tecnica è specifica per ciascun sistema operativo.

Lo script 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 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 dallo script agente. In modalità pull, ascolta sulla porta TCP 6556 le connessioni in entrata dal sito Checkmk e interroga lo script agente.

L'architettura software dell'agente con l'Agent Controller è il prerequisito per offrire nuove funzioni, che non sarebbero state possibili con il design minimalista dello script agente, come la crittografia della comunicazione tramite Transport Layer Security (TLS), la compressione dei dati e l'inversione della direzione di comunicazione dalla modalità pull alla modalità push.

In modalità pull, il server Checkmk avvia la comunicazione e richiede i dati all'agente. In modalità push, l'iniziativa parte 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 a intervalli regolari.

L'Agent Receiver è il componente del server Checkmk che funge da endpoint generale per la comunicazione dell'Agent Controller, ad esempio per registrare la connessione e per ricevere i dati inviati dall'Agent Controller in modalità push. Nella modalità push, i dati ricevuti vengono memorizzati dall'Agent Receiver nel file system e sono così resi disponibili ai fetcher del sito. Nelle edizioni commerciali si tratta dei Checkmk Fetcher. 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 vengono gestite tramite l'Agent Controller e l'Agent Receiver. Per questo motivo, il server Checkmk e l'agente Checkmk devono avere almeno la versione 2.1.0. Il primo passo dopo l'installazione è la registrazione dell'Agent Controller con l'Agent Receiver dell'istanza Checkmk, che stabilisce una relazione di fiducia tra questi due componenti. Durante questa registrazione verrà configurata la crittografia TLS della comunicazione. Per la modalità push, il server e l'agente Checkmk devono avere almeno la versione 2.2.0.

La tabella seguente 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 nell'host e l'Agent Receiver nell'istanza Checkmk.

Tutte le edizioni

Crittografia TLS

Dopo la registrazione, i dati vengono scambiati in forma crittografata utilizzando TLS.

Tutte le edizioni

Compressione

I dati vengono scambiati in forma compressa.

Modalità pull

L'agente invia i dati quando richiesto dall'istanza Checkmk.

Modalità push

L'agente invia i dati all'istanza Checkmk in modo autonomo.

Checkmk Ultimate

Configurazione individuale degli agenti

Con agent bakery, gli agenti possono essere configurati individualmente per singoli host o gruppi di host e si possono creare i pacchetti degli agenti per l'installazione.

Edizioni commerciali

Aggiornamenti automatici degli agenti

Il pacchetto proveniente da Agent Bakery viene prima installato manualmente o tramite script e da quel momento in poi viene aggiornato automaticamente.

Creazione automatica degli host

La registrazione dell'agente Checkmk sull'istanza Checkmk e la creazione dell'host avvengono automaticamente.

Checkmk Ultimate

3. Scaricare l'agente dalla pagina di download

Nel progetto Checkmk sono attualmente gestiti agenti per undici diverse famiglie di sistemi operativi. Tutti questi agenti sono componenti di Checkmk e sono disponibili per lo scaricamento tramite l'interfaccia web del server Checkmk. Puoi accedere a questi agenti tramite Setup > Agents.

In Comunità Checkmk-0000@deepl.internal, 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 degli agenti; nell'esempio seguente, alla pagina di download per Linux, Solaris, AIX:

List of Linux agents for download in Checkmk Community.

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 degli agenti come nella Comunità Checkmk.

Gli agenti precompilati per Linux (nei formati RPM e DEB) e per Windows (nel formato MSI) si trovano proprio nella prima box della pagina di download corrispondente. In questi pacchetti software troverai l'agente con Agent Controller a partire dalla versione 2.1.0. L'installazione e la configurazione sono descritte in dettaglio negli articoli sugli agenti Linux e sugli agenti Windows.

Nella box "Agents" puoi trovare gli script agenti appropriati per i vari sistemi operativi. Per i sistemi operativi su cui l'agente deve essere configurato in modalità legacy (cioè senza un Agent Controller), ci sono gli articoli sul monitoraggio di Linux in modalità legacy e sul monitoraggio di FreeBSD.

4. L'agent bakery

4.1. Introduzione

CEE Se utilizzi una delle edizioni commerciali, puoi creare pacchetti di agenti personalizzati con l'agent bakery. In questo modo, oltre agli agenti esistenti, puoi anche creare (o "bake") 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 persino creare agenti personalizzati per cartelle o gruppi specifici di host. Ciò garantisce una grande flessibilità grazie all’uso degli aggiornamenti automatici degli agenti.

Sebbene sia vero che l'agente Checkmk possa funzionare immediatamente "nudo" — senza bisogno di configurazione e senza plug-in — in alcuni casi l'agente deve comunque essere configurato. Alcuni esempi:

  • Limitazione dell'accesso a indirizzi IP specifici

  • Monitoraggio dei database Oracle (sono necessari un plug-in e una configurazione)

  • Monitoraggio di file di log di testo (sono necessari un plug-in, nomi dei dati e pattern di testo)

  • Utilizzo dell'inventario HW/SW (è richiesto un plug-in)

Tip

Per ogni processo di bake è possibile generare una revisione consecutiva per distinguere i diversi processi. Questa è visibile solo nei metadati del pacchetto bake. In Checkmk 2.3.0 questa funzione è disattivata di default per evitare che gli agenti bake perdano la loro firma valida. Se desideri comunque attivare la revisione bake, ad esempio per un'elaborazione univoca in un gestore di pacchetti, abilita l'opzione "Setup > Global settings > Setup > Apply bake revision". E se attivata: per gli agenti bake automaticamente in un secondo momento tramite la regola "Automatically create monitoring agents", la revisione precedente rimane in ogni caso e non viene incrementata ulteriormente — sempre per non perdere la firma. Se hai bisogno di agenti bake automaticamente con revisioni consecutive, dovresti utilizzare l'API REST invece della regola, ad esempio.

4.2. Scaricamento dell'agente

Puoi accedere all'agent bakery tramite Setup > Agents > Windows, Linux, Solaris, AIX:

Entry page to the Agent Bakery.

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 sistemi basati su Red Hat Enterprise Linux (RHEL), SLES) e DEB (per Debian, Ubuntu), oltre a un cosiddetto "tarball" nel formato di file TGZ che viene semplicemente decompresso come root all'indirizzo /. Allo stesso modo, è disponibile un tarball per AIX, tuttavia questo non include l'integrazione automatica nell'inetd. L'integrazione deve essere eseguita manualmente come azione una tantum. Per Solaris c'è di nuovo il tarball e un pacchetto PKG.

Se non hai ancora effettuato alcuna impostazione per host specifici, è presente solo una 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 farà parte della versione del pacchetto e sarà 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 verrà 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 sarebbe sufficiente per distinguere in questo caso.

I pacchetti precompilati per Linux e Windows si installano allo stesso modo dei pacchetti disponibili nella pagina di download di Checkmk.

4.3. Configurazione tramite regole

La configurazione dell’agente può essere modificata — come spesso accade in Checkmk — tramite regole. Queste ti offrono la possibilità di dotare host diversi di impostazioni o plug-in diversi. Il pulsante “Agent rules” ti porta a una pagina che elenca tutti i set di regole che influenzano gli agenti:

List of rules for the agents.

Prendiamo il seguente esempio: vuoi limitare l'elenco degli indirizzi IP autorizzati ad accedere all'agente. Per farlo, 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:

Rule to restrict IP addresses to access the agent.

Lascia invariati i valori predefiniti nella 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 "Icon for baking the agents." assicura che l'agente venga aggiornato. Il risultato: ora hai due configurazioni separate:

List with two agent configurations to download.

Nella colonna "Agent type" puoi vedere 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 singola regola agente.

Folders

I pacchetti degli agenti contengono tutte le regole degli agenti in cui non sono definite condizioni per gli host e che si applicano alle cartelle elencate.
I pacchetti degli agenti vengono creati specificamente per una cartella se l'attributo Bake agent packages è impostato su Bake a generic agent package for this folder nel file Folder properties. Questo attributo si applica solo alla cartella e non viene ereditato.
Questa voce è utile per creare agenti per host che non esistono ancora in Checkmk. La cartella può anche essere vuota per creare automaticamente degli host in un secondo momento. Per impostazione predefinita, i pacchetti agente vengono creati solo per l'Main (o root folder).

Hosts

I pacchetti degli agenti contengono tutte le regole degli agenti che si applicano agli host presenti nell'elenco.

Nell'esempio sopra riportato, 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 dell'istanza.

Più regole specifiche per l'host distribuisci, più varianti diverse di agenti verranno create. Agent bakery si assicura di creare solo quelle configurazioni che vengono utilizzate da almeno una delle cartelle o degli host esistenti.

A proposito, puoi anche accedere comodamente ai pacchetti degli agenti di un host tramite le proprietà dell'host cliccando sull'host in Setup > Hosts > Hosts e selezionando Monitoring agent nel menu Hosts:

List of agents for a host to download.

Perché vengono forniti pacchetti per tutti i sistemi operativi per ogni host? La risposta è molto semplice: se su un sistema non è installato alcun agente, Checkmk non può ovviamente riconoscere il sistema operativo. In ogni caso, una volta attivati gli aggiornamenti automatici degli agenti, non devi fare altro.

4.5. Estensione tramite plug-in

Molte regole riguardano l’installazione di vari plug-in. Questi estendono l’agente di monitoraggio per il 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 le impostazioni per configurarlo. Ecco, ad esempio, la regola per il monitoraggio di MySQL:

Rule for the MySQL plug-in of the agent.

4.6. File di configurazione

Fai attenzione a non modificare manualmente i file di configurazione generati da Agent Bakery sul sistema di destinazione. Sebbene le modifiche manuali funzionino per ora, la prossima volta che aggiorni l'agente, le modifiche andranno perse. Tuttavia è possibile installare plug-in e file di configurazione aggiuntivi senza problemi.

4.7. Attiva la registrazione

Nelle impostazioni globali puoi abilitare la registrazione per i processi di bakery in "Agent bakery logging". I risultati si trovano nel file "~/var/log/agent_bakery.log".

Option to enable bakery logging.

Senza la registrazione abilitata, vedrai queste informazioni solo se esegui il "bake" degli agenti con cmk --bake-agents -v sulla riga di comando.

5. Quando è necessario aggiornare un agente?

Indipendentemente dal fatto che tu effettui il monitoraggio solo di pochi host — o addirittura di migliaia —, aggiornare l'agente Checkmk su tutti gli host è sempre un'operazione impegnativa. L'aggiornamento automatico dell'agente nelle edizioni commerciali è comunque di grande aiuto. Ciononostante, 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 si applica una regola generale: le versioni più recenti di Checkmk sono in grado di gestire l’output degli agenti più vecchi.

Importante: il contrario non è necessariamente vero. Se la versione Checkmk di un agente è più recente di quella del server di monitoraggio, è possibile che i plug-in di controllo non riescano a interpretare correttamente l'output dell'agente. In tal caso, i servizi interessati assumono lo stato SCONOSCIUTO:

List of services in UNKNOWN status due to a failed check.

Anche se l'output nell'immagine sopra suggerisce il contrario, in questo caso non inviare un rapporto sui crash.

6. Diagnosi degli errori

6.1. Verifica dell'agente tramite la riga di comando

Un agente installato correttamente può essere interrogato molto facilmente dalla riga di comando. Il modo migliore per farlo è direttamente dal sito Checkmk che sta già monitorando attivamente l'agente. In questo modo puoi essere certo che l'indirizzo IP del server verrà accettato dall'agente. Comandi adatti sono ad esempio telnet e netcat (o nc).

OMD[mysite]:~$ echo | nc 10.1.1.2 6556
16
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

L'output di 16 indica che la connessione stabilita tramite la porta TCP 6556 è andata a buon fine e che ora può avvenire l'handshake TLS. L'agente è stato registrato sul sito Checkmk tramite l'Agent Controller, quindi la comunicazione è crittografata con 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 crittografata (come nella modalità legacy pull) o è e rimane non crittografata (come nella modalità legacy), questo comando ti fornirà l'output completo e non crittografato dell'agente invece dell'16 (di cui qui sotto sono mostrate solo le prime righe):

OMD[mysite]:~$ echo | nc 10.1.1.2 6556
<<<check_mk>>>
Version: 2.4.0p24
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
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

L'output inizia sempre con la riga <<<check_mk>>>. Le righe incluse in <<< e >>> sono chiamate header sezioni. Queste dividono l'output dell'agente in sezioni. Ogni sezione contiene informazioni correlate ed è solitamente semplicemente l'output di un comando diagnostico. La sezione check_mk svolge un ruolo speciale. Contiene informazioni generali sull'agente, come ad esempio il suo numero di versione.

Se l'host è già sottoposto al monitoraggio, puoi anche recuperare i dati con il comando cmk -d. Questo comando utilizza l'indirizzo IP configurato in Setup, tiene conto di un numero di porta eventualmente riconfigurato e anche di eventuali special agents presenti: Con le opzioni --debug -v puoi inoltre ottenere alcune informazioni di debug.

OMD[mysite]:~$ cmk -d mycmkserver
<<<check_mk>>>
Version: 2.4.0p24
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se il monitoraggio è già in esecuzione regolare per l'host in questione, una copia aggiornata dell'output è sempre disponibile nella directory dell'istanza ~/tmp/check_mk/cache:

OMD[mysite]:~$ cat tmp/check_mk/cache/mycmkserver
<<<check_mk>>>
Version: 2.4.0p24
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!
Tip

Per informazioni su altri comandi diagnostici che possono essere eseguiti sull'host dell'agente, consulta gli articoli sull'agente Linux e sull'agente Windows.

6.2. Test dell'agente tramite l'interfaccia web

Puoi anche eseguire una diagnosi dell'agente tramite l'interfaccia web. Questo tiene conto di tutte le impostazioni e supporta anche i dispositivi SNMP e quelli interrogati tramite special agents. In pratica, Checkmk cerca sempre di interrogare contemporaneamente tramite 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 cliccando su "Run tests":

Result of the connection test to a host.

Puoi provare subito molte di queste impostazioni (ad esempio, la comunità SNMP) e salvarle una volta che funzionano.


Last modified: Mon, 05 Jan 2026 16:37:41 GMT via commit 1eede4d13
In questa pagina