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 Windows

Fin dall'inizio, il monitoraggio dei server Windows è stato uno dei compiti più importanti svolti da Checkmk. Come per tutti gli altri sistemi operativi server, Checkmk fornisce quindi anche un proprio agente per Windows, un programma agente che è allo stesso tempo minimalista e sicuro.

Con il rilascio della versione 2.1.0 di Checkmk, a questo programma agente è stato aggiunto un nuovo componente: l’Agent Controller. L’Agent Controller si trova a monte del programma agente, lo interroga e comunica con il server Checkmk al posto del programma agente. Per farlo, l’Agent Controller si registra presso l’Agent Receiver, un processo che gira sul server Checkmk.

Quindi, da un lato, l'agente Windows sostituisce il programma agente, e quindi ne eredita anche i vantaggi. D'altro canto, integra il programma in modo da poter aggiungere nuove funzioni, come la crittografia TLS della comunicazione 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 il monitoraggio degli 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 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.

Per motivi di compatibilità, l'agente supporta solo le versioni attuali della linea di prodotti Microsoft Windows NT (edizione). Puoi scoprire esattamente quali sono nell'articolo Requisiti di sistema.

Importante: le altre edizioni di Windows non sono ufficialmente supportate. Ciò include, ad esempio, anche Windows Embedded. Tuttavia, per il monitoraggio di versioni precedenti di Windows, come ad esempio Windows Server 2008, puoi utilizzare un agente legacy a tuo rischio e pericolo. Gli agenti legacy sono agenti delle versioni precedenti di Checkmk senza l'Agent Controller. Ovviamente questo significa che le funzionalità estese dell'Agent Controller, come la crittografia TLS o la compressione, non saranno disponibili. Gli agenti legacy sono disponibili per lo scaricamento qui. Per gli agenti legacy è necessario tenere conto di alcuni requisiti speciali, che sono riassunti nel capitolo sull'installazione.

L'installazione, la registrazione e il Setup dell'agente possono essere completati in pochi passaggi, poiché l'agente non necessita di librerie aggiuntive per funzionare, ad esempio. Inoltre, l'agente viene fornito con una configurazione di base sufficiente per la maggior parte delle applicazioni.

2. Architettura dell'agente

L'agente Checkmk è composto dal programma 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 sulle architetture comuni dell'agente Linux e dell'agente Windows. Questo capitolo tratta specificatamente l'implementazione Windows.

Il programma agente check_mk_agent.exe è responsabile della raccolta dei dati di monitoraggio. Il programma viene avviato come servizio Windows con l'account LocalSystem. Raccoglie i dati sul sistema locale quando viene chiamato e li rende disponibili all'Agent Controller.

Il programma agente è minimalista, sicuro, facilmente estendibile e completo, e fornisce accesso a dati importanti che non sono accessibili tramite WMI o SNMP. In alcuni casi, tuttavia, può essere utile il monitoraggio tramite SNMP in aggiunta all'agente Checkmk. Consulta l'articolo sul monitoraggio con SNMP per ulteriori informazioni su questo tema. Inoltre, il programma agente è trasparente quanto può esserlo un file fornito come eseguibile, poiché hai accesso al codice sorgente in qualsiasi momento e quindi una visione d'insieme delle sue funzionalità, e in linea di principio puoi anche compilare l'agente da solo.

L'Agent Controller cmk-agent-ctl.exe è il componente all'interno dell'agente responsabile del trasporto dei dati raccolti dal programma agente. Viene eseguito come processo in background con l'account Windows LocalSystem. In modalità pull, ascolta sulla porta TCP 6556 le connessioni in entrata dall'istanza Checkmk e interroga il programma agente tramite un meccanismo specifico di Windows per la comunicazione tra processi chiamato Mailslot.

3. Installazione

Checkmk offre diversi modi per installare l'agente Windows: 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 Comunità Checkmk Edizioni commerciali

Pacchetto MSI fornito

Installazione semplice di un agente standard con configurazione manuale tramite file di configurazione.

X

X

Pacchetto MSI da agent bakery

Configurazione tramite GUI, è possibile una configurazione individuale per ogni host.

X

Aggiornamenti automatici

L'installazione del pacchetto di Agent Bakery viene eseguita la prima volta manualmente o tramite script e da quel momento in poi verrà aggiornato automaticamente.

X

In alternativa, puoi anche distribuire il pacchetto MSI tramite altri percorsi, come Microsoft Active Directory. In questo caso l'installazione può essere completamente automatizzata utilizzando il formato MSI.

3.1. Scaricamento di un pacchetto MSI

Si installa l'agente Windows durante l'installazione del pacchetto MSI.

Prima dell'installazione, devi procurarti il pacchetto e trasferirlo sull'host su cui verrà eseguito l'agente (ad esempio con scp o WinSCP).

Ottenere un pacchetto tramite la GUI di Checkmk

In CRE Comunità Checkmk puoi trovare il pacchetto Windows dell'agente all'indirizzo Setup > Agents > Windows. Nelle edizioni commerciali, devi prima accedere all'agent bakery dal menu Setup tramite Agents > Windows, Linux, Solaris, AIX, dove troverai i pacchetti già pronti. Da lì, la voce di menu Related > Windows files ti porterà all'elenco dei file dell'agente:

Download page with the MSI package.
Puoi trovare il pacchetto MSI nella pagina di download

Tutto ciò di cui hai bisogno si trova proprio nella prima box denominata "Packaged Agents": il file del pacchetto MSI già pronto check_mk_agent.msi per l'installazione dell'agente Windows con le impostazioni predefinite.

Ottenere un pacchetto tramite l'API REST

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

  • L'scaricamento dell'agente fornito.

  • L'scaricamento di un agente preparato individualmente in base al nome host e al sistema operativo.

  • L'scaricamento di un agente preparato individualmente 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 MSI con l'agente Windows può essere scaricato con il seguente comando curl. Nelle versioni più recenti di Windows, curl è già incluso; nelle versioni precedenti dovrai prima installare separatamente l'ambiente di comando curl tramite curl per Windows.

C:\Users\hhirsch\Downloads\> curl.exe -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=windows_msi"
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 dimostrare come funziona questo particolare endpoint API REST per l'scaricamento dell'agente.

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

Il modo più semplice per scaricare l'agente predefinito è l'scaricamento diretto del file:

C:\Users\hhirsch\Downloads\> curl.exe -OG http://mycmkserver/mysite/check_mk/agents/windows/check_mk_agent.msi
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

3.2. Installazione del pacchetto

Installazione manuale

Dopo aver scaricato il pacchetto MSI e, se necessario, averlo copiato sull'host da monitorare utilizzando scp, WinSCP o altri mezzi, avvia l'installazione facendo doppio clic sul file MSI o dalla riga di comando come segue:

C:\Users\hhirsch\Downloads\> check_mk_agent.msi
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Verrà visualizzata la pagina iniziale della procedura di Setup:

Start page of the Setup wizard.
L'installazione inizia con un messaggio di benvenuto

Usa i pulsanti "Next" per scorrere le pagine della procedura guidata. Accetta i termini della licenza dell'GNU GENERAL PUBLIC LICENSEe per continuare. La procedura Setup ti mostrerà quindi la seguente pagina:

Setup Wizard page on how to proceed when updating an old agent.
Opzioni di installazione dell'agente

Le opzioni in questa pagina sono rilevanti per te solo se sull'host è già installato un agente Windows di versione precedente alla 1.6.0. Nella versione 1.6.0 l'architettura dell'agente Windows è cambiata radicalmente. Se stai aggiornando (o migrando) all'agente attuale da un agente Windows di versione precedente alla 1.6.0, leggi prima il capitolo dedicato al vecchio agente nel manuale utente di Checkmk per la versione 2.0.0. Lì scoprirai quale delle opzioni disponibili dovresti selezionare in questo specifico caso di aggiornamento.

In tutti gli altri casi, ti consigliamo di selezionare l'opzione "Clean installation.".

Conferma l'avvio dell'installazione e poi consenti al programma di installazione di apportare le modifiche (nel dialogo "User Account Control"). Una volta terminato, puoi uscire dalla procedura Setup.

Dopo l'installazione, l'agente si avvierà immediatamente come servizio di Windows e sarà pronto per il monitoraggio del sistema.

Installazione automatica

Tramite la riga di comando, Windows offre agli amministratori la possibilità di installare automaticamente i pacchetti MSI senza richiedere l'intervento dell'utente. Un'installazione automatica può quindi apparire così, ad esempio:

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

In questo caso, l'agente viene installato (/i) senza l'intervento dell'utente o l'interfaccia utente (/qn) e viene anche avviato immediatamente come servizio di Windows. Quindi questo metodo è ottimo per distribuire automaticamente l'agente su molti host.

Puoi anche usare questo metodo per selezionare le tre opzioni che ti sono state offerte durante l'installazione manuale nella procedura guidata di Setup. Per ogni opzione, c'è un identificatore che puoi usare per il comando di installazione:

Opzione nella procedura guidata di Setup Identificatore

Clean installation.

WIXUI_CLEANINSTALL

Remove Legacy Windows Agent (pre 1.6) if present.

WIXUI_REMOVELEGACY

Migrate from Legacy Windows Agent (pre 1.6) configuration if present.

WIXUI_MIGRATELEGACY

Per abilitare un'opzione, aggiungi il suo identificatore seguito dal segno di uguale:

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_CLEANINSTALL=
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per disabilitare esplicitamente un'opzione, devi aggiungere altre due virgolette dopo il segno di uguale:

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_MIGRATELEGACY=""
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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 del pacchetto MSI generato avviene allo stesso modo descritto sopra per il pacchetto incluso.

In Checkmk Ultimate puoi inoltre utilizzare l'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 una volta installato il pacchetto dell'agente, e la registrazione manuale, come descritta nel capitolo seguente, non sarà 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. File di configurazione dell'agente

Durante l'installazione, il pacchetto MSI salva i file specifici del programma in C:\Program Files (x86)\checkmk\service\ e quelli specifici dell'host in C:\ProgramData\checkmk\agent\. Non è necessario personalizzare i file specifici del programma. I file specifici dell'host servono a salvare i plug-in, i file di log e di configurazione e a configurare il comportamento dell'agente.

Nota: per impostazione predefinita, l'intera directory C:\ProgramData è nascosta in Windows.

L'agente legge tre file di configurazione in successione:

  1. C:\Program Files (x86)\checkmk\service\check_mk.yml
    è il file di configurazione predefinita, che non dovresti modificare.

  2. C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
    viene creato da agent bakery e non dovrebbe essere modificato manualmente.

  3. C:\ProgramData\checkmk\agent\check_mk.user.yml
    è il tuo file di configurazione in cui puoi apportare manualmente modifiche personalizzate per testare un'impostazione o un'estensione su un host.

Se un'opzione è stata impostata in più file, è l'ultimo file letto a determinare il contenuto di tale opzione. Per lavorare manualmente con l'agente, quindi, è rilevante solo l'ultimo file di configurazione check_mk.user.yaml, poiché viene letto per ultimo e ha quindi l'ultima parola. Se non si utilizza agent bakery, questo è di fatto l'unico file in cui è possibile apportare personalizzazioni alla configurazione dell'agente.

Come avrai già notato dall'estensione dei file di configurazione, il formato utilizzato è YAML.

3.6. Cosa succede dopo l'installazione?

Dopo aver installato l'agente, compreso l'Agent Controller, 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 visualizzato nel monitoraggio.

C'è una particolarità quando l'agente viene installato con l'Agent Controller per la prima volta. In questo caso l'agente passerà alla modalità legacy pull 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.

Nel monitoraggio apparirà così:

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

Il sito Checkmk riconosce dall'output dell'agente che l'Agent Controller è presente e quindi che 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 verrà utilizzata solo la modalità pull crittografata. La modalità legacy pull viene disattivata e rimarrà tale. Tuttavia, se necessario, può essere riattivata tramite comando.

La situazione sarà diversa quando si utilizza un agente legacy su un sistema Windows molto vecchio. Senza l'Agent Controller la registrazione non è possibile. Pertanto, per gli agenti legacy le uniche sezioni rilevanti nel capitolo Registrazione sono l'aggiunta dell'host al Setup e poi al monitoraggio. Nel capitolo Test e risoluzione dei problemi devi omettere il test per la chiamata all'Agent Controller, poiché questo non è disponibile per un agente legacy. Poiché senza l'Agent Controller non è disponibile nemmeno la crittografia TLS, dovrai utilizzare altri metodi di crittografia se necessario. In questo caso ti consigliamo di utilizzare la crittografia integrata (simmetrica) tramite la regola Symmetric encryption (Linux, Windows).

Nota: nel set di regole "Checkmk Agent installation auditing" troverai varie impostazioni per verificare lo stato dell'agente e renderlo visibile nel monitoraggio. Tra le altre cose, qui puoi specificare quale stato deve 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à legacy pull è possibile solo la comunicazione non crittografata. Una trasmissione dati esclusivamente crittografata può essere attivata solo una volta stabilita una relazione di fiducia.

Sono da considerare eccezioni i pacchetti preconfigurati per la registrazione automatica e sottoposti a scaricamento tramite agent bakery. Questi pacchetti eseguono la registrazione automaticamente dopo l'installazione.

In tutti gli altri casi, devi eseguire la registrazione manuale subito dopo l'installazione dell'agente. Questo capitolo mostra come eseguire la registrazione.

La registrazione e quindi l’instaurazione del rapporto di fiducia reciproca avviene tramite un utente Checkmk con accesso alla API REST. A tal fine, una buona scelta è l’utente 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 (password di automazione) con il simbolo Icon for rolling the dice.. Devi salvare l’utente prima di poter utilizzare la nuova password.

Nota: poiché non è presente un Agent Controller, e quindi non sono disponibili il registro e la crittografia TLS, sui sistemi Windows molto vecchi dovrai utilizzare metodi di crittografia alternativi, se necessario. In questo caso ti consigliamo di utilizzare la crittografia integrata (simmetrica) tramite la regola Symmetric encryption (Linux, Windows).

4.2. Aggiunta di un host al Setup

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.3. Registrazione di un host sul server

La registrazione avviene tramite l'Agent Controller cmk-agent-ctl, 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 devi inviare una richiesta all'istanza Checkmk con diritti di amministratore:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    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 host che segue l'opzione --hostname deve essere esattamente lo stesso di quando è stato creato nel Setup. 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 automazione. Se ometti l'opzione --password, la password ti verrà richiesta in modo interattivo.

Attenzione, trappola per gli incauti: se amministri principalmente macchine Unix, sei abituato a racchiudere percorsi o parametri con spazi o caratteri speciali tra virgolette singole (apostrofi, 0x27). Windows interpreta questo carattere come parte della chiamata — in questo caso la password — e la registrazione fallirà. Usa invece le virgolette doppie (virgolette, 0x22).

Se i valori specificati erano corretti, ti verrà chiesto di confermare l'identità dell'istanza Checkmk a cui vuoi effettuare la connessione. 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 check 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 C:\ProgramData\checkmk\agent\registered_connections.json.

4.4. Registrazione automatica di un host sul server

Checkmk Ultimate offre la possibilità di creare host automaticamente al momento della registrazione. Per tale registrazione automatica, oltre a un utente con il permesso di registrare host, è necessaria almeno una cartella configurata per contenere gli host che devono essere creati 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 C:\ProgramData\checkmk\agent\pre_configured_connections.json nel pacchetto dell'agente ed esegue la registrazione automaticamente durante l'installazione. Il comando da riga di comando qui presentato viene quindi utilizzato principalmente per il test e il debug, ad esempio per provare le proprie etichette agenti con l'opzione --agent-labels <KEY=VALUE>.

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    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 nell'istanza Checkmk. Il nome dell'host è quello memorizzato nella variabile d'ambiente %COMPUTERNAME%. 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.5. Verifica della relazione di fiducia

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

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" status
Connection: 12.34.56.78:8000/mysite
	UUID: d38e7e53-9f0b-4f11-bbcf-d196deadbeef
	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.6. 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 sull'istanza.

Per prima cosa, su qualsiasi host nel Setup, 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:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    import %TEMP%\mynewhost3.json
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

4.7. Aggiunta dell'host al monitoraggio

Una volta completata la registrazione, esegui un test di connessione e una scoperta del servizio 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.8. Cancellazione della registrazione di un host

Puoi anche rimuovere un host.

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

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    delete d38e7e53-9f0b-4f11-bbcf-d196deadbeef
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 effettuare il ripristino della modalità legacy pull, inserisci il seguente comando:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    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 comporterà come dopo l'installazione iniziale e prima della prima registrazione, inviando i propri 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 usare la riga di comando: Sul server Checkmk, per ogni connessione di un host in monitoraggio, c'è un soft link 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.9. Switch dalla modalità push alla modalità pull

In Checkmk Ultimate CSE puoi switchare dagli host dalla modalità push alla modalità pull e viceversa. 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 SCONOSCIUTO 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 check 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 di diagnostica disponibili dal lato server Checkmk sono descritte nell'articolo generale sugli agenti di monitoraggio. Ma, ovviamente, ci sono altre opzioni di diagnostica disponibili quando si accede direttamente all'host monitorato stesso.

Nelle sezioni seguenti passeremo dal programma agente, attraverso l’Agent Controller e la porta TCP 6556, fino all’istanza 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 un errore, puoi riavviare l'operazione di scoperta del servizio e completare l'inclusione nel monitoraggio.

5.1. Check della configurazione

Per verificare che la configurazione sia stata letta come previsto, chiama il programma agente con l'opzione showconfig. Con questa opzione non solo otterrai la configurazione attualmente utilizzata dall'agente, ma verranno sempre visualizzate anche le variabili d'ambiente e i file di configurazione in uso.

Se ti interessa solo una determinata parte della configurazione, puoi limitare l'output a quella parte specifica. Qui, ad esempio, si verifica se le opzioni nella sezione ps sono state impostate correttamente:

C:\Windows\system32> "C:/Program Files (x86)/checkmk/service/check_mk_agent.exe" showconfig ps
# Environment Variables:
# MK_LOCALDIR="C:\ProgramData\checkmk\agent\local"
# MK_STATEDIR="C:\ProgramData\checkmk\agent\state"
# MK_PLUGINSDIR="C:\ProgramData\checkmk\agent\plugins"
# MK_TEMPDIR="C:\ProgramData\checkmk\agent\tmp"
# MK_LOGDIR="C:\ProgramData\checkmk\agent\log"
# MK_CONFDIR="C:\ProgramData\checkmk\agent\config"
# MK_SPOOLDIR="C:\ProgramData\checkmk\agent\spool"
# MK_INSTALLDIR="C:\ProgramData\checkmk\agent\install"
# MK_MSI_PATH="C:\ProgramData\checkmk\agent\update"
# Loaded Config Files:
# system: 'C:\Program Files (x86)\checkmk\service\check_mk.yml'
# bakery: 'C:\ProgramData\checkmk\agent\bakery'
# user : 'C:\ProgramData\checkmk\agent\check_mk.user.yml'

# ps
enabled: yes
use_wmi: yes
full_path: no
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

In questo modo ottieni una rapida panoramica di come i tre diversi file di configurazione sono stati uniti e utilizzati dal programma agente. Gli errori saranno immediatamente visibili.

5.2. Ambiente di rete per la registrazione

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

Una volta 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:

C:\Windows\system32> curl.exe -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 l'istanza iniziale di solito è semplicemente 8000, per l'istanza seconda 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 identificare la porta dell'Agent Receiver e annotarla. Per farlo, sul server Checkmk, dopo aver effettuato l'accesso come utente dell’istanza, esegui:

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:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    register ^
    --hostname mynewhost ^
    --server cmkserver: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 impediscono l'accesso all'Agent Receiver, c'è comunque la possibilità di utilizzare la registrazione tramite proxy sul server Checkmk.

5.3. L'Agent Controller in modalità dump

Poiché il programma agente deve essere eseguito con l'account LocalSystem per fornire esattamente i dati che arrivano al monitoraggio, non dovresti mai avviarlo in una shell. Se vuoi esaminare l'output dell'agente localmente, usa l'Agent Controller in modalità dump (sottocomando dump). Questo avvia il programma agente con l'ambiente corretto e con l'ID utente corretto, quindi visualizza il risultato.

Dato che l'output può essere un po' lungo, il pager 'more' è molto utile in questo caso. Puoi uscire con il tasto Q:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump | more
<<<check_mk>>>
Version: 2.4.0p16
BuildDate: Mar 14 2023
AgentOS: windows
Hostname: DESKTOP-QVPV284
Architecture: 64bit
WorkingDirectory: C:\Windows\system32
ConfigFile: C:\Program Files (x86)\checkmk\service\check_mk.yml
LocalConfigFile: C:\ProgramData\checkmk\agent\check_mk.user.yml
AgentDirectory: C:\Program Files (x86)\checkmk\service
PluginsDirectory: C:\ProgramData\checkmk\agent\plugins
StateDirectory: C:\ProgramData\checkmk\agent\state
ConfigDirectory: C:\ProgramData\checkmk\agent\config
TempDirectory: C:\ProgramData\checkmk\agent\tmp
LogDirectory: C:\ProgramData\checkmk\agent\log
SpoolDirectory: C:\ProgramData\checkmk\agent\spool
LocalDirectory: C:\ProgramData\checkmk\agent\local
OnlyFrom:
<<<cmk_agent_ctl_status:sep(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 che i dati provenienti dal programma agente siano arrivati all'Agent Controller. Questo output non dimostra ancora che l'agente sia accessibile anche tramite la rete.

5.4. Test di connessione remota

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

OMD[mysite]:~$ 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 se la connessione è stata stabilita con successo e se ora può avvenire l'handshake TLS. Poiché tutto il resto qui è crittografato con TLS, non è possibile effettuare ulteriori check dettagliati.

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

Per ulteriori diagnostiche da eseguire sul server Checkmk, consulta l'articolo generale sugli agenti di monitoraggio. In particolare, puoi anche eseguire un test di connessione utilizzando l'interfaccia Checkmk. Otterrai il risultato nella box "Agent:".

Error message of an unreachable agent during connection test.
Errore durante un test di connessione all'agente

Se durante il test di connessione non ottieni alcuna informazione o ricevi solo un messaggio di errore di timeout, come nell'esempio sopra, dovresti controllare l'Inbound Rules del firewall di Windows sull'host.

5.5. Firewall di Windows

L'agente crea già una regola nel firewall di Windows durante l'installazione, in modo che l'Agent Controller sia raggiungibile dall'esterno tramite la porta 6556. Quando si utilizza la modalità push, di solito non è necessario modificare le impostazioni. Se utilizzi una configurazione del firewall molto rigida, le regole in uscita per le connessioni al server di monitoraggio devono essere configurate in modo che almeno la porta 8000 (per una registrazione più semplice, anche 80 o 443) sia raggiungibile.

Nelle versioni attuali di Windows puoi trovare l'Windows Defender Firewall with Advanced Securitye tramite Impostazioni di Windows (Settings > Windows Security) oppure avviarlo richiamando wf.msc dalla riga di comando:

Entry of the Checkmk agent for Windows Firewall.
Windows Firewall con la regola in entrata per l'agente Checkmk

Se non trovi questa voce nelle impostazioni del Windows Firewall, puoi aggiungerla proprio qui. Per farlo, clicca su New Rule nel menu Action.

Si aprirà una procedura guidata per la creazione di una nuova regola del firewall. Imposta le cinque opzioni come segue:

Rule Type

Lascia la selezione su "Program".

Program

Inserisci This program path %ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exe oppure usa il pulsante Browse per selezionare cmk-agent-ctl.exe.

Action

Allow the connection.

Profile

Questo punto dipende fortemente dalla configurazione della tua rete. Tuttavia, nella maggior parte dei casi si consiglia di abilitare qui solo Domain e Private.

Name

Assegna alla regola un nome conciso e breve.

In alternativa, puoi automatizzare questo passaggio e impostare la regola direttamente dalla riga di comando. Modifica il seguente comando in base al tuo percorso di installazione personalizzato, se necessario:

C:\Windows\System32> netsh advfirewall firewall add rule name="Checkmk Agent" ^
description="Allow inbound network traffic to the Checkmk Agent" dir=in localport=6556 protocol=tcp action=allow ^
program="%ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exe" ^
profile=private,domain enable=yes
OK.
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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

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

Nella cartella ~/var/agent-receiver/received-outputs/ dell'istanza Checkmk, per ogni host registrato troverai un soft link che utilizza l'UUID dell'host come nome. Per gli host in modalità push questo soft link punta alla cartella con l'output dell'agente Checkmk, 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 esito positivo o se è stata interrotta, ad esempio, da problemi di rete sporadici.

Inoltre, puoi dare un'occhiata al file di log C:\ProgramData\checkmk\agent\log\check_mk sull'host (i percorsi potrebbero essere configurati in modo diverso). 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ù istanze 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 in seguito a un 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.

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 Checkmk 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 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. In questo caso, il server Checkmk "pinga" l'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 self-signed che viene sostituito automaticamente poco prima della scadenza della sua validità. L'Agent Controller si occupa del rinnovo del 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.

Nota: poiché sui sistemi Windows molto vecchi non è presente l'Agent Controller, e quindi non ci sono né registro né crittografia TLS, dovrai scegliere altri metodi di crittografia se necessario. In questo caso ti consigliamo di utilizzare la crittografia integrata (simmetrica) tramite la regola Symmetric encryption (Linux, Windows).

6.3. Limitare l'accesso tramite indirizzi IP

È possibile configurare la limitazione dell'accesso a specifici indirizzi IP anche tramite il firewall. Tuttavia, l'agente stesso offre anche la possibilità di ignorare semplicemente le richieste provenienti da indirizzi IP esterni. Basta aggiungere la seguente restrizione al file di configurazione nelle opzioni globali. Tieni presente che nel file di configurazione potrebbero esserci altri parametri impostati prima o dopo questo, e che questo è solo un frammento:

C:\ProgramData\Checkmk\agente Checkmk\check_mk.user.yml
global:
  only_from: 127.0.0.1/32 192.168.42.0/24
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Come puoi vedere nell'esempio, puoi consentire un numero qualsiasi di sottoreti. Ad esempio, con /32 specifichi una sottorete di dimensione 1, in modo che sia consentito solo questo indirizzo, mentre con 192.168.42.0/24 consenti tutti gli indirizzi compresi tra 192.168.42.0 e 192.168.42.255.

CEE In agent bakery, puoi configurare gli indirizzi IP consentiti utilizzando il seguente set di regole: Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Allowed agent access via IP address (Linux, Windows) .

6.4. Disabilitazione della crittografia integrata

Soprattutto durante l'aggiornamento dell'agente, può capitare che sia attiva la crittografia integrata (simmetrica), eseguita dal programma agente stesso. Se la crittografia TLS e quella integrata sono attive contemporaneamente, l’entropia dei dati trasmessi è così elevata che la compressione, attiva dalla versione 2.1.0 in poi, 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 switch 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, sull'host dell'agente, nel file di configurazione C:\ProgramData\checkmk\agent\check_mk.user.yml, modifica il valore del parametro encrypted impostandolo su no:

C:\ProgramData\Checkmk\agente Checkmk\check_mk.user.yml
global:
  encrypted: no
  passphrase: D0e5NotMat7erAnym0r3
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Nel terzo e ultimo passaggio, 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 procede in questo modo: Con il primo passo, ovvero la modifica della regola Symmetric encryption (Linux, Windows), hai quasi finito. Devi solo compilare e distribuire i nuovi agenti. Il file di configurazione C:\ProgramData\checkmk\agent\check_mk.user.yml verrà modificato automaticamente per te e incluso nei pacchetti degli agenti. Rimane solo il terzo passo, ovvero la modifica della regola Enforce agent data encryption.

Dopo il prossimo aggiornamento automatico dell'agente, la crittografia del programma 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. Disabilitazione delle sezioni

L'output dell'agente Checkmk è suddiviso in sezioni. Ciascuna di queste sezioni contiene informazioni correlate. Le sezioni iniziano sempre con un header sezioni. 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 non verranno eseguiti dall'agente, consentendo eventualmente di risparmiare tempo di calcolo. 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 host specifico fornisca valori errati e si desideri sospendere il recupero di tali dati per un breve periodo.

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

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

Nota: l'immagine sopra mostra che esiste anche una regola opposta Enabled sections (Windows agent) a Disabled sections (Windows agent), il che significa che puoi lavorare con l'elenco "positivo" in alternativa a quello "negativo". Tuttavia, per mantenere una visione panoramica chiara, ti consigliamo di utilizzare solo una delle due regole.

Nella regola Disabled sections (Windows agent) troverai una checkbox separata per ogni sezione che può essere disabilitata. Per le checkbox selezionate troverai poi — dopo che l'agente appena creato è stato installato sugli host selezionati — nel file di configurazione di agent bakery C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml sotto global: una riga disabled_sections: che elenca le sezioni selezionate.

Ad esempio, se dovessi selezionare sia System uptime che Web Services, il file di configurazione corrispondente sarebbe simile al seguente:

C:\ProgramData\Checkmk\agent\check_mk.user.yml
global:
    disabled_sections: [uptime, wmi_webservices]
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Gli utenti di CRE della Comunità Checkmk possono creare manualmente una voce nel file di configurazione C:\ProgramData\checkmk\agent\check_mk.user.yml e inserire lì le sezioni che devono essere disabilitate. Tutte le sezioni che possono essere disabilitate sono elencate in questo file sotto global: nella sezione _sections:.

8. Estensione dell'agente tramite plug-in

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

Il programma agente check_mk_agent.exe contiene un'intera serie di sezioni che forniscono dati di monitoraggio per vari plug-in di controllo, che vengono poi individuati automaticamente dalla scoperta del servizio. Questo include tutto il monitoraggio importante del 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 richiamati dall'agente e lo estendono con sezioni aggiuntive contenenti ulteriori dati di monitoraggio. Il progetto Checkmk fornisce una serie di plug-in di questo tipo che, se installati e configurati correttamente, forniscono automaticamente nuovi servizi nell'ambito della scoperta del servizio.

Perché questi plug-in non sono semplicemente integrati nell'agente? Per ciascuno dei plug-in c'è uno dei seguenti motivi:

  • Il plug-in può recuperare i propri dati solo tramite interfacce interne che l'agente non fornisce (esempio: PowerShell).

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

  • Il plug-in è talmente specifico che non è necessario alla maggior parte degli utenti (esempio: citrix_licenses.vbs).

8.2. Installazione manuale

I plug-in inclusi per Windows si trovano tutti sull'host monitorato nella directory di installazione dell'agente sotto C:\Program Files (x86)\checkmk\service\plugins. Sono memorizzati lì in modo da essere direttamente disponibili. In alternativa, i plug-in per Windows si trovano anche sul server Checkmk sotto ~/share/check_mk/agents/windows/plugins.

Sono disponibili anche dalla pagina di download dell'agente nel menu di configurazione (come descritto nel capitolo di installazione) nella box Plugins:

Download page with agent plug-ins.
L'inizio dell'elenco dei plug-in degli agenti disponibili

Per tutti i plug-in degli agenti che forniamo, ci sono plug-in di controllo corrispondenti in grado di valutare i loro dati e generare servizi. Questi sono già installati, in modo che i servizi appena individuati vengano immediatamente riconosciuti e possano essere configurati.

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

L'installazione vera e propria è poi semplice: Copia il file in C:\ProgramData\checkmk\agent\plugins.

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

8.3. Configurazione

Alcuni plug-in necessitano di un file di configurazione in C:\ProgramData\checkmk\agent\config per funzionare. Per altri, la configurazione è facoltativa (ad es. mssql.vbs) e consente di utilizzare funzionalità speciali o personalizzazioni. Altri ancora funzionano semplicemente così. Hai diverse fonti da cui ottenere informazioni:

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

  • I commenti nel file del plug-in (spesso molto utili!)

  • Un articolo pertinente in questo manuale (ad es. sul monitoraggio di Oracle)

Per i linguaggi speciali (di scripting), potrebbe essere necessario abilitarli prima nella configurazione dell'agente. Ad esempio, gli script Python non verranno eseguiti a meno che non siano esplicitamente abilitati. Puoi farlo estendendo le estensioni dei file nel file di configurazione check_mk.user.yml nella sezione global, come mostrato nel seguente estratto:

C:\ProgramData\Checkmk\agent\check_mk.user.yml
global:
    execute: [exe, bat, vbs, cmd, ps1, py]
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Importante: l'uso di tali plug-in richiede che i file possano essere richiamati anche in una normale riga di comando senza percorsi speciali. Nel caso di Python, deve essere installato correttamente e il percorso dell'interprete deve essere presente nelle variabili d'ambiente. Le istruzioni su come configurare correttamente Python sono disponibili direttamente sulle pagine della Python Software Foundation.

8.4. Personalizzazione dell'esecuzione di un plug-in specifico

Ogni plug-in può essere eseguito in diverse modalità. Le seguenti opzioni sono disponibili per l'inserimento nel file di configurazione.

Opzione Valore Descrizione

pattern

'@user\*.ps1'

Imposta l'intervallo delle opzioni seguenti. Qui puoi usare anche i caratteri jolly. Le opzioni seguenti si riferiscono quindi a tutti i plug-in a cui si applica l'espressione. Leading determina se il plug-in deve essere eseguito direttamente dalla directory di installazione in C:\Program Files (x86)\ o dalla directory dei dati in C:\ProgramData.

run

yes/no

Determina se l'esecuzione di un plug-in deve essere soppressa.

async

yes/no

Esegue un plug-in in modo asincrono e salva i dati in un file. Se eseguito in modo sincrono, l'output viene passato direttamente all'agente.

timeout

60

Imposta il tempo massimo di esecuzione. Trascorso questo tempo, il plug-in verrà terminato anche se non è stato generato alcun output. Il valore predefinito si basa sull'impostazione predefinita per l'intervallo di query dell'agente.

cache_age

60

Imposta in secondi la durata di validità di un output.

retry_count

1

Il numero di volte in cui un plug-in può fallire prima che l'output venga eliminato dalla cache.

description

'Text'

Qui puoi inserire un testo libero da aggiungere ai log.

Una configurazione per il plug-in Veeam appare quindi, ad esempio, in questo modo (l'estratto è abbreviato e contiene solo la parte rilevante per l'esempio):

C:\ProgramData\Checkmk\agent\check_mk.user.yml
plugins:
    enabled: yes
    execution:
        - pattern: $CUSTOM_PLUGINS_PATH$\veeam_backup_status.ps1
          async: yes
          timeout: 120
          cache_age: 300
          retry_count: 2
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

In base alla configurazione di esempio sopra riportata, il plug-in nella directory dei dati C:\ProgramData\checkmk\agent\plugins viene eseguito in modo asincrono ogni cinque minuti (300 secondi) e può durare al massimo due minuti (120 secondi). Se il plug-in raggiunge questo timeout, proverà una seconda volta a ottenere un risultato.

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 stesso sia della corretta creazione del 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 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. Se necessario, impostale manualmente se sono richieste nello script o nel programma.

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 con 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 end-to-end monitoring. 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 semplice meccanismo per soddisfare questi due requisiti: MK's Remote Plugin Executor (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 ed è controllato da vari file di configurazione.

Attivazione e disattivazione di MRPE

Per impostazione predefinita, l'utilizzo dei plug-in MRPE è abilitato. Se non vuoi utilizzare questa funzione, puoi disabilitarla nel file di configurazione aggiungendo la seguente definizione:

C:\ProgramData\Checkmk\agente Checkmk\check_mk.user.yml
mrpe:
  enabled: no
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Limitare il tempo di esecuzione

A volte il tempo di esecuzione di uno script o di un plug-in Nagios è imprevedibile e, nel peggiore dei casi, un plug-in non finisce mai. Per mantenere il controllo in questo caso, puoi limitare il tempo massimo di esecuzione dei plug-in MRPE. Il valore mostrato qui è anche il valore predefinito in secondi. Quindi le regolazioni sono necessarie solo se vuoi impostare un intervallo più breve o più lungo:

C:\ProgramData\Checkmk\agent\check_mk.user.yml
mrpe:
  # enabled: yes
  timeout: 60
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Aggiunta di plug-in MRPE

Per indicare all'agente dove si trova il file da eseguire e come richiamarlo, aggiungi una voce nella configurazione MRPE:

C:\ProgramData\Checkmk\agente Checkmk\check_mk.user.yml
mrpe:
  config:
  - check = MyServiceName 'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat' -w 10 -c 20 MyParameter
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Non è necessario mettere il file anche nella directory dell'agente, anche se è comodo raccoglierli tutti in un posto comune. In questa configurazione di esempio, ora puoi vedere i seguenti elementi della riga in questione:

Elemento Descrizione

MyServiceName

Il nome del servizio così come dovrebbe essere visualizzato in Checkmk.

'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat'

Programma da eseguire; virgolette per eventuali spazi.

-w 10 -c 20

Opzioni passate: una threshold di 10 per WARN e 20 per CRIT.

MyParameter

Esempio di passaggio di altri parametri.

Dopo aver configurato il plug-in MRPE, questo sarà attivo immediatamente senza bisogno di riavviare l'agente e verrà aggiunto all'output. Nella scoperta del servizio troverai ora automaticamente il tuo nuovo servizio:

agent windows service discovery

9.2. MRPE con agent bakery

CEE In alternativa alla configurazione diretta su un host nel file di configurazione specifico dell'utente, puoi anche definire i tuoi plug-in MRPE direttamente nel menu Setup. Per farlo, usa il set di regole "Setup > Agents > Windows, Linux, Solaris, AIX > Agent > Agent rules > Execute MRPE checks". La voce necessaria verrà quindi creata automaticamente nel file di configurazione di agent bakery.

10. Monitoraggio hardware

Il monitoraggio hardware degli host Windows è ben coperto dall'agente Checkmk, a condizione che siano disponibili plug-in ed estensioni nel Checkmk Exchange. Tuttavia, ci sono situazioni in cui non sono disponibili né plug-in già pronti né interfacce di programmazione per creare i propri plug-in, ma un software applicativo o uno strumento di monitoraggio hardware fornito da un produttore di hardware può fornire dati di monitoraggio tramite SNMP.

In tal caso, imposta SNMP sul tipo di connessione appropriato (SNMPv2 or v3 o SNMPv1) nella box "Monitoring agents" nelle proprietà dell'host in Setup. I servizi disponibili sia tramite SNMP che tramite l'agente Checkmk (ad es. utilizzo della CPU, file system, schede di rete) vengono quindi recuperati automaticamente dall'agente Checkmk e non tramite SNMP. Questo evita automaticamente trasmissioni duplicate.

Per ulteriori informazioni, consulta l'articolo Monitoraggio con SNMP.

11. Disinstallazione

Hai diverse opzioni per effettuare la disinstallazione dell'agente in Windows. In tutte le versioni di Windows troverai una voce nel Pannello di controllo alla voce "Control Panel > Programs and Features > Uninstall a program". Nelle versioni più recenti puoi trovare la voce relativa all'agente Checkmk anche nelle impostazioni alla voce "Settings > Apps > Apps & features".

Dalla riga di comando per amministratori, hai diverse opzioni per rimuovere l'agente. Se hai ancora l'ultimo pacchetto MSI installato, puoi utilizzarlo per la disinstallazione come segue:

C:\Users\downloads\> msiexec /x check_mk_agent.msi /qn
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

In alternativa, puoi utilizzare il comando Windows Management Instrumentation (WMIC) per effettuare la disinstallazione:

C:\> wmic product where name="Check MK Agent 2.1" call uninstall /nointeractive
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se la disinstallazione è andata a buon fine, riceverai il messaggio Method execution successful. come conferma.

Nota: la stringa dopo name= deve essere esattamente corretta. Se vuoi effettuare la disinstallazione di un'altra versione dell'agente, qui troverai un elenco di tutti i prodotti installati con la seguente chiamata:

C:\> wmic product get name
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Il processo a volte può richiedere parecchio tempo e non fornirà alcun messaggio di stato, ma genererà elenchi molto lunghi. Per filtrare i risultati puoi estendere il comando con un pipe:

C:\> wmic product get name | findstr Check
Check MK Agent 2.3
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Poiché le varie routine di Windows rimuovono solo i file che sono stati inseriti lì tramite il processo di installazione, è perfettamente normale che i file rimangano nelle directory dell'agente. Questi possono essere eliminati manualmente.

12. File e directory

12.1. Percorsi sull'host sottoposto a monitoraggio

Percorso Significato

C:\Program Files (x86)\checkmk\service

Directory di installazione dei file specifici del programma, inclusi il programma agente check_mk_agent.exe e l'Agent Controller cmk-agent-ctl.exe. Qui non sono necessarie modifiche.
L'agente viene fornito come programma a 32 bit e a 64 bit. La procedura di installazione seleziona automaticamente il programma corretto per un sistema operativo a 32 bit o a 64 bit. Nella directory Program Files (x86) l'agente viene installato per motivi di compatibilità.

C:\Program Files (x86)\checkmk\service\check_mk.yml

Il file di configurazione predefinita dell'agente. Non modificare questo file.

C:\ProgramData\checkmk\agent\

Directory di installazione per i file specifici dell'host. Qui si trovano le estensioni, i file di log e i file di configurazione specifici per questo host.

C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml

Questo file di configurazione viene creato da agent bakery e, se necessario, sovrascrive i valori del file di configurazione predefinito.

C:\ProgramData\checkmk\agent\check_mk.user.yml

File di configurazione per le tue personalizzazioni individuali. Questo file viene letto per ultimo e, se necessario, sovrascrive i valori degli altri file di configurazione.

C:\ProgramData\checkmk\agent\plugins

Directory per i plug-in che dovrebbero essere eseguiti automaticamente dall'agente e ampliare il suo output con ulteriori dati di monitoraggio.

C:\ProgramData\checkmk\agent\spool

Contiene dati creati, ad esempio, dai file di log che hanno una sezione dedicata. Anche questi vengono aggiunti all'output dell'agente. Puoi leggere di più su questo argomento nell'articolo La directory spool.

C:\ProgramData\checkmk\agent\registered_connections.json

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

C:\ProgramData\checkmk\agent\pre_configured_connections.json

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

C:\ProgramData\checkmk\agent\config

Archiviazione dei file di configurazione per l'agente.

C:\ProgramData\checkmk\agent\local

Directory per i controlli locali personalizzati.

C:\ProgramData\checkmk\agent\mrpe

Qui è possibile memorizzare le estensioni MRPE.

C:\ProgramData\checkmk\agent\backup

Dopo ogni modifica del servizio dell'agente Checkmk, qui viene creato un backup della configurazione dell'utente.

C:\ProgramData\checkmk\agent\log

Qui puoi trovare i file di log. Oltre all'check_mk.log (in tutte le edizioni), che viene costantemente aggiornato durante il funzionamento, qui potrebbero essere presenti ulteriori log relativi all'installazione automatica o agli aggiornamenti.

12.2. Percorsi sul server Checkmk

Percorso Significato

~/local/share/check_mk/agents/custom

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

~/share/check_mk/agents/windows/

Directory contenente il pacchetto MSI dell’agente. Questa directory contiene anche esempi di configurazione e tutti i plug-in dell'agente.

~/var/agent-receiver/received-outputs

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


Last modified: Wed, 18 Feb 2026 12:14:57 GMT via commit 998748fbd
In questa pagina