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. L'agente Linux

Linux-Logo.

Con Checkmk puoi monitorare i sistemi Linux in modo particolarmente efficace. Questo non tanto perché il team di sviluppo di Checkmk si senta "a casa" su Linux, quanto piuttosto perché Linux è un sistema molto aperto che offre numerose interfacce ben documentate e facili da interrogare a supporto di un sistema di monitoraggio dettagliato.

Poiché la maggior parte delle interfacce non è effettivamente accessibile tramite la rete, è necessaria l'installazione di un agente di monitoraggio. Ecco perché Checkmk ha un proprio agente per il monitoraggio di Linux. Questo agente è un semplice script di shell minimalista, trasparente e sicuro.

Nella versione 2.1.0 di Checkmk, con l'Agent Controller è stato aggiunto un nuovo componente a questo script dell'agente. L'Agent Controller gestisce le connessioni di rete ed esegue lo script dell'agente quando viene chiamato. Per farlo, si registra presso l'Agent Receiver, un processo che gira sul server Checkmk.

Quindi, da un lato, l'agente Linux mantiene lo script dell'agente e, di conseguenza, anche i suoi vantaggi. D'altro canto, offre maggiore flessibilità rispetto al metodo precedente di esecuzione dello script dell'agente tramite un super-server Internet, come la crittografia TLS delle comunicazioni o la compressione dei dati.

La modalità pull registrata, crittografata e compressa con l'Agent Controller è disponibile per tutte le edizioni di Checkmk, a condizione che sia il server Checkmk che l'agente abbiano almeno la versione 2.1.0. La modalità push è disponibile in Checkmk Ultimate CSE. Invertire la direzione della comunicazione rende più facile monitorare gli host che si trovano dietro i firewall. La modalità push è solitamente combinata con la registrazione automatica dell'agente Checkmk, disponibile anche in Checkmk Ultimate.

Tip

I pacchetti dell'agente che utilizzano la configurazione predefinita aprono la porta 6556 subito dopo l'installazione. Tramite questa porta invieranno i dati dell'agente non crittografati a chiunque ne faccia richiesta. Per gli host accessibili da Internet, dovresti quindi assicurarti, prima dell'installazione tramite le impostazioni del firewall, che solo gli host selezionati possano accedere a questa porta. Esegui la registrazione e la relativa attivazione della crittografia TLS subito dopo l'installazione.

L'Agent Controller viene avviato come processo in background (daemon) dal sistema di init systemd, quindi l'agente richiederà una distribuzione Linux che includa systemd. Questo requisito sarà probabilmente soddisfatto sul tuo host, poiché dal 2015 la maggior parte delle distribuzioni Linux ha adottato systemd come sistema di init.

Tuttavia, l'agente supporta anche una cosiddetta modalità legacy per supportare sistemi Linux con un'architettura di computer diversa da x86_64, senza gestione dei pacchetti RPM o DEB e senza il sistema di init systemd. In questa modalità legacy, l'agente funziona solo come script dell'agente, cioè senza un Agent Controller e quindi senza registrazione sul server Checkmk.

L'articolo che stai leggendo qui tratta l'installazione, la configurazione e l'estensione dell'agente Linux con l'Agent Controller. Ti mostra anche come capire se l'agente deve essere configurato in modalità legacy sul tuo sistema Linux senza un Agent Controller. Nell'articolo Monitoraggio di Linux in modalità legacy troverai tutte le informazioni su questo argomento.

2. Architettura dell'agente

L'agente Checkmk è composto dallo script dell'agente e dall'Agent Controller, che comunica con l'Agent Receiver sul server Checkmk. Consulta l'articolo generale sugli agenti di monitoraggio per i dettagli sull'architettura comune dell'agente Linux e dell'agente Windows. Questo capitolo riguarda l'implementazione specifica per Linux.

Lo script dell'agente check_mk_agent è responsabile della raccolta dei dati di monitoraggio e chiama in sequenza i comandi di sistema esistenti per la raccolta dei dati. Per ottenere tali informazioni, l'agente richiede anche i privilegi di unroote, quindi l'check_mk_agente deve essere eseguito come utente root.

Lo script dell'agente è minimalista, sicuro, facilmente estendibile e trasparente, poiché si tratta di uno script di shell in cui puoi vedere quali comandi vengono richiamati.

L'Agent Controller cmk-agent-ctl è il componente all'interno dell'agente responsabile del trasporto dei dati raccolti dallo script dell'agente. Il controller viene eseguito utilizzando l'utente cmk-agent, che ha privilegi limitati, ad esempio nessuna shell di login, e viene utilizzato solo per il trasferimento dei dati. L'utente cmk-agent viene creato durante l'installazione del pacchetto dell'agente. L'Agent Controller viene avviato come demone di systemd ed è accoppiato ad esso come servizio. In modalità pull, ascolta sulla porta TCP 6556 le connessioni in entrata dal sito Checkmk e interroga lo script dell'agente tramite un socket Unix (di un'unità systemd).

3. Installazione

Checkmk offre diversi modi per installare l'agente Linux: dall'installazione manuale del pacchetto software alla distribuzione completamente automatizzata, compresa la funzione di aggiornamento. Alcuni di questi metodi di installazione sono disponibili solo nelle edizioni commerciali:

Metodo Descrizione Checkmk Community Edizioni commerciali

Pacchetto RPM/DEB fornito

Installazione semplice di un agente standard con configurazione manuale tramite file di configurazione. La procedura di installazione controlla e configura systemd e xinetd in tutte le edizioni, in questo ordine.

X

X

Pacchetto RPM/DEB da Agent Bakery

Configurazione tramite GUI, possibilità di configurazione individuale per ogni host.

X

Aggiornamenti automatici

Il pacchetto di Agent Bakery va installato la prima volta manualmente o tramite script e da quel momento in poi verrà aggiornato automaticamente.

X

3.1. Scaricare i pacchetti RPM/DEB

Puoi installare l'agente Linux installando il pacchetto RPM o DEB. La scelta tra RPM e DEB dipende dalla distribuzione Linux su cui vuoi installare il pacchetto:

Pacchetto Estensione Installa su

RPM

.rpm

Sistemi basati su Red Hat Enterprise Linux (RHEL), SLES, Fedora, openSUSE, ecc.

DEB

.deb

Debian, Ubuntu, tutte le altre distribuzioni basate su DEB

Prima dell'installazione dovrai scaricare il pacchetto e trasferirlo sull'host (ad esempio con scp o WinSCP) dove vuoi che l'agente venga eseguito.

Ottenere un pacchetto tramite l'interfaccia grafica di Checkmk

In CRE Checkmk Community puoi trovare i pacchetti Linux dell'agente all'indirizzo Setup > Agents > Linux. Nelle edizioni commerciali, devi prima accedere all'Agent Bakery dal menu "Setup" tramite Agents > Windows, Linux, Solaris, AIX, dove troverai i pacchetti preparati individualmente. Da lì, la voce di menu "Related > Linux, Solaris, AIX files" ti porterà all'elenco dei file dell'agente:

Download page with the RPM/DEB packages.
Troverai i pacchetti RPM e DEB nella pagina di download

Tutto ciò di cui hai bisogno si trova proprio nella prima casella denominata "Packaged Agents": i file dei pacchetti RPM e DEB già pronti per l'installazione dell'agente Linux con le impostazioni predefinite.

Ottenere un pacchetto tramite HTTP

A volte scaricare su un computer e poi copiare sul computer di destinazione usando scp o WinSCP può essere molto macchinoso. Puoi anche scaricare il pacchetto dal server Checkmk direttamente sul sistema di destinazione tramite HTTP. A questo scopo, i download dei file dell'agente sono volutamente disponibili senza bisogno di effettuare il login, dopotutto i file non contengono alcuna informazione riservata. Chiunque può scaricare e installare Checkmk autonomamente e quindi accedere ai file.

Il modo più semplice per farlo è con wget. Puoi ottenere l'URL dal browser. Se conosci già il nome del pacchetto, puoi facilmente comporre l'URL da solo. Metti /mysite/check_mk/agents/ davanti al nome del file, nell'esempio seguente per il pacchetto RPM:

root@linux# wget http://mycmkserver/mysite/check_mk/agents/check-mk-agent-2.4.0p25-1.noarch.rpm
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Suggerimento: RPM dispone anche di un'wget integrata. Qui puoi scaricare e installare con un solo comando:

root@linux# rpm -U http://mycmkserver/mysite/check_mk/agents/check-mk-agent-2.4.0p25-1.noarch.rpm
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Ottenere un pacchetto tramite l'API REST

L'API REST di Checkmk offre i seguenti metodi per scaricare i pacchetti degli agenti dal server Checkmk:

  • Scaricare l'agente fornito.

  • Scaricare un agente preparato individualmente in base al nome host e al sistema operativo.

  • Scaricare un agente personalizzato in base all'hash dell'agente e al sistema operativo.

Tramite l'API REST hai la possibilità di scaricare il pacchetto direttamente dal server Checkmk sul computer di destinazione.

Ad esempio, il pacchetto DEB con l'agente Linux può essere scaricato con il seguente comando curl:

root@linux# curl -OJG "http://mycmkserver/mysite/check_mk/api/1.0/domain-types/agent/actions/download/invoke" \
--header 'Accept: application/octet-stream' \
--header 'Authorization: Bearer automation myautomationsecret' \
--data-urlencode 'os_type=linux_deb'
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Nota: il comando sopra riportato è stato suddiviso in quattro righe per facilitarne la lettura.

Questo è solo un semplice esempio per mostrare come funziona questo particolare endpoint dell'API REST per scaricare l'agente.

Per i dettagli su questo e altri endpoint dell'API REST, consulta la documentazione dell'API disponibile in Checkmk all'indirizzo Help > Developer resources > REST API documentation.

3.2. Installazione del pacchetto

Dopo aver scaricato il pacchetto RPM o DEB e, se necessario, averlo copiato sull'host da monitorare utilizzando scp, WinSCP o altri mezzi, l'installazione viene completata con un unico comando.

Tip

I nomi dei pacchetti utilizzati nei comandi mostrati potrebbero differire leggermente a seconda di come hai scaricato il pacchetto dell'agente.

Il pacchetto RPM viene installato come utente root con il comando rpm -U:

root@linux# rpm -U check-mk-agent-2.4.0p25-1.noarch.rpm
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

A proposito, l'opzione -U sta per "aggiornamento", ma può anche eseguire correttamente un'installazione iniziale. Ciò significa anche che puoi utilizzare questo comando per aggiornare un agente esistente alla versione corrente e utilizzare lo stesso comando per futuri aggiornamenti del pacchetto dell'agente.

L'installazione del pacchetto DEB — e un aggiornamento — viene eseguita come utente root con il comando dpkg -i:

root@linux# dpkg -i check-mk-agent_2.4.0p25-1_all.deb
(Reading database ... 739920 files and directories currently installed.)
Preparing to unpack .../check-mk-agent_2.4.0p25-1_all.deb ...
Unpacking check-mk-agent (2.4.0p25-1) ...
Setting up check-mk-agent (2.4.0p25-1) ...

Deploying systemd units: check-mk-agent.socket check-mk-agent-async.service cmk-agent-ctl-daemon.service check-mk-agent@.service
Deployed systemd
Creating/updating cmk-agent user account ...

WARNING: The Agent Controller is operating in an insecure mode! To secure the connection run `cmk-agent-ctl register`.

Reloading xinetd
Activating systemd unit 'check-mk-agent.socket'...
Created symlink /etc/systemd/system/sockets.target.wants/check-mk-agent.socket → /lib/systemd/system/check-mk-agent.socket.
Activating systemd unit 'check-mk-agent-async.service'...
Created symlink /etc/systemd/system/multi-user.target.wants/check-mk-agent-async.service → /lib/systemd/system/check-mk-agent-async.service.
Activating systemd unit 'cmk-agent-ctl-daemon.service'...
Created symlink /etc/systemd/system/multi-user.target.wants/cmk-agent-ctl-daemon.service → /lib/systemd/system/cmk-agent-ctl-daemon.service.
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Qui il pacchetto è stato installato per la prima volta su un host che prima non aveva alcun agente. L'utente cmk-agent è stato creato e systemd è stato configurato. Tra un attimo parleremo dell'avviso provvisorio relativo a insecure mode, ovvero la modalità pull legacy.

3.3. Installazione tramite Agent Bakery

CEE Le edizioni commerciali dispongono di un modulo software, Agent Bakery, per il packaging automatico di agenti personalizzati. Una descrizione dettagliata è disponibile nell'articolo generale sugli agenti. L'installazione dei pacchetti creati con Agent Bakery avviene allo stesso modo descritto sopra per i pacchetti inclusi.

In Checkmk Ultimate puoi inoltre utilizzare Agent Bakery per fornire ai pacchetti degli agenti una configurazione per la registrazione automatica, che facilita la creazione automatica degli host. In questo caso, la registrazione dell'agente avviene automaticamente dopo l'installazione del pacchetto dell'agente e la registrazione manuale, come descritta nel capitolo seguente, non è più necessaria.

3.4. Aggiornamenti automatici

CEE Se utilizzi l'Agent Bakery, puoi anche impostare gli aggiornamenti automatici dell'agente. Questi aggiornamenti sono descritti in un articolo a parte.

3.5. Cosa succede dopo l'installazione?

Se durante l'installazione è stato possibile configurare l'Agent Controller con unsystemd, il passo successivo è la registrazione, che imposta la crittografia TLS in modo che l'output crittografato dell'agente possa essere decrittografato dal server Checkmk e quindi visualizzato nel monitoraggio.

C'è una particolarità quando l'agente è stato installato con l'Agent Controller per la prima volta. In questo caso l'agente passa alla modalità pull legacy non crittografata in modo che il server Checkmk non venga tagliato fuori dai dati di monitoraggio e possa continuare a visualizzarli. Questo vale sia per una nuova installazione che per un aggiornamento di un agente della versione 2.0.0 e precedenti.

Riceverai un avviso relativo alla modalità pull legacy attivata nell'output del comando durante l'installazione dell'agente. Nel monitoraggio apparirà così:

The WARN state of the 'Check_MK' service due to missing encryption.
Avviso nel monitoraggio Checkmk che TLS non è ancora attivo

Il sito Checkmk riconosce dall'output dell'agente che l'Agent Controller è presente e quindi la crittografia TLS è possibile, ma non ancora abilitata. Il servizio Check_MK Agent passa allo stato "WARN" e rimane tale finché non lo registri. Dopo la registrazione, per la comunicazione viene utilizzata solo la modalità pull crittografata. La modalità pull legacy viene disattivata e rimarrà tale. Tuttavia, se necessario, può essere riattivata tramite comando.

La situazione è diversa se durante l'installazione non è stato possibile registrare l'Agent Controller come daemon con systemd. Senza l'Agent Controller, la registrazione non è possibile e l'unico percorso di comunicazione rimane la modalità legacy.

Nel prossimo capitolo potrai verificare se è possibile procedere con la registrazione testando l'Agent Controller e l'ambiente di sistema.

Nota: nel set di regole di Checkmk Agent installation auditing troverai varie impostazioni per controllare lo stato dell'agente e renderlo visibile nel monitoraggio. Tra le altre cose, qui puoi specificare quale stato dovrebbe avere il servizio Check_MK Agent se la configurazione TLS non è stata ancora eseguita.

4. Registrazione

4.1. Panoramica e prerequisiti

Subito dopo l'installazione dell'agente (anche come aggiornamento di un agente della versione 2.0.0 e precedenti), nella modalità pull legacy è possibile solo la comunicazione non crittografata. Una trasmissione dati esclusivamente crittografata può essere attivata solo una volta stabilita una relazione di fiducia.

Fanno eccezione i pacchetti preconfigurati per la registrazione automatica e scaricati tramite Agent Bakery. Questi pacchetti eseguono la registrazione automaticamente dopo l'installazione.

In tutti gli altri casi, esegui la registrazione manuale subito dopo aver installato l'agente. Questo capitolo mostra come eseguire la registrazione.

La registrazione e quindi la creazione del rapporto di fiducia reciproco viene eseguita come utente Checkmk con accesso alla REST-API. A tal fine, una buona scelta è l'utente di automazione agent_registration, che ha solo il permesso di registrare gli agenti e viene creato automaticamente ad ogni installazione di Checkmk. Puoi generare una password di automazione casuale (automation secret) con l'icona Icon for rolling the dice.. Devi salvare l'utente prima di poter utilizzare la nuova password.

Requisiti per l'host

La registrazione con l'Agent Controller richiede un sistema Linux con un sistema init systemd versione 219 o successiva e un'architettura del computer x86_64. Consulta la sezione Test dell'Agent Controller e dell'ambiente di sistema per sapere come verificare questi prerequisiti.

Requisiti per il server Checkmk

Per registrare un host per il monitoraggio, questo host deve essere in grado di raggiungere l'API REST del server Checkmk (porta 443 o 80) e l'Agent Receiver (porta 8000 per il primo sito, 8001 per il secondo…​). Leggi la sezione Ambiente di rete per la registrazione, nel caso in cui la tua infrastruttura non soddisfi uno di questi requisiti.

4.2. Test dell'Agent Controller e dell'ambiente di sistema

L'agente con l'Agent Controller richiede una distribuzione Linux csystemd, più precisamente systemd nella versione 219 o successive.

È molto probabile che questo requisito sia soddisfatto sul tuo host, poiché dal 2015 la maggior parte delle distribuzioni Linux ha adottato systemd come sistema di init, sostituendo altri sistemi di init come SysVinit, ad esempio SUSE Linux Enterprise Server dalla versione 12, openSUSE dalla versione 12.1, Red Hat Enterprise Linux dalla versione 7, Fedora dalla versione 15, Debian dalla versione 8 e Ubuntu dalla versione 15.04. Purtroppo, il solo confronto del numero di versione non offre alcuna certezza, poiché systemd potrebbe mancare anche su un sistema Linux attuale se è stato "solo" aggiornato nel corso degli anni.

Oltre alla versione di systemd, devono essere soddisfatti alcuni ulteriori prerequisiti, che verranno spiegati in questo capitolo.

Attenzione: la modalità push e la registrazione automatica dipendono necessariamente dall'Agent Controller e non sono quindi utilizzabili in modalità legacy, un aspetto a cui faremo riferimento più volte in questo capitolo.

Pertanto, verifica innanzitutto sull'host su cui deve essere installato l'agente se systemd è in esecuzione e in quale versione:

root@linux# systemctl --version
systemd 245 (245.4-4ubuntu3.15)
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

L'output del comando sopra riportato mostra che è installata la versione corretta dell'systemd. Se l'systemd non è in esecuzione o è in esecuzione in una versione troppo vecchia, l'Agent Controller non può essere utilizzato. Completa la configurazione come descritto nell'articolo Monitoraggio di Linux in modalità legacy.

Ora verifica se è possibile avviare l'Agent Controller:

root@linux# cmk-agent-ctl --version
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Il numero di versione dovrebbe essere visualizzato nell'output, ad esempio:

cmk-agent-ctl 2.4.0p25

In rari casi, potrebbe apparire il seguente messaggio di errore:

bash: /usr/bin/cmk-agent-ctl: cannot execute binary file: Exec format error

Il motivo è che il tuo sistema Linux utilizza un'architettura di computer diversa da x86_64, ad esempio la vecchia x86 a 32 bit o ARM. In questo caso, l'Agent Controller non può essere utilizzato.

Completa la configurazione come descritto nell'articolo Monitoraggio di Linux in modalità legacy.

Il passo successivo è scoprire quale programma sta aspettando le richieste sulla porta 6556:

root@linux# ss -tulpn | grep 6556
tcp	LISTEN	0	1024	0.0.0.0:6556	0.0.0.0:*	users:(("cmk-agent-ctl",pid=1861810,fd=9))
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Eccolo qui: cmk-agent-ctl. In questo modo i requisiti per una comunicazione crittografata sono stati soddisfatti. Se invece tra le parentesi compaiono systemd, xinetd o inetd, i prerequisiti per l'utilizzo dell'Agent Controller non sono soddisfatti. In tal caso, completa comunque la configurazione come descritto nell'articolo Monitorare Linux in modalità legacy.

4.3. Aggiunta di un host alla configurazione

Per prima cosa crea il nuovo host tramite Setup > Hosts > Add host. Un host deve essere presente nell'ambiente di configurazione prima di poter essere registrato.

In Checkmk Ultimate troverai l'opzione "Checkmk agent connection mode" nelle proprietà dell'host, nella sezione dedicata agli agenti di monitoraggio. Qui puoi attivare la modalità push per l'agente Checkmk in alternativa alla modalità pull, disponibile in tutte le edizioni.

4.4. Registrazione di un host con il server

La registrazione avviene tramite l'cmk-agent-ctl dell'Agent Controller, che fornisce un'interfaccia a comando per configurare le connessioni. Puoi visualizzare la guida ai comandi con cmk-agent-ctl help, anche per specifici sottocomandi disponibili, ad esempio con cmk-agent-ctl help register.

Il fatto che l'host sia configurato per la modalità pull o push non fa alcuna differenza per gli esempi di comando. L'Agent Receiver comunica all'Agent Controller in quale modalità deve operare durante la registrazione.

Ora vai sull'host che deve essere registrato. Qui, con i privilegi di root, effettua una richiesta al sito Checkmk:

root@linux# cmk-agent-ctl register \
             --hostname mynewhost \
             --server cmkserver \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Il nome dell'host che segue l'opzione --hostname deve essere esattamente lo stesso di quando è stato creato nella configurazione. Le opzioni --server e --site specificano il nome del server Checkmk e del sito. Il nome del server può essere anche l'indirizzo IP, il nome del sito (qui mysite) corrisponde a quello che vedi nel percorso URL dell'interfaccia web. Le opzioni sono completate dal nome e dalla password utilizzati dall'utente dell'automazione. Se ometti l'opzione --password, la password ti verrà richiesta in modo interattivo.

Se i valori specificati sono corretti, ti verrà chiesto di confermare l'identità del sito Checkmk a cui vuoi collegarti. Per chiarezza, qui abbiamo abbreviato il certificato del server da confermare:

Attempting to register at cmkserver:8000/mysite. Server certificate details:

PEM-encoded certificate:
---BEGIN CERTIFICATE---
MIIC6zCCAdOgAwIBAgIUXbSE8FXQfmFqoRNhG9NpHhlRJ40wDQYJKoZIhvcNAQEL
[...]
nS+9hN5ILfRI+wkdrQLC0vkHVYY8hGIEq+xTpG/Pxw==
---END CERTIFICATE---

Issued by:
	Site 'mysite' local CA
Issued to:
	localhost
Validity:
	From Thu, 10 Feb 2022 15:13:22 +0000
	To   Tue, 13 Jun 3020 15:13:22 +0000

Do you want to establish this connection? [Y/n]
> Y

Conferma con Y per completare il processo.

Se non viene visualizzato alcun messaggio di errore, la connessione crittografata sarà stata stabilita. Tutti i dati verranno ora trasmessi in forma compressa tramite questa connessione.

Se vuoi disabilitare il controllo interattivo del certificato — ad esempio per automatizzare completamente la registrazione — puoi utilizzare il parametro aggiuntivo --trust-cert. In questo caso, il certificato trasferito verrà automaticamente considerato attendibile. Tieni presente che dovresti adottare altre misure per verificare l'integrità del certificato. Questo può essere eseguito (manualmente o tramite script) ispezionando il file /var/lib/cmk-agent/registered_connections.json.

4.5. Registrazione automatica di un host sul server

Checkmk Ultimate offre la possibilità di creare host automaticamente al momento della registrazione. Per la registrazione automatica, oltre a un utente con l'autorizzazione a registrare host, è necessaria almeno una cartella configurata per contenere gli host da creare automaticamente.

Se queste condizioni sono soddisfatte, puoi anche eseguire la registrazione, inclusa la creazione automatica degli host, tramite la riga di comando.

Di solito si utilizza la procedura di configurazione di Agent Bakery, che include il file di configurazione /var/lib/cmk-agent/pre_configured_connections.json nel pacchetto dell'agente ed esegue la registrazione automaticamente durante l'installazione. La chiamata da riga di comando qui presentata è quindi destinata principalmente al test e al debug, ad esempio per provare le proprie etichette degli agenti con l'opzione --agent-labels <KEY=VALUE>.

root@linux# cmk-agent-ctl register-new \
             --server cmkserver \
             --site mysite \
             --agent-labels testhost:true \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

La differenza principale qui è il sottocomando modificato register-new, che viene utilizzato per richiedere la registrazione e la creazione di un nuovo host nel sito Checkmk. Il nome dell'host è quello memorizzato nella variabile d'ambiente $HOSTNAME. La successiva conferma del certificato è la stessa mostrata nell'ultima sezione.

Se l'host viene creato in modalità pull, in modalità push o per niente dipende dalle tue impostazioni nel set di regole Agent registration. Dopo una registrazione riuscita, potrebbero volerci alcuni minuti prima che l'host appaia nel monitoraggio.

4.6. Verifica della relazione di fiducia

Il comando cmk-agent-ctl status ora mostra esattamente una relazione di fiducia con il server Checkmk:

root@linux# cmk-agent-ctl status
Connection: 12.34.56.78:8000/mysite
	UUID: d38e7e53-9f0b-4f11-bbcf-d19617971595
	Local:
		Connection type: pull-agent
		Certificate issuer: Site 'mysite' local CA
		Certificate validity: Mon, 21 Feb 2022 11:23:57 +0000 - Sat, 24 Jun 3020 11:23:57 +0000
	Remote:
		Connection type: pull-agent
		Host name: mynewhost
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se hai bisogno delle informazioni in un formato leggibile dal computer, aggiungi il parametro aggiuntivo --json per ottenere l'output formattato come oggetto JSON.

Nota: può esserci solo una relazione di fiducia tra host e sito. Ad esempio, se registri un host già registrato mynewhost con un nome diverso (mynewhost2) ma con lo stesso indirizzo IP, la nuova connessione sostituirà quella esistente. La connessione da mynewhost al sito verrà interrotta e non verranno più forniti dati dell'agente all'host per il monitoraggio.

4.7. Registrazione tramite proxy

Per facilitare la registrazione di più host, qualsiasi host su cui è installato l'agente può eseguire una registrazione per conto di altri host. Il processo di registrazione esporta un file JSON, che può poi essere trasferito all'host di destinazione e importato lì. Anche in questo caso, come prima, l'host registrato nel job deve essere già configurato sul sito.

Per prima cosa, su qualsiasi host nella configurazione, la registrazione viene eseguita tramite proxy. Qui, ovviamente, il server Checkmk torna utile, poiché di solito è il primo host ad essere configurato. Come nell'esempio sopra, puoi passare la password tramite opzione o ti verrà richiesta in modo interattivo se ometti l'opzione --password. Nell'esempio reindirizziamo l'output JSON in un file:

root@linux# cmk-agent-ctl proxy-register \
    --hostname mynewhost3 \
    --server cmkserver \
    --site mysite \
    --user agent_registration > /tmp/mynewhost3.json
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Successivamente trasferiamo il file /tmp/mynewhost3.json sull'host che abbiamo registrato e importiamo quel file:

root@linux# cmk-agent-ctl import /tmp/mynewhost3.json
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Questo processo è possibile anche in un unico passaggio utilizzando una pipeline in cui l'output di cmk-agent-ctl proxy-register viene passato come input a ssh hostname cmk-agent-ctl import:

root@linux# cmk-agent-ctl proxy-register \
             --hostname mynewhost3 \
             --server cmkserver \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL' | \
             ssh root@mynewhost3 cmk-agent-ctl import
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

4.8. Aggiunta dell'host al monitoraggio

Una volta completata la registrazione, esegui un test di connessione e un rilevamento dei servizi nella configurazione del server Checkmk. Quindi, come ultimo passo, includi i servizi rilevati nel monitoraggio attivando le modifiche.

Se il test di connessione fallisce, consulta il capitolo seguente per informazioni sui test e sulla risoluzione dei problemi.

4.9. Cancellazione della registrazione di un host

Puoi anche rimuovere un host.

Su un host connesso al server Checkmk, puoi revocare l'autorizzazione. In questo caso, nel comando seguente, l'Universally Unique Identifier (UUID) da specificare è quello generato dal comando `cmk-agent-ctl status`:

root@linux# cmk-agent-ctl delete d38e7e53-9f0b-4f11-bbcf-d19617971595
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per eliminare tutte le connessioni dall'host e ripristinare inoltre la modalità pull legacy, inserisci il seguente comando:

root@linux# cmk-agent-ctl delete-all --enable-insecure-connections
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Dopodiché, l'agente si comporta come dopo l'installazione iniziale e prima della prima registrazione e invia i suoi dati in chiaro.

Completa la cancellazione della registrazione sul server Checkmk: In "Setup", nella pagina "Properties of host", seleziona la voce di menu "Host > Remove TLS registration" e conferma la richiesta.

Se preferisci la riga di comando: Sul server Checkmk, per ogni connessione di un host in monitoraggio, c'è un collegamento simbolico con l'UUID che punta alla cartella con l'output dell'agente:

OMD[mysite]:~$ cd ~/var/agent-receiver/received-outputs
OMD[mysite]:~/var/agent-receiver/received-outputs$ ls -l d38e7e53-9f0b-4f11-bbcf-d19617971595
lrwxrwxrwx 1 mysite mysite 67 Feb 23 07:18 d38e7e53-9f0b-4f11-bbcf-d19617971595 -> /omd/sites/mysite/tmp/check_mk/data_source_cache/push-agent/mynewhost
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

4.10. Passaggio dalla modalità push alla modalità pull

In Checkmk Ultimate CSE puoi passare dalla modalità push a quella pull e viceversa per gli host. Questo potrebbe essere necessario in casi specifici se sono in corso modifiche alla topologia di rete o se si deve effettuare un downgrade a Checkmk Pro CSE, dove è possibile solo la modalità pull.

Per prima cosa specifica la modalità di accesso in Setup, nelle proprietà dell’host, con l’opzione Checkmk agent connection mode. Entro un minuto, tutti i servizi assumeranno lo stato UNKNOWN poiché non vengono ricevuti dati di monitoraggio. Quindi esegui una nuova registrazione. Durante questa nuova registrazione, l’Agent Receiver del server Checkmk comunica all’Agent Controller se si aspettano dati in modalità pull o push. Un controllo successivo utilizzando cmk-agent-ctl status mostrerà quindi un nuovo UUID e una modalità coerente con la modifica apportata nel Setup.

5. Test e risoluzione dei problemi

In molte situazioni, un sistema modulare potrebbe non funzionare come previsto. Dato che l'agente utilizza due componenti, l'Agent Controller (sull'host) e l'Agent Receiver (sul server Checkmk), ci sono diversi punti in cui qualcosa può andare storto. Per la risoluzione dei problemi, si consiglia quindi un approccio strutturato. Ovviamente puoi anche utilizzare l'analisi passo dopo passo descritta qui per conoscere più nel dettaglio la raccolta dati e la comunicazione fornite da Checkmk.

Tutte le opzioni diagnostiche disponibili dal lato server di Checkmk sono descritte nell'articolo generale sugli agenti di monitoraggio. Ma, ovviamente, ci sono altre opzioni diagnostiche disponibili quando si accede direttamente all'host monitorato stesso.

Nelle sezioni seguenti passeremo dallo script dell'agente, attraverso l'Agent Controller e la porta TCP 6556, fino al sito Checkmk. Con l'Agent Controller in modalità push, ignora qualsiasi test sulla porta 6556: anche se la porta 6556 è aperta prima della registrazione, verrà chiusa dopo una registrazione in modalità push. Nella maggior parte dei casi, dopo aver corretto eventuali errori, puoi riavviare il rilevamento dei servizi e completare l'inclusione nel monitoraggio.

Important

Quando lo script dell'agente viene chiamato direttamente in una shell, potrebbero essere disponibili variabili d'ambiente diverse rispetto a quando viene chiamato dall'Agent Controller. Per analizzare l'output dello script dell'agente, dovresti quindi utilizzare l'Agent Controller in modalità dump, se possibile.

5.1. Output dello script dell'agente

Lo script dell'agente è un semplice script di shell che ottiene dati dal tuo sistema e li visualizza come testo in formato libero. Puoi richiamare questo script direttamente dalla riga di comando. Dato che l'output può essere un po' lungo, l'opzione less per scorrere l'output è molto utile in questo caso. Puoi uscire con il tasto Q:

root@linux# check_mk_agent | less
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: linux
Hostname: mynewhost
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/lib/check_mk_agent/plugins
LocalDirectory: /usr/lib/check_mk_agent/local
AgentController: cmk-agent-ctl 0.1.0
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Questo ti permette di verificare se lo script dell'agente, i tuoi plug-in e i controlli locali sono installati correttamente.

A proposito, non è necessario essere un amministratore per richiamare l'agente. Tuttavia, l'output risulterà privo di alcune informazioni che richiedono i privilegi d'amministratore per essere ottenute (ad es. informazioni sui percorsi multipli e gli output di ethtool).

5.2. Lo script dell'agente in modalità debug

Per evitare che eventuali messaggi di errore provenienti da plug-in o comandi inattivi "contaminino" i dati richiesti, lo script dell'agente in genere sopprime il canale di errore standard (STDERR). Se stai cercando un problema specifico, puoi riattivare lo STDERR richiamando lo script dell'agente in una speciale modalità di debug.

Prima di farlo, dovresti verificare se lo script dell'agente e l'Agent Controller in modalità dump forniscono un output identico e, se necessario, assicurarti che l'ambiente sia identico. Questo può essere fatto impostando delle variabili in un controllo plug-in/locale o nella shell. Puoi creare un dump dell'ambiente aggiungendo la riga

env > /tmp/cmk_agent_environment.txt

a un file di plug-in e controllando poi il contenuto del file dopo l'esecuzione da parte dell'Agent Controller.

Le informazioni di debug aggiuntive vengono quindi visualizzate utilizzando l'opzione "-d". Verranno visualizzati anche tutti i comandi della shell eseguiti dallo script. Per poter lavorare con "less" in questo caso, devi combinare l'output standard (STDOUT) e il canale di errore con "2>&1":

root@linux# check_mk_agent -d 2>&1 | less
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

5.3. Ambiente di rete per la registrazione

Se la registrazione di un host fallisce prima ancora che venga presentato un certificato, conoscere le modalità di comunicazione può aiutare a identificare il problema — e, ovviamente, a risolverlo.

Dopo aver inserito il comando cmk-agent-ctl register, l'Agent Controller chiede innanzitutto al server Checkmk la porta dell'Agent Receiver utilizzando l'API REST. Come secondo passo viene stabilita una connessione con l'Agent Receiver per richiedere il certificato. Puoi simulare la prima richiesta sull'host con un programma come curl:

root@linux# curl -v --insecure https://mycmkserver/mysite/check_mk/api/1.0/domain-types/internal/actions/discover-receiver/invoke
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Il parametro --insecure indica a curl di saltare il controllo del certificato. Questo comportamento rispecchia quello dell'Agent Controller in questa fase. La risposta è di pochi byte e contiene il numero di porta dell'Agent Receiver. Per il primo sito di solito è semplicemente 8000, per il secondo 8001 e così via.

I problemi più comuni relativi a questa richiesta sono:

  • Il server Checkmk non è raggiungibile dall'host.

  • La porta utilizzata dall'API REST è diversa dalle porte predefinite 443 (https) o 80 (http).

Se la richiesta sopra indicata fallisce, potresti modificare le impostazioni di routing o del firewall per abilitare l'accesso.

Nel caso in cui l'host che stai cercando di registrare utilizzi un proxy HTTP, curl lo utilizzerà, ma cmk-agent-ctl non lo farà con le impostazioni predefinite. Utilizza l'opzione aggiuntiva --detect-proxy per indicare a cmk-agent-ctl di utilizzare un proxy configurato tramite le impostazioni di sistema.

Tuttavia, spesso può essere più semplice scoprire la porta dell'Agent Receiver e prenderne nota. Per farlo, sul server Checkmk, dopo aver effettuato l'accesso come utente del sito:

OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Ora puoi specificare la porta quando inserisci il comando per la registrazione. Questo salta la prima richiesta all'API REST. La comunicazione avviene quindi direttamente con l'Agent Receiver senza deviazioni:

root@linux# cmk-agent-ctl register \
             --hostname mynewhost \
             --server mycmkserver:8000 \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Anche la porta 8000 deve essere raggiungibile dall'host. Se non lo è, riceverai questo messaggio di errore:

ERROR [cmk_agent_ctl] Connection refused (os error 111)

Equivalente alla porta 443 (rispettivamente 80) menzionata sopra, ora puoi modificare le impostazioni di routing o del firewall in modo che l'host da registrare possa raggiungere il server Checkmk sulla porta dell'Agent Receiver (8000 o 8001…​)

Nel caso di una registrazione in modalità push vale quanto segue: Se la registrazione ha funzionato, anche il trasferimento minuto per minuto dell'output dell'agente avrà esito positivo.

Se le politiche di sicurezza nel tuo ambiente non consentono l'accesso all'Agent Receiver, c'è comunque la possibilità di utilizzare la registrazione tramite proxy sul server Checkmk.

5.4. L'Agent Controller in modalità dump

L'Agent Controller fornisce un proprio sottocomando dump che visualizza l'output completo dell'agente non appena arriva nel monitoraggio:

root@linux# cmk-agent-ctl dump | less
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: linux
Hostname: mynewhost
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Questo ti permette di verificare che i dati provenienti dallo script dell'agente siano arrivati all'Agent Controller. Questo output non dimostra ancora che l'agente sia accessibile anche tramite la rete.

In alcuni casi, l'output avrà questo aspetto:

ERROR [cmk_agent_ctl] Error collecting monitoring data.

Caused by:
    Connection refused (os error 111)

Questo accade quando il socket dell'agente non è in esecuzione in background, ad esempio subito dopo un aggiornamento. Riavvia questo processo in background:

root@linux# systemctl restart check-mk-agent.socket
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se l'cmk-agent-ctl dumpe fallisce di nuovo, controlla se e quale programma sta ascoltando sulla porta 6556:

root@linux# ss -tulpn | grep 6556
tcp	LISTEN	0	1024	0.0.0.0:6556 0.0.0.0:*	users:(("cmk-agent-ctl",pid=1861810,fd=9))
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se l'output è vuoto o se tra le parentesi è presente un comando diverso da cmk-agent-ctl, i requisiti di sistema per l'utilizzo dell'Agent Controller non sono stati soddisfatti. In questo caso, completa la configurazione come descritto nell'articolo Monitorare Linux in modalità legacy.

5.5. Test della connessione remota

Se in modalità pull è stato verificato che lo script dell'agente e i suoi plug-in installati vengono eseguiti correttamente, puoi quindi controllare tramite netcat (o nc) se la porta 6556 è raggiungibile tramite l'indirizzo IP esterno dell'host:

root@linux# echo | nc 10.76.23.189 6556
16
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

L'output 16 indica che la connessione è stata stabilita con successo e che ora può avvenire l'handshake TLS. Poiché tutto il resto qui è crittografato con TLS, non è possibile effettuare ulteriori verifiche dettagliate.

Se un test di connessione remota fallisce, di solito è dovuto alle impostazioni del firewall. In questo caso, configura iptables o nftables per consentire l'accesso alla porta TCP 6556 dal server Checkmk.

Se la comunicazione tra l'agente e il server Checkmk è ancora non crittografata (come nella modalità pull legacy), o è e rimarrà non crittografata (come nella modalità legacy), questo comando ti fornirà l'output completo non crittografato dell'agente invece dell'16.

Nota: per ulteriori diagnostiche da eseguire sul server Checkmk, consulta l'articolo generale sugli agenti di monitoraggio.

5.6. Risoluzione dei problemi dell'agente in modalità push

Nella cartella ~/var/agent-receiver/received-outputs/ del tuo sito Checkmk, per ogni host registrato troverai un collegamento simbolico che utilizza l'UUID dell'host come nome. Per gli host in modalità push questo collegamento simbolico punta alla cartella con l'output dell'agente, per gli host in modalità pull punta a un file inesistente con il nome dell'host utilizzato nel monitoraggio.

In base all’età dell’output dell’agente memorizzato nella cache, puoi determinare se la trasmissione regolare ha avuto successo o se è stata interrotta, ad esempio, da problemi di rete sporadici.

Inoltre, puoi visualizzare lo stato delle ultime trasmissioni e dei tentativi di trasmissione sull'host con il comando systemctl status cmk-agent-ctl-daemon. Righe come le seguenti indicano problemi di connessione:

Dez 15 17:59:49 myhost23 cmk-agent-ctl[652648]: WARN [cmk_agent_ctl::modes::push] https://mycmkserver:8000/mysite: Error pushing agent output.

5.7. Le connessioni vengono perse

Se un host è stato configurato per la registrazione automatica con il set di regole Agent controller auto-registration e l'opzione Keep existing connections è impostata su no, ogni volta che il servizio cmk-agent-ctl-daemon viene riavviato (ad esempio, quando un host viene riavviato), tutte le altre connessioni verranno rimosse, tranne quella configurata per la registrazione automatica. Questo riguarda, ad esempio, gli host in cui sono state configurate connessioni a più siti prima dell'installazione del pacchetto dell'agente precompilato, oppure in cui le connessioni sono state aggiunte manualmente dopo l'installazione del pacchetto dell'agente.

Puoi ignorare temporaneamente questo comportamento impostando la variabile keep_existing_connections su true nel file C:\ProgramData\checkmk\agent\pre_configured_connections.json sull'host. Puoi ottenere una modifica permanente con l'aggiornamento del pacchetto dell'agente impostando Keep existing connections su yes nel set di regole sopra indicato.

5.8. Tempo di attesa prima che le modifiche diventino visibili

Quando si registra automaticamente un host, in genere passano circa due minuti prima che l'host appaia nel monitoraggio.

Se successivamente è stata aggiunta una connessione in modalità pull verso un altro sito a un host inizialmente configurato per la modalità push, trascorreranno fino a cinque minuti prima che la porta 6556 venga aperta. Puoi aprire la porta immediatamente riavviando il servizio cmk-agent-ctl-daemon.

6. Sicurezza

6.1. Considerazioni preliminari

La sicurezza è un criterio importante per qualsiasi software, e il monitoraggio non fa eccezione. Dato che l'agente di monitoraggio è installato su ogni server monitorato, un problema di sicurezza in questo caso avrebbe conseguenze particolarmente gravi.

Ecco perché la sicurezza è stata messa in primo piano nella progettazione di Checkmk ed è stata un principio fondamentale fin dai primi giorni di Checkmk: l'agente non legge i dati dalla rete. Punto. Questo significa che è impossibile per un hacker inserire comandi o parti di script tramite la porta di monitoraggio 6556.

6.2. Transport Layer Security (TLS)

Per un hacker, tuttavia, anche un semplice elenco di processi può essere un primo indizio per individuare obiettivi interessanti. Pertanto, la crittografia del trasporto tra l'agente e il server Checkmk con Transport Layer Security (TLS) è obbligatoria a partire dalla versione 2.1.0 di Checkmk. In questo caso, il server Checkmk invia un "ping" all'host monitorato, che quindi stabilisce la connessione TLS con il server Checkmk e trasmette l'output dell'agente attraverso di essa. Poiché solo i server Checkmk con cui esiste un rapporto di fiducia possono avviare questo trasferimento di dati, non c'è alcun rischio che i dati finiscano nelle mani sbagliate.

Per proteggere la connessione TLS, Checkmk utilizza un certificato autofirmato che viene sostituito automaticamente poco prima della scadenza della sua validità. L'Agent Controller si occupa di rinnovare il certificato in tempo prima della scadenza. Solo gli agenti che sono rimasti inattivi per un periodo di tempo prolungato, ovvero senza un Agent Controller in esecuzione, possono perdere la loro registrazione alla scadenza e devono quindi essere registrati nuovamente. La durata del certificato può essere specificata tramite l'impostazione globale Agent Certificates > Lifetime of certificates.

6.3. Limitare l'accesso tramite indirizzi IP

Poiché solo i server Checkmk autorizzati possono recuperare i dati e i server non autorizzati falliscono dopo pochi byte di handshake, il rischio di un attacco Denial of Service (DoS) è molto basso. Per questo motivo, al momento non sono previste ulteriori restrizioni di accesso. Naturalmente puoi bloccare la porta 6556 contro accessi non autorizzati tramite iptables. Qualsiasi regola esistente e trasferita ai client tramite l'Agent Bakery per limitare l'accesso a determinati indirizzi IP viene ignorata dall'Agent Controller.

6.4. Disattivazione della crittografia integrata

Soprattutto durante l'aggiornamento dell'agente, può capitare che sia attiva la crittografia integrata (simmetrica), eseguita dallo script dell'agente stesso. Se la crittografia TLS e quella integrata sono attive contemporaneamente, l'entropia dei dati trasmessi è così elevata che la compressione, attiva a partire dalla versione 2.1.0, non salverà alcun dato trasmesso — e graverà sulle CPU sia dell'host che del server Checkmk con ulteriori processi di crittografia e decrittografia.

Per questo motivo, dovresti disattivare la crittografia integrata subito dopo il passaggio a TLS.

Come primo passo, disattiva la crittografia nella regola esistente in Setup > Agents > Access to agents > Checkmk agent > Symmetric encryption (Linux, Windows).

Come secondo passo, rinomina il file di configurazione /etc/check_mk/encryption.cfg sull'host dell'agente.

Come terzo e ultimo passo, usa la regola "Enforce agent data encryption" per specificare che il server Checkmk accetti solo dati crittografati tramite TLS. Per farlo, seleziona il valore "Accept TLS encrypted connections only" nella regola.

CEE Disattivare la crittografia con Agent Bakery funziona così: Con il primo passo, ovvero modificare la regola Symmetric encryption (Linux, Windows), hai quasi finito. Devi solo creare i pacchetti e distribuire i nuovi agenti. Il file di configurazione /etc/check_mk/encryption.cfg verrà modificato automaticamente per te e incluso nei pacchetti degli agenti. Rimane solo il terzo passo, ovvero modificare la regola Enforce agent data encryption.

Dopo il prossimo aggiornamento automatico dell'agente, la crittografia dello script dell'agente verrà disabilitata, ma la crittografia sarà garantita dall'Agent Controller. Tieni presente che dopo l'aggiornamento automatico dell'agente, solo gli host registrati potranno fornire dati di monitoraggio.

7. Disattivazione delle sezioni

L'output dell'agente Checkmk è suddiviso in sezioni. Ciascuna di queste sezioni contiene informazioni correlate e di solito è semplicemente l'output di un comando diagnostico. Le sezioni iniziano sempre con un'intestazione. Si tratta di una riga racchiusa tra <<< e >>>.

Ad eccezione delle sezioni proprie di Checkmk, puoi disabilitare singolarmente qualsiasi delle oltre 30 sezioni che l'agente genera di default. In particolare, ciò significa che i comandi corrispondenti semplicemente non verranno eseguiti dall'agente, consentendo eventualmente di risparmiare tempo di elaborazione. Altri motivi per la disabilitazione potrebbero essere il semplice disinteresse per determinate informazioni provenienti da un certo gruppo di host, oppure il fatto che un determinato host stia fornendo valori errati e tu voglia sospendere temporaneamente il recupero di quei dati.

Come utente di una delle edizioni commerciali puoi semplicemente creare una regola tramite Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Disabled sections (Linux agent); questa regola verrà poi presa in considerazione da Agent Bakery.

List of agent rules for the Linux agent.
Qui puoi disabilitare le sezioni tramite regole

In genere troverai una casella di controllo separata per ogni sezione che può essere disabilitata. Per ogni casella selezionata troverai poi — dopo che l’agente appena creato è stato installato sugli host selezionati — una voce separata nel file di configurazione di Agent Bakery /etc/check_mk/exclude_sections.cfg. Ad esempio, se dovessi selezionare Running processes e Systemd services, il file di configurazione corrispondente sarebbe simile al seguente:

/etc/check_mk/exclude_sections.cfg
MK_SKIP_PS=yes
MK_SKIP_SYSTEMD=yes

Gli utenti di CRE Checkmk Community possono creare manualmente il file /etc/check_mk/exclude_sections.cfg sopra indicato e inserirvi le sezioni che devono essere disabilitate. Tutte le sezioni che possono essere disabilitate sono elencate nel file ~/share/check_mk/agents/cfg_examples/exclude_sections.cfg.

8. Estendere l'agente con i plug-in

8.1. Cosa sono i plug-in dell'agente?

Lo script dell'agente /usr/bin/check_mk_agent contiene un'intera serie di sezioni che forniscono dati di monitoraggio per vari plug-in di controllo, che vengono poi individuati automaticamente dal servizio di rilevamento. Questo include tutto il monitoraggio importante per il sistema operativo.

Inoltre, c'è la possibilità di estendere l'agente con i plug-in dell'agente. Si tratta di piccoli script o programmi che vengono chiamati dall'agente e lo estendono con sezioni aggiuntive contenenti ulteriori dati di monitoraggio. Il progetto Checkmk fornisce un'intera serie di tali plug-in che, se correttamente installati e configurati, forniscono automaticamente nuovi servizi tramite il service discovery.

Perché questi plug-in non sono semplicemente hard-coded nell'agente? Per ciascuno dei plug-in ci sarà uno dei seguenti motivi:

  • Il plug-in è scritto in un linguaggio di programmazione diverso da shell e quindi non può essere implementato inline (esempio: mk_logwatch).

  • Il plug-in richiede comunque una configurazione, senza la quale non funzionerebbe (esempio: mk_oracle).

  • Il plug-in è talmente specializzato che pochissimi utenti ne avrebbero bisogno (esempio: plesk_domains).

8.2. Installazione manuale

I plug-in inclusi in Linux e Unix si trovano tutti nella pagina di download degli agenti nel menu Setup (come descritto nel capitolo sull'installazione) nella casella Plugins:

Download page with agent plug-ins.
L'inizio della lunga lista di plug-in disponibili per gli agenti
Tip

I plug-in si trovano anche sul server Checkmk alla voce ~/share/check_mk/agents/plugins.

Per tutti i plug-in degli agenti che forniamo, ci sono plug-in di controllo corrispondenti in grado di valutare i dati dell’agente e creare servizi. Questi sono già installati, in modo che i servizi appena trovati possano essere rilevati e configurati immediatamente.

Nota: prima di installare un plug-in su un host, dai un'occhiata al file corrispondente. Spesso lì troverai informazioni importanti sull'uso corretto del plug-in.

L'installazione vera e propria è poi semplice: Copia il file in /usr/lib/check_mk_agent/plugins. Assicurati che sia eseguibile. Se non lo è, usa un chmod 755, altrimenti l'agente non eseguirà il plug-in. Tieni presente che, specialmente se non trasferisci i file tramite scp ma li scarichi via HTTP dalla pagina di download, il permesso di esecuzione andrà perso.

Una volta che il plug-in è eseguibile e si trova nella directory corretta, verrà automaticamente richiamato dall'agente e verrà creata una nuova sezione nell'output dell'agente. Questa sezione di solito ha lo stesso nome del plug-in. I plug-in complessi, come ad esempio mk_oracle, creano addirittura un'intera serie di nuove sezioni.

8.3. Configurazione

Alcuni plug-in richiedono un file di configurazione in /etc/check_mk/ per funzionare. Per altri, la configurazione è facoltativa e consente di attivare funzionalità speciali o personalizzazioni. Altri ancora funzionano semplicemente così come sono. Esistono diverse fonti di informazioni su un plug-in:

  • La documentazione dei plug-in di controllo associati nel tuo sito Checkmk, a cui puoi accedere tramite Setup > Services > Catalog of check plugins.

  • I commenti all'interno del plug-in stesso (spesso molto utili!).

  • Un articolo pertinente in questo manuale, ad esempio sul monitoraggio di Oracle.

8.4. Esecuzione asincrona

I plug-in degli agenti vengono solitamente eseguiti in sequenza. In alternativa, puoi far eseguire i plug-in in modo asincrono. Questo è molto utile se i plug-in hanno un tempo di esecuzione lungo e i dati di stato raccolti non devono comunque essere rigenerati ogni minuto.

L'esecuzione asincrona non viene configurata tramite un file, ma creando una sottodirectory all'interno di /usr/lib/check_mk_agent/plugins il cui nome è un numero: un numero di secondi. I plug-in in questa directory non solo vengono eseguiti in modo asincrono, ma allo stesso tempo puoi specificare un tempo di attesa minimo in secondi prima che il plug-in venga eseguito di nuovo. Se l'agente viene interrogato di nuovo prima che scada il tempo, utilizza i dati memorizzati nella cache dall'ultima volta che il plug-in è stato eseguito. Questo ti permette di configurare un intervallo più lungo per il plug-in rispetto al tipico minuto.

L'esempio seguente mostra come modificare il plug-in my_foo_plugin da esecuzione sincrona a esecuzione asincrona con un intervallo di 5 minuti (o 300 secondi):

root@linux# cd /usr/lib/check_mk_agent/plugins
root@linux:/usr/lib/check_mk_agent/plugins# mkdir 300
root@linux:/usr/lib/check_mk_agent/plugins# mv my_foo_plugin 300
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Nota: alcuni plug-in implementano automaticamente l'esecuzione asincrona. Tra questi c'è mk_oracle. Installa questi plug-in direttamente su /usr/lib/check_mk_agent/plugins.

8.5. Installazione tramite Agent Bakery

CEE Nelle edizioni commerciali, i plug-in inclusi possono essere configurati tramite Agent Bakery. Questo si occupa sia dell'installazione del plug-in vero e proprio, sia della corretta creazione del suo file di configurazione, qualora fosse necessario.

Ogni plug-in viene configurato tramite una regola dell'agente. Puoi trovare i set di regole appropriati in Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Agent Plugins:

Page with rules for configuring agent plug-ins.
Elenco delle regole per i plug-in dell'agente

8.6. Esecuzione manuale

Poiché i plug-in dell'agente sono programmi eseguibili, puoi anche eseguirli manualmente a scopo di test e diagnostica. Tuttavia, ci sono plug-in che richiedono determinate variabili d'ambiente impostate dall'agente per trovare il proprio file di configurazione, ad esempio. Imposta queste variabili manualmente prima dell'esecuzione:

root@linux# export MK_LIBDIR=/usr/lib/check_mk_agent
root@linux# export MK_CONFDIR=/etc/check_mk
root@linux# export MK_VARDIR=/var/lib/check_mk_agent
root@linux# /usr/lib/check_mk_agent/plugins/mk_foobar
<<<foobar>>>
FOO BAR BLA BLUBB 17 47 11
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Alcuni plug-in utilizzano anche opzioni di chiamata speciali per il debug. Basta dare un'occhiata al file del plug-in.

9. Integrazione dei plug-in di controllo Nagios legacy

9.1. Esecuzione dei plug-in tramite MRPE

Ci sono due buoni motivi per continuare a usare i plug-in Nagios su Checkmk. Se hai migrato il tuo monitoraggio da una soluzione basata su Nagios a Checkmk, puoi continuare a usare i vecchi plug-in di controllo per i quali non esiste ancora un equivalente in Checkmk. In molti casi si tratta di plug-in scritti in proprio in Perl o shell.

Il secondo motivo è il vero monitoraggio end-to-end. Supponiamo che tu abbia il tuo server Checkmk, un server web e un server database distribuiti in un grande data center. In questo caso, i tempi di risposta del server database misurati dal server Checkmk non sono molto significativi. È molto più importante conoscere questi valori per la connessione tra il server web e il server database.

L'agente Checkmk fornisce un meccanismo semplice per soddisfare questi due requisiti: il Remote Plugin Executor di Checkmk, o MRPE in breve. Il nome è volutamente un'analogia con l'NRPE di Nagios, che svolge lo stesso compito in quel contesto.

L'MRPE è integrato nell'agente e si configura con un semplice file di testo, che crei come /etc/check_mk/mrpe.cfg. Lì specifichi una chiamata al plug-in per riga, insieme al nome che vuoi che Checkmk usi per il servizio che crea automaticamente per esso. Ecco un esempio:

/etc/check_mk/mrpe.cfg
Foo_Application /usr/local/bin/check_foo -w 60 -c 80
Bar_Extender /usr/local/bin/check_bar -s -X -w 4:5

Nota: i plugin di Nagios non possono essere inseriti nella directory /usr/lib/check_mk_agent/plugins. Questa directory è riservata ai plugin dell'agente. A parte questa directory, sei libero di scegliere dove metterli, purché l'agente riesca a trovarli ed eseguirli.

Se ora esegui l'agente localmente, troverai una nuova sezione per ogni plugin chiamata <<mrpe>> che contiene il nome, il codice di uscita e l'output del plugin. Puoi verificarlo con il seguente pratico comando grep:

root@linux# check_mk_agent | grep -A1 '^...mrpe'
<<<mrpe>>>
(check_foo) Foo_Application 0 OK - Foo server up and running
<<<mrpe>>>
(check_bar) Bar_Extender 1 WARN - Bar extender overload 6.012|bar_load=6.012
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

I valori 0 e 1 nell'output rappresentano i codici di uscita dei plug-in e seguono lo schema convenzionale: 0 = OK, 1 = WARN, 2 = CRIT e 3 = UNKNOWN.

Il resto verrà ora eseguito automaticamente da Checkmk. Una volta avviata la ricerca dei servizi per l'host, i due nuovi servizi appariranno come disponibili. Avrà questo aspetto:

List of detected services for the plug-ins set up via MRPE.
Viene rilevato un servizio per ciascuno dei due plug-in MRPE

A proposito, a causa della sintassi del file, il nome non può contenere spazi. Tuttavia, puoi sostituire uno spazio con %20 utilizzando la stessa sintassi degli URL (il codice ASCII 32 per lo spazio è 20 in esadecimale):

/etc/check_mk/mrpe.cfg
Foo%20Application /usr/local/bin/check_foo -w 60 -c 80
Bar%20Extender /usr/local/bin/check_bar -s -X -w 4:5

9.2. Esecuzione asincrona

Tieni presente che tutti i plug-in elencati in mrpe.cfg verranno eseguiti in modo sincrono in ordine. Per questo motivo, i plug-in non dovrebbero avere un tempo di esecuzione troppo lungo. Se un plug-in richiede troppo tempo, l'esecuzione di tutti gli altri verrà ritardata. Ciò può portare al timeout dell'esecuzione completa dello script dell'agente e impedire il monitoraggio affidabile dell'host.

Se hai davvero bisogno di plug-in che richiedono più tempo, dovresti impostarli in esecuzione asincrona come per i normali plug-in dell'agente, evitando così tali problemi. Questo si ottiene specificando un tempo in secondi durante il quale un risultato calcolato deve rimanere valido. Per configurare un timeout di cinque minuti, imposta l'espressione (interval=300) dopo il nome del servizio in mrpe.cfg:

/etc/check_mk/mrpe.cfg
Foo_Application (interval=300) /usr/local/bin/check_foo -w 60 -c 80
Bar_Extender /usr/local/bin/check_bar -s -X -w 4:5

Questa funzionalità offre diversi vantaggi:

  • Il plug-in verrà eseguito in un processo in background e non rallenterà più l'esecuzione dell'agente.

  • Poiché l'agente non attende l'esecuzione, il risultato non viene fornito fino alla chiamata successiva dell'agente.

  • Il plug-in verrà eseguito nuovamente non prima di 300 secondi. Fino ad allora, viene riutilizzato il vecchio risultato.

Questo ti permette quindi di eseguire test che richiedono un po' più di tempo di elaborazione e intervalli più lunghi, senza dover configurare nulla sul server Checkmk.

9.3. MRPE con Agent Bakery

CEE Gli utenti delle edizioni commerciali possono anche configurare MRPE con Agent Bakery. A questo serve il set di regole "Setup > Agents > Windows, Linux Solaris, AIX > Agent Rules > Generic Options > Execute MRPE checks". Lì puoi configurare le stesse cose descritte sopra. Il file "mrpe.cfg" verrà poi generato automaticamente da Agent Bakery.

Rule for MRPE configuration in the Agent Bakery.
Gli MRPE possono essere comodamente configurati utilizzando una regola

Creazione dei plug-in

Puoi anche includere i plug-in di controllo nel pacchetto da distribuire. In questo modo, l'agente è completo e non richiede alcuna installazione manuale di file aggiuntivi. Il tutto funziona così:

  1. Crea la directory ~/local/share/check_mk/agents/custom sul server Checkmk.

  2. Crea una sottodirectory al suo interno, ad esempio my_mrpe_plugins.

  3. All’interno di questa, crea nuovamente la sottodirectory bin.

  4. Copia i tuoi plug-in nella cartella bin.

  5. Crea una regola in Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Generic Options > Deploy custom files with agent.

  6. Seleziona my_mrpe_plugins, salva le impostazioni modificate e clicca sul pulsante "Bake"!

I plug-in di controllo saranno ora installati nella directory predefinita bin del tuo agente. Per impostazione predefinita, questa è /usr/bin. Quindi, quando configuri i controlli MRPE, usa /usr/bin/check_foo invece di /usr/local/bin/check_foo.

10. Monitoraggio dell'hardware

Monitorare un server Linux nel modo più completo possibile significa ovviamente anche monitorarne l'hardware. Il monitoraggio viene effettuato in parte direttamente tramite l'agente Checkmk e in parte tramite plug-in speciali. Inoltre, ci sono ancora casi in cui è possibile implementare il monitoraggio tramite SNMP o anche tramite una scheda di gestione separata.

10.1. Monitoraggio dei valori SMART

I dischi rigidi moderni dispongono quasi sempre della tecnologia S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). Questo sistema registra continuamente i dati relativi allo stato dell'HDD o dell'SSD e Checkmk può recuperare questi valori con il plug-in smart e valutarne i più importanti. Affinché il plug-in funzioni dopo l'installazione, devono essere soddisfatti i seguenti requisiti:

  • Il pacchetto smartmontools deve essere installato. Puoi installarlo su tutte le distribuzioni moderne tramite il rispettivo gestore di pacchetti.

  • Se i dischi rigidi sono collegati a un controller RAID e questo consente l'accesso ai valori SMART, deve essere installato anche il rispettivo strumento. Sono supportati tw_cli (3ware) e megacli (LSI).

Se questi requisiti sono soddisfatti e il plug-in è installato, i dati vengono recuperati automaticamente e aggiunti all'output dell'agente. In Checkmk puoi quindi attivare direttamente anche i nuovi servizi:

List of SMART services found in service discovery.
Servizi SMART individuati dal service discovery

Come si vede nella schermata, se cmd_timeout si verifica occasionalmente, imposta il plug-in su esecuzione asincrona a intervalli di pochi minuti.

10.2. Monitoraggio tramite IPMI

IPMI (Intelligent Platform Management Interface) è un'interfaccia per la gestione dell'hardware che consente anche il monitoraggio dell'hardware. Checkmk utilizza freeipmi a questo scopo per accedere all'hardware direttamente e senza rete. freeipmi viene installato dai repository dei pacchetti ed è quindi pronto per l'uso immediato, in modo che i dati vengano trasmessi già alla successiva chiamata di Checkmk.

Se l'freeipmi non è disponibile o se ci sono altri motivi per non installarlo, è possibile utilizzare anche ipmitool. ipmitool è spesso già presente sul sistema e deve solo essere fornito di un driver per dispositivi IPMI, come quello fornito dal pacchetto openipmi. Anche in questo caso, non devi fare nient'altro dopo l'installazione e i dati verranno raccolti automaticamente da Checkmk.

Per la diagnosi degli errori puoi anche eseguire gli strumenti manualmente in una shell host. Una volta installato il pacchetto freeipmi, puoi verificarne le funzioni con questo comando:

root@linux# ipmi-sensors Temperature
32 Temperature_Ambient 20.00_C_(1.00/42.00) [OK]
96 Temperature_Systemboard 23.00_C_(1.00/65.00) [OK]
160 Temperature_CPU_1 31.00_C_(1.00/90.00) [OK]
224 Temperature_CPU_2 NA(1.00/78.00) [Unknown]
288 Temperature_DIMM-1A 54.00_C_(NA/115.00) [OK]
352 Temperature_DIMM-1B 56.00_C_(NA/115.00) [OK]
416 Temperature_DIMM-2A NA(NA/115.00) [Unknown]
480 Temperature_DIMM-2B NA(NA/115.00) [Unknown]
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se ipmitool è stato installato, puoi controllare l'output dei suoi dati con il seguente comando:

root@linux# ipmitool sensor list
UID_Light 0.000 unspecified ok na na 0.000 na na na
Int._Health_LED 0.000 unspecified ok na na 0.000 na na na
Ext._Health_LED 0.000 unspecified ok na na 0.000 na na na
Power_Supply_1 0.000 unspecified nc na na 0.000 na na na
Fan_Block_1 34.888 unspecified nc na na 75.264 na na na
Fan_Block_2 29.792 unspecified nc na na 75.264 na na na
Temp_1 39.000 degrees_C ok na na -64.000 na na na
Temp_2 16.000 degrees_C ok na na -64.000 na na na
Power_Meter 180.000 Watts cr na na 384.00
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

10.3. Strumenti specifici del produttore

Molti grandi produttori di server forniscono anche i propri strumenti per raccogliere le informazioni sull'hardware e renderle disponibili tramite SNMP. Per recuperare questi dati e fornirli a Checkmk, devono essere soddisfatti i seguenti prerequisiti:

  • È configurato un server SNMP sull'host Linux.

  • Lo strumento del produttore è installato (ad es. OpenManage di Dell o SuperDoctor di Supermicro).

  • L'host è configurato in Checkmk per il monitoraggio tramite SNMP oltre che tramite l'agente Checkmk. Consulta l'articolo sul monitoraggio con SNMP per sapere come fare.

I nuovi servizi per il monitoraggio hardware supportati da questo vengono quindi rilevati automaticamente e non sono necessari ulteriori plug-in.

10.4. Monitoraggio aggiuntivo tramite la scheda di gestione

È possibile configurare una scheda di gestione per ogni host e recuperare dati aggiuntivi tramite SNMP. I servizi rilevati in questo modo vengono quindi assegnati anche all’host.

Configurare la scheda di gestione è molto semplice. Basta inserire il protocollo, l'indirizzo IP e i dati di accesso per SNMP nelle proprietà dell'host e salvare queste nuove impostazioni:

The configuration of the management board for SNMP in the properties of the host.
La scheda di gestione viene configurata per SNMP nelle proprietà dell'host nella sezione Configurazione

Con un rilevamento dei servizi, i servizi appena rilevati verranno poi abilitati come di consueto.

11. Disinstallazione

Come per l'installazione, anche la disinstallazione dell'agente avviene tramite il gestore dei pacchetti del sistema operativo. Indica qui il nome del pacchetto installato, non il nome del file RPM/DEB originale.

Ecco come scoprire quale pacchetto DEB è installato:

root@linux# dpkg -l | grep check-mk-agent
ii  check-mk-agent          2.4.0p25-1          all          Checkmk Agent for Linux
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

La disinstallazione del pacchetto DEB viene quindi eseguita utilizzando dpkg --purge:

root@linux# dpkg --purge check-mk-agent
(Reading database ... 739951 files and directories currently installed.)
Removing check-mk-agent (2.4.0p25-1) ...
Removing systemd units: check-mk-agent.socket, check-mk-agent-async.service, cmk-agent-ctl-daemon.service, check-mk-agent@.service
Deactivating systemd unit 'check-mk-agent.socket'...
Deactivating systemd unit 'check-mk-agent-async.service'...
Deactivating systemd unit 'cmk-agent-ctl-daemon.service'...
Reloading xinetd
Purging configuration files for check-mk-agent (2.4.0p25-1) ...
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Come scoprire quale pacchetto RPM è installato:

root@linux# rpm -qa | grep check-mk
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

La disinstallazione del pacchetto RPM viene eseguita come root con il comando rpm -e.

11.1. Riattivazione della modalità pull legacy

Quando l'agente viene disinstallato, l'utente cmk-agent creato dallo script di installazione verrà mantenuto. Questo serve come indicatore per lo script post-installazione che l'agente era già installato su questo sistema. In questo caso, la modalità pull legacy non verrà attivata durante una successiva reinstallazione. Di conseguenza, dopo aver eseguito cmk-agent-ctl delete-all e aver successivamente reinstallato l'agente, non sarà possibile alcuna connessione sulla porta 6556.

Se desideri riattivare la modalità pull legacy non crittografata, dovrai abilitare esplicitamente questa modalità.

12. File e directory

12.1. Percorsi sull'host monitorato

Percorso Descrizione

/usr/bin/

Directory di installazione per lo script dell'agente check_mk_agent e l'Agent Controller cmk-agent-ctl sul sistema di destinazione.

/usr/lib/check_mk_agent

Directory di base per le estensioni dell'agente.

/usr/lib/check_mk_agent/plugins

Directory per i plug-in che dovrebbero essere eseguiti automaticamente dall'agente e ampliare il suo output con ulteriori dati di monitoraggio. I plug-in possono essere scritti in qualsiasi linguaggio di programmazione disponibile.

/usr/lib/check_mk_agent/local

Directory per i controlli locali personalizzati.

/var/lib/check_mk_agent

Directory di base per i dati dell'agente.

/var/lib/check_mk_agent/cache

Qui vengono memorizzati i dati della cache delle singole sezioni e aggiunti nuovamente all'agente ad ogni esecuzione, purché i dati della cache siano validi.

/var/lib/check_mk_agent/job

Directory per i lavori monitorati. Questi verranno aggiunti all'output dell'agente ad ogni esecuzione.

/var/lib/check_mk_agent/spool

Contiene dati creati, ad esempio, dai file di log che hanno una propria sezione. Anche questi vengono aggiunti all'output dell'agente. Puoi leggere ulteriori informazioni al riguardo nell'articolo La directory spool.

/var/lib/cmk-agent/registered_connections.json

Contiene un elenco delle connessioni registrate con l'Agent Controller.

/var/lib/cmk-agent/pre_configured_connections.json

Contiene una connessione preconfigurata a un sito per la registrazione automatica, integrata nel pacchetto dell'agente tramite Agent Bakery.

/etc/check_mk

Archiviazione dei file di configurazione per l'agente.

/etc/check_mk/mrpe.cfg

File di configurazione per MRPE — per l'esecuzione di plug-in di controllo compatibili con Legacy Nagios.

/etc/check_mk/encryption.cfg

Configurazione per la crittografia integrata dei dati dell'agente.

/etc/check_mk/exclude_sections.cfg

File di configurazione per la disabilitazione di alcune sezioni dell'agente.

12.2. Percorsi sul server Checkmk

Percorso Descrizione

~/local/share/check_mk/agents/custom

Directory di base per i file personalizzati da fornire con un agente integrato.

~/share/check_mk/agents/cfg_examples/exclude_sections.cfg

Esempio di file di configurazione per disabilitare sezioni.

~/var/agent-receiver/received-outputs

Contiene per ogni connessione il suo UUID come collegamento simbolico che punta alla cartella con il nome dell'host. In modalità push, questa cartella contiene l'output dell'agente.


Last modified: Wed, 18 Mar 2026 09:39:33 GMT via commit 402b490f8
In questa pagina