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 per Windows

Fin dall'inizio, il monitoraggio dei server Checkmk è stato uno dei compiti più importanti di Checkmk. Come per tutti gli altri sistemi operativi server, Checkmk fornisce quindi un proprio agente per Windows, un programma agente che è al tempo stesso 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, che 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 con l'Agent Receiver, un processo che gira sul server Checkmk.

In questo modo, da un lato, l'agente Windows si appropria del programma agente e quindi anche dei suoi vantaggi, dall'altro lo integra in modo da poter aggiungere nuove funzioni, 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 a partire da Checkmk Cloud, cioè in Checkmk Cloud e Checkmk MSP. L'inversione della direzione della comunicazione facilita il monitoraggio di host che si trovano dietro a firewall. La modalità push è solitamente combinata con la registrazione automatica dell'agente Pull, anch'essa disponibile a partire da Checkmk Cloud.

Tip

I pacchetti agente che utilizzano la configurazione predefinita aprono la porta 6556 subito dopo l'installazione e inviano i dati dell'agente non crittografati attraverso questa porta a chiunque li richieda. Per gli host accessibili da internet, prima dell' installazione devi assicurarti, tramite le impostazioni del firewall, che solo gli host selezionati siano autorizzati ad 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 (edizioni) di Microsoft Windows NT. La tabella seguente elenca esplicitamente queste versioni. Nella colonna Versione troverai l'inizio del numero di versione, che può essere visualizzato sul sistema di produzione con i comandi ver e systeminfo.

Edizione Versione

Windows 10, 11, Windows Server 2016, 2019, 2022

10.0

Importante: le edizioni non elencate nella tabella precedente non sono ufficialmente supportate. Questo include anche Windows Embedded, ad esempio. Tuttavia, per il monitoraggio di vecchie versioni di Windows come, ad esempio, Windows Server 2008, puoi utilizzare un agente legacy a tuo rischio e pericolo. Gli agenti legacy sono agenti di vecchie edizioni di Checkmk privi dell'Agent Controller. Naturalmente questo significa che le funzionalità estese con l'Agent Controller, come la crittografia o la compressione TLS, non saranno disponibili. Gli agenti legacy sono disponibili per il download qui. Per gli agenti legacy è necessario tenere in considerazione alcuni requisiti speciali, che sono riassunti nel capitolo sull'installazione.

L'installazione, la registrazione e la configurazione dell'agente possono essere eseguite in pochi passi, perché l'agente non ha bisogno di librerie aggiuntive per le sue funzionalità. Inoltre, l'agente viene fornito con una configurazione di base che è 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 specificamente l'implementazione Windows.

Il programma agente check_mk_agent.exe è responsabile della raccolta dei dati di monitoraggio. Il programma viene avviato come servizio Windows sotto l'account LocalSystem. Quando viene chiamato, raccoglie i dati sul sistema locale e li mette a disposizione dell'Agent Controller.

Il programma agente è minimalista, sicuro, facilmente estendibile e completo e fornisce l'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. Per saperne di più su questo tema, consulta l'articolo sul monitoraggio con SNMP. Inoltre, il programma agente è trasparente come può esserlo un file consegnato come eseguibile, perché hai accesso al codice sorgente in qualsiasi momento e quindi alla sua funzionalità e, in linea di principio, puoi anche compilare l'agente stesso.

L'Agent Controller cmk-agent-ctl.exe è il componente dell'agente responsabile del trasporto dei dati raccolti dal programma agente. Viene eseguito come processo in background sotto l'account LocalSystem di Windows. In modalità pull, ascolta la porta TCP 6556 per le connessioni in arrivo dal sito Checkmk e interroga il programma agente tramite Mailslot.

3. Installazione

Checkmk offre diversi metodi di installazione dell'agente per Windows: dall'installazione manuale del pacchetto software al deployment completamente automatizzato, compresa la funzione di aggiornamento. Alcuni di questi metodi sono disponibili solo nelle edizioni commerciali:

Metodo Descrizione Checkmk Raw Edizioni commerciali

Pacchetto MSI fornito

Semplice installazione di un agente standard con configurazione manuale tramite file di configurazione.

X

X

Pacchetto MSI dell'agent bakery

Configurazione tramite GUI; è possibile una configurazione individuale per host.

X

Aggiornamenti automatici

Il pacchetto dell'Agent bakery viene installato per la prima volta a mano o tramite script e da quel momento in poi verrà aggiornato automaticamente.

X

In alternativa, puoi distribuire il pacchetto MSI anche attraverso altri percorsi, come ad esempio la Microsoft Active Directory. L'installazione può essere completamente automatizzata utilizzando il formato MSI.

3.1. Scaricare un pacchetto MSI

L'installazione dell'agente Windows avviene tramite un pacchetto MSI.

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

Ottenere un pacchetto tramite la GUI di Checkmk

In Checkmk Raw puoi trovare il pacchetto Windows dell'agente tramite Setup > Agents > Windows. Nelle edizioni commerciali, per prima cosa accedi all'Agent Bakery nel menu Setup tramite Agents > Windows, Linux, Solaris, AIX, dove si trovano i pacchetti Baked. 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 alla pagina di download

Tutto ciò di cui hai bisogno si trova nel primo box chiamato Packaged Agents: il file del pacchetto MSI già pronto check_mk_agent.msi per l'installazione dell'agente Windows con le sue impostazioni predefinite.

Ottenere un pacchetto attraverso l'API REST

L'API REST di Checkmk fornisce i seguenti metodi per scaricare i pacchetti dell'agente dal server Checkmk:

  • Scaricare l'agente fornito.

  • Scaricare un Baked agent in base al nome host e al sistema operativo.

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

Tramite API REST hai la possibilità di prelevare il pacchetto dal server Checkmk direttamente sul computer di destinazione. Ad esempio, il pacchetto MSI con l'agente Checkmk può essere prelevato con il seguente comando curl. Nelle versioni più recenti di Windows curl è già incluso, mentre nelle versioni più vecchie dovrai prima installare separatamente l'ambiente di comando curl tramite curl per Windows.

C:\Users\hhirsch\Downloads\> 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=windows_msi"

Nota: il comando di cui sopra è stato diviso in quattro righe per facilitare la lettura.

Questo è solo un semplice esempio per dimostrare come funziona questo particolare endpoint dell'API REST per scaricare l'agente. Per maggiori dettagli su questo e altri endpoint dell'API REST, consulta la documentazione dell'API disponibile in Checkmk tramite Help > Developer resources > REST API documentation.

3.2. Installazione dei pacchetti

Installazione manuale

Dopo aver prelevato 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 linea di comando come segue:

C:\Users\hhirsch\Downloads\> check_mk_agent.msi

Verrà visualizzata la pagina iniziale dell'installazione guidata:

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

Utilizza i pulsanti Next per scorrere le pagine della procedura guidata. Accetta le condizioni di licenza di GNU GENERAL PUBLIC LICENSE per continuare. La procedura guidata di installazione ti presenterà la seguente pagina:

Setup Wizard page on how to proceed when updating an old agent.
Scelte per l'installazione dell'agente

Le scelte di questa pagina sono rilevanti solo se sull'host è già installato un agente Windows precedente alla versione 1.6.0. Nella versione 1.6.0 l'architettura dell'agente Windows è cambiata radicalmente. Se stai effettuando l'aggiornamento (o la migrazione) all'agente attuale da un agente Windows precedente alla versione 1.6.0, leggi innanzitutto il capitolo dedicato al vecchio agente nella User Guide di Checkmk per la versione 2.0.0. Lì scoprirai quali delle opzioni fornite devi selezionare in questo caso particolare di aggiornamento.

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

Conferma l'avvio dell'installazione e lascia che il programma di installazione apporti le modifiche nella finestra di dialogo (User Account Control. Al termine, puoi uscire dalla procedura guidata di installazione.

Al termine dell'installazione, l'agente si avvierà immediatamente come servizio di Windows e sarà pronto a monitorare il sistema.

Installazione non presidiata

Tramite la linea di comando, Windows offre agli amministratori di msiexec la possibilità di installare automaticamente i pacchetti MSI senza l'interazione dell'utente. Un'installazione automatizzata può avere il seguente aspetto, ad esempio:

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn

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

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

Opzione nella procedura guidata 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 attivare un'opzione, aggiungi il suo identificatore seguito da un segno "uguale":

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_CLEANINSTALL=

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

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_MIGRATELEGACY=""

3.3. Installazione con l'agent bakery

Le edizioni commerciali dispongono di un modulo software, l'Agent bakery, per il confezionamento automatico di agenti personalizzati. Una descrizione dettagliata di questo modulo si trova nell'articolo generale sugli agenti. L'installazione del pacchetto MSI Baked avviene nello stesso modo descritto sopra per il pacchetto incluso.

A partire da Checkmk Cloud è possibile utilizzare l'Agent bakery per fornire pacchetti di agenti con 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 e la registrazione manuale, descritta nel capitolo successivo, non sarà più necessaria.

3.4. Aggiornamenti automatici

Se utilizzi l'Agent bakery, puoi anche impostare gli aggiornamenti automatici dell'agente. Questi aggiornamenti sono descritti in un apposito articolo.

3.5. File di configurazione dell'agente

Durante l'installazione, il pacchetto MSI memorizza i file specifici del programma in C:\Program Files (x86)\checkmk\service\ e i file specifici dell'host in C:\ProgramData\checkmk\agent\. Non è necessario personalizzare i file specifici del programma. I file specifici dell'host vengono utilizzati per memorizzare i plug-in, i file di log e di configurazione e per 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 deve essere modificato.

  2. C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
    è creato dall'agent bakery e non deve essere modificato manualmente.

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

Se un'opzione è stata impostata in più file, l'ultimo file letto determina il contenuto di questa opzione. Per il lavoro manuale con l'agente, quindi, solo l'ultimo file di configurazione check_mk.user.yaml è rilevante, perché viene letto per ultimo e quindi ha l'ultima parola. Se non si utilizza l'Agent bakery, questo è di fatto l'unico file in cui si possono effettuare le personalizzazioni della configurazione dell'agente.

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

3.6. Cosa segue l'installazione?

Dopo l'installazione dell'agente, compreso l'Agent Controller, il passo successivo è la registrazione, che imposta la crittografia TLS in modo che l'output criptato dell'agente Checkmk possa essere decifrato dal server Checkmk e visualizzato nel monitoraggio.

Esiste una funzione speciale quando l'agent è stato installato per la prima volta con l'Agent Controller: in questo caso l'agente switcha alla modalità legacy pull non crittografata, in modo che il server Checkmk non sia tagliato fuori dai dati di monitoraggio e possa continuare a visualizzarli. Questo vale sia per una nuova installazione che per l'aggiornamento dell'agente della versione 2.0.0 o precedente.

L'aspetto del monitoraggio sarà il seguente:

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

L'istanza 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 fino a quando non viene registrato. Dopo la registrazione, per la comunicazione verrà utilizzata solo la modalità pull crittografata. La modalità legacy pull è disattivata e rimarrà tale. Tuttavia, se necessario, può essere attivata nuovamente tramite comando.

La situazione sarà diversa se si utilizza un agente legacy su un sistema Windows molto vecchio. Senza l'Agent Controller non è possibile effettuare la registrazione. Pertanto, per gli agenti legacy le uniche sezioni rilevanti del 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 dell'Agent Controller, perché non è disponibile per un agente legacy. Poiché senza Agent Controller non c'è nemmeno la crittografia TLS, dovrai usare altri metodi di crittografia se necessario. In questo caso ti consigliamo di usare la crittografia integrata (simmetrica) usando la regola Symmetric encryption (Linux, Windows).

Nota: nel set di regole Checkmk Agent installation auditing troverai diverse impostazioni per controllare 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 è ancora stata eseguita.

4. Registrazione

4.1. Panoramica e prerequisiti

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

Fanno eccezione i pacchetti preconfigurati per la registrazione automatica e scaricati tramite l'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 con un utente Checkmk che ha accesso all'API REST. Per questo, 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 randomizzare la password di automazione corrispondente(password di automazione) con il simbolo.

Nota: poiché non c'è Agent Controller e quindi non c'è la crittografia del registro e di TLS, nei sistemi Windows molto vecchi dovrai utilizzare metodi di crittografia alternativi, se necessario. In questo caso ti consigliamo di utilizzare la crittografia integrata (simmetrica) utilizzando la regola Symmetric encryption (Linux, Windows).

4.2. Aggiungere un host al setup

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

A partire da Checkmk Cloud 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. Registrare un host con il server

La registrazione avviene tramite l'Agent Controller cmk-agent-ctl, che fornisce un'interfaccia di comando per la configurazione delle connessioni. Puoi visualizzare la guida ai comandi con cmk-agent-ctl help, anche per i sottocomandi specifici 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 dice all'Agent Controller in quale modalità deve operare durante la registrazione.

Ora vai all'host che deve essere registrato. Qui devi fare una richiesta all'istanza Checkmk con i 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"

Il nome dell'host che segue l'opzione --hostname deve essere esattamente lo stesso che è stato creato nel Setup. Le opzioni --server e --site specificano il nome dell'istanza Checkmk e del sito. Il nome del server può anche essere l'indirizzo IP, mentre 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'istanza web. Se ometti l'opzione --password, la password verrà richiesta in modo interattivo.

Attenzione, una 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( 0x22).

Se i valori specificati sono corretti, ti verrà chiesto di confermare l'identità dell'istanza Checkmk a cui vuoi connetterti. 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 criptata è stata stabilita. Tutti i dati saranno ora trasmessi in modulo compresso attraverso 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 sarà automaticamente 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.4. Registrazione automatica di un host con il server

A partire da Checkmk Cloud, Checkmk offre la possibilità di creare automaticamente gli host al momento della registrazione. Per questa registrazione automatica, oltre a un utente con il permesso di registrare gli host, è necessaria almeno una cartella configurata per contenere gli host che devono essere creati automaticamente.

Se queste condizioni sono soddisfatte, puoi anche effettuare la registrazione, compresa la creazione automatica degli host, tramite la linea di comando.

Di solito si utilizza la procedura di impostazione dell'agent bakery, che include il file di configurazione /var/lib/cmk-agent/pre_configured_connections.json nel pacchetto dell'agente e che esegue la registrazione automaticamente durante l'installazione. La chiamata da linea di comando qui presentata è quindi utilizzata principalmente per i test e il debug, ad esempio per provare le proprie etichette agente 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"

La differenza principale è il sottocomando register-new modificato, 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.

Il fatto che l'host venga creato in modalità pull, push o non venga creato affatto è definito dalle tue impostazioni nel set di regole Agent registration. Dopo una registrazione andata a buon fine, potrebbero essere necessari alcuni minuti prima che l'host venga visualizzato 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

Se le informazioni sono necessarie in un formato leggibile, aggiungi il parametro aggiuntivo --json per recuperare l'output formattato come oggetto JSON.

Nota: può esserci sempre e 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 sarà scollegata e non saranno più forniti dati dell'agente di monitoraggio all'host!

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ò essere trasferito all'host di destinazione e importato. Anche in questo caso, come in precedenza, l'host registrato nel lavoro deve essere già configurato sul sito.

Per prima cosa, su qualsiasi host presente nel Setup, la registrazione viene eseguita tramite proxy. In questo caso, ovviamente, il server Checkmk si rivela utile, dato che di solito è il primo host ad essere configurato. Come nell'esempio precedente, puoi passare la password tramite un'opzione o chiederla in modo interattivo se ometti l'opzione --password. Nell'esempio reindirizziamo l'output JSON a un file:

root@linux# cmk-agent-ctl proxy-register \
    --hostname mynewhost3 \
    --server cmkserver --site mysite \
    --user agent_registration > /tmp/mynewhost3.json

Successivamente trasferiamo il file /tmp/mynewhost3.json all'host per il quale ci siamo registrati e lo importiamo:

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    import %TEMP%\mynewhost3.json

4.7. Aggiunta dell'host al monitoraggio

Una volta completata la registrazione, esegui un test di connessione e una ricerca di servizi nel Setup del server Checkmk. Poi, come ultimo passo, includi i servizi scoperti 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. Deregistrazione di un host

Puoi anche cancellare la registrazione di un host.

Su un host connesso al server Checkmk, puoi revocare la fiducia. In questo caso, nel comando seguente, l'Universally Unique Identifier (UUID) da specificare è quello emesso 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

Per eliminare tutte le connessioni dall'host e ripristinare la 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

In seguito, l'agente si comporterà come dopo l'installazione iniziale e prima della prima registrazione e invierà i suoi dati in modo non criptato.

Completa la deregistrazione sul server Checkmk: nel menu di configurazione, alla pagina Properties of host, seleziona la voce di menu Host > Remove TLS registration e conferma il prompt.

Se preferisci usare la linea 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 Checkmk:

OMD[mysite]:~$ cd ~/var/agent-receiver/received-outputs
OMD[mysite]:~$ 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

4.9. Switch tra modalità push e pull

A partire da Checkmk Cloud puoi switchare gli host dalla modalità push a quella pull e viceversa. Questo può essere necessario in singoli casi se sono in sospeso modifiche alla topologia della rete o se si deve effettuare un downgrade a Checkmk Enterprise, in cui è possibile solo la modalità pull.

Per prima cosa, specifica la modalità di accesso nel Setup, nelle proprietà dell'host, con l'opzione Checkmk agent connection mode. Entro il minuto successivo, 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 indica all'Agent Controller se si aspetta dati in modalità pull o push. Un successivo controllo tramite cmk-agent-ctl status mostrerà un nuovo UUID e una modalità coerente con la modifica apportata nel Setup.

5. Test e risoluzione dei problemi

Dalla versione 2.1.0, con l'introduzione di due nuovi componenti - l'Agent Controller sull'host e l'Agent Receiver sul server Checkmk - il numero di punti in cui qualcosa può andare storto è aumentato.

Per la risoluzione dei problemi, si raccomanda quindi un approccio strutturato. Naturalmente, puoi anche utilizzare l'analisi passo-passo descritta qui per conoscere più in dettaglio la raccolta dei dati e la comunicazione fornita da Checkmk.

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

Nelle sezioni che seguono andremo dal programma dell'agente, passando per l'Agent Controller e la porta TCP 6556, fino all'istanza Checkmk. Con l'Agent Controller in modalità push, bypassa 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 la scoperta del servizio e completare l'inclusione nel monitoraggio.

5.1. Controllare la 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 anche visualizzate le variabili d'ambiente e i file di configurazione in uso.

Se solo una certa parte della configurazione è di interesse, puoi limitare l'output a quella specifica parte. In questo caso, ad esempio, viene controllato se le opzioni della 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

In questo modo otterrai 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 anche prima della presentazione di un certificato, la conoscenza dei metodi di comunicazione può aiutare a identificare il problema e, naturalmente, a risolverlo.

Una volta inserito il comando cmk-agent-ctl register, l'Agent Controller chiede 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 del tipo curl:

C:\Windows\system32> curl.exe -v --insecure https://mycmkserver/mysite/check_mk/api/1.0/domain-types/internal/actions/discover-receiver/invoke

Il parametro --insecure indica a curl di saltare la verifica del certificato. Questo comportamento riflette il comportamento dell'Agent Controller in questa fase. La risposta è costituita da pochi byte e contiene il numero di porta dell'Agent Receiver. Per il primo sito di solito è solo 8000, per il secondo 8001 e così via. I problemi più comuni relativi a questa richiesta sono:

  • Il server Checkmk è irraggiungibile dall'host.

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

Quando il comando curl fallisce, potresti modificare le impostazioni del routing o del firewall per consentire l'accesso.

Se l'host che stai cercando di registrare utilizza un proxy HTTP, curl lo utilizzerà, ma cmk-agent-ctl non lo farà con le configurazioni predefinite. Usa l'opzione aggiuntiva --detect-proxy per indicare a cmk-agent-ctl di utilizzare un proxy configurato tramite le impostazioni di sistema.

Tuttavia, spesso è più semplice identificare la porta dell'Agent Receiver e annotarla. Per farlo, sul server Checkmk, loggato come utente dell'istanza Checkmk, esegui:

OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000

Ora puoi specificare la porta quando inserisci il comando per la registrazione. In questo modo salta la prima richiesta all'API REST e la comunicazione avviene direttamente con l'Agent Receiver senza alcuna deviazione:

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

Anche la porta 8000 deve essere raggiungibile dall'host. In caso contrario, riceverai questo messaggio di errore:

ERROR [cmk_agent_ctl] Connection refused (os error 111)

Equivalente alla porta 443 (o 80) di cui sopra, puoi ora regolare le impostazioni del 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à successo.

Se le policy di sicurezza vietano l'accesso all'Agent Receiver, esiste 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 chiamato con l'account LocalSystem per fornire esattamente i dati che arrivano nel 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). In questo modo il programma agente viene avviato con l'ambiente corretto e con l'account utente corretto e poi produce il risultato.

Dato che l'output può essere un po' più 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.3.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)>>>

In questo modo puoi verificare che i dati del programma agente siano arrivati all'Agent Controller. Questo output non dimostra ancora che l'agente sia accessibile in rete.

5.4. Test di connessione remota

Se in modalità pull è stato verificato che il programma agente e i plug-in dell'agente installati vengono eseguiti correttamente, puoi verificare 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

L'output 16 indica se la connessione è stata stabilita con successo e se l'handshake TLS può avere luogo. Poiché tutto il resto è criptato TLS, non è possibile effettuare un controllo più dettagliato.

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

Per ulteriori diagnosi 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 nel box Agent:.

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

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

5.5. Firewall di Windows

L'agente crea già una regola nel firewall di Windows durante la sua 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 sue impostazioni. Se si utilizza una configurazione del firewall molto rigida, le Regole in uscita per le connessioni all'agente di monitoraggio devono essere configurate in modo che sia raggiungibile almeno la porta 8000 (per una registrazione più semplice, anche le porte 80 o 443).

Nelle versioni attuali di Windows puoi trovare Windows Defender Firewall with Advanced Security tramite le Impostazioni di Windows (Settings > Windows Security) o avviarlo richiamando wf.msc dalla linea di comando:

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

Se non trovi una voce del genere nelle impostazioni di Windows Firewall, puoi aggiungerla in questa esatta posizione. 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 scelte come segue:

Rule Type

Lascia la selezione qui a Program.

Program

Inserisci This program path %ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exe o utilizza 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 solo Domain e Private.

Name

Dai alla regola un nome breve e conciso.

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

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.s

Nota: il comando è stato diviso in quattro righe per facilitare la lettura.

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 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, mentre per gli host in modalità pull punta a una cartella inesistente con il nome dell'host utilizzato nel monitoraggio.

In base all'età dell'output dell'agente nella cache, puoi determinare se la trasmissione regolare è andata a buon fine 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 possono essere configurati in modo diverso). Linee come la seguente 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 viene riavviato un host), tutte le altre connessioni verranno rimosse, ad eccezione di quella configurata per la registrazione automatica. Questo riguarda, ad esempio, gli host in cui le connessioni a più siti sono state impostate prima dell'installazione del pacchetto Baked agent o le connessioni sono state aggiunte manualmente dopo l'installazione del pacchetto agent.

Puoi annullare temporaneamente questo comportamento impostando la variabile keep_existing_connections a true nel file C:\ProgramData\checkmk\agent\pre_configured_connections.json dell'host. Puoi ottenere una modifica permanente durante l'aggiornamento dell'agente impostando Keep existing connections a yes nel set di regole di cui sopra.

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 venga visualizzato nel monitoraggio.

6. Sicurezza

6.1. Considerazioni preliminari

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

Per questo motivo la sicurezza è stata enfatizzata nella progettazione di Checkmk ed è stata un principio assoluto fin dai primi giorni di Checkmk:l'agente non legge i dati dalla rete. Questosignifica che è impossibile per un utente malintenzionato iniettare comandi o componenti di script attraverso la porta di monitoraggio 6556.

6.2. Sicurezza del livello di trasporto (TLS)

Per un aggressore, tuttavia, anche un elenco di processi può essere un primo approccio per trarre conclusioni su obiettivi interessanti. Per questo motivo, la crittografia del trasporto tra l'agente e il server Checkmk con Transport Layer Security (TLS) è obbligatoria a partire dalla versione di Checkmk 2.1.0. In questo caso, il server Checkmk "pinga" l'host monitorato, il quale stabilisce la connessione TLS al server Checkmk e trasmette l'output dell'agente su di essa. Poiché solo i server Checkmk con i quali esiste un rapporto di fiducia possono avviare questo trasferimento di dati, non c'è il 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 di rinnovare il certificato in tempo prima della scadenza. Solo gli agenti che sono rimasti inattivi per un periodo di tempo prolungato, cioè senza un Agent Controller funzionante, possono perdere la loro registrazione alla scadenza e devono quindi essere registrati di nuovo. La durata del certificato può essere specificata tramite l'impostazione globale Agent Certificates > Lifetime of certificates.

Nota: poiché nei sistemi Windows molto vecchi non esiste l'Agent Controller e quindi la crittografia del registro e del TLS, dovrai scegliere altri metodi di crittografia se necessario. In questo caso ti consigliamo di utilizzare la crittografia integrata (simmetrica) utilizzando la regola Symmetric encryption (Linux, Windows).

6.3. Limitare l'accesso tramite indirizzi IP

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

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
  only_from: 127.0.0.1/32 192.168.42.0/24

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

Nell'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. Disabilitare la crittografia integrata

Soprattutto durante l'aggiornamento dell'agente, potrebbe essere attiva la crittografia integrata (simmetrica), che viene eseguita dal programma agente stesso. Se la crittografia TLS e la crittografia integrata sono attive allo stesso tempo, l'entropia dei dati trasmessi è talmente alta che la compressione, attiva a partire dalla versione 2.1.0, non salverà i dati trasmessi e appesantirà la CPU dell'host e del server Checkmk con processi aggiuntivi di crittografia e decrittografia.

Per questo motivo, dovresti disattivare la crittografia integrata subito dopo aver switchato a TLS.

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

Nel secondo passo, sull'host dell'agente, nel file di configurazione C:\ProgramData\checkmk\agent\check_mk.user.yml, cambia il valore del parametro encrypted in no:

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
  encrypted: no
  passphrase: D0e5NotMat7erAnym0r3

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

La disattivazione della crittografia con l'Agent Bakedery procede in questo modo: con il primo passo, la modifica della regola Symmetric encryption (Linux, Windows), hai quasi finito. Devi solo preparare 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, cioè la modifica della regola Enforce agent data encryption.

Dopo il prossimo aggiornamento automatico dell'agente, la crittografia del programma agente è disabilitata, ma la crittografia è garantita dall'Agent Controller. Nota che dopo l'aggiornamento automatico dell'agente, solo gli host registrati saranno in grado di fornire dati di monitoraggio.

7. Disabilitare le sezioni

L'output dell'agente Checkmk è suddiviso in sezioni, ognuna delle quali contiene informazioni correlate. Le sezioni iniziano sempre con un header sezioni, ovvero una riga racchiusa tra <<< e >>>.

Ad eccezione delle sezioni proprie di Checkmk, puoi disabilitare individualmente una qualsiasi delle oltre 30 sezioni che l'agente Checkmk genera per impostazione predefinita. In particolare, ciò significa che i comandi corrispondenti non verranno eseguiti dall'agente, risparmiando così tempo di calcolo. Altri motivi per la disabilitazione possono essere il fatto che semplicemente non sei interessato a determinate informazioni provenienti da un certo gruppo di host, oppure che un particolare host sta fornendo valori errati e vuoi sospendere il recupero di quei 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 dall'agent bakery.

List of agent rules for the windows agent.
Nelle edizioni commerciali è possibile disabilitare le sezioni per regola

Nota: l'immagine precedente 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 panoramica chiara, ti consigliamo di utilizzare solo una delle due regole.

Nella regola Disabled sections (Windows agent) troverai una casella di controllo separata per ogni sezione che può essere disabilitata. Per le checkbox selezionate troverai - dopo l'installazione del nuovo agent baked agent 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 appropriato sarà il seguente:

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
    disabled_sections: [uptime, wmi_webservices]

Gli utenti di Checkmk Raw possono creare manualmente una voce nel file di configurazione C:\ProgramData\checkmk\agent\check_mk.user.yml e inserire 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 trovati automaticamente dalla scoperta del servizio. Questo include tutti i monitoraggi importanti del sistema operativo.

Inoltre, esiste la possibilità di estendere l'agente con dei plug-in dell'agente. Si tratta di piccoli script o programmi agenti che vengono richiamati dall'agente e che lo estendono con sezioni aggiuntive con dati di monitoraggio aggiuntivi. Il progetto Checkmk fornisce una serie di plug-in di questo tipo che, se installati e configurati correttamente, forniscono automaticamente nuovi servizi nella scoperta del servizio.

Perché questi plug-in non sono semplicemente codificati nell'agente? Per ognuno dei plug-in c'è una delle seguenti ragioni:

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

  • Il plug-in ha comunque bisogno di una configurazione, senza la quale non potrebbe funzionare (esempio: mk_oracle.ps1).

  • Il plug-in è così speciale che non è necessario per la maggior parte degli utenti (esempio: citrix_licenses.vbs).

8.2. Installazione manuale

I plug-in dell'agente 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 anche disponibili nella pagina di download dell'agente nel menu di configurazione (come descritto nel capitolo Installazione ) nel box Plugins:

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

Per tutti i plug-in dell'agente che forniamo, ci sono plug-in di controllo corrispondenti che possono valutare i loro dati e generare servizi. Questi sono già installati, in modo che i servizi appena trovati vengano immediatamente riconosciuti e possano essere configurati.

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

L'installazione vera e propria è poi semplice: copia il file all'indirizzo 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, che di solito ha lo stesso nome del plug-in. I plug-in complessi (es. mk_oracle.ps1) creano addirittura un'intera serie di nuove sezioni.

8.3. La configurazione

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

  • La documentazione dei plug-in di controllo associati nell'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 appropriato in questo manuale (ad es. sul monitoraggio di Oracle).

Per quanto riguarda i linguaggi speciali (di scripting), potrebbe essere necessario abilitarli prima nella configurazione dell'agent. 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]

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

8.4. Personalizzare l'esecuzione di un plug-in specifico

Ogni plug-in può essere eseguito in diverse modalità. Le seguenti opzioni possono essere inserite nel file di configurazione.

Opzione Valore Descrizione

pattern

'@user\*.ps1'

Imposta l'intervallo delle seguenti opzioni. È possibile utilizzare anche i caratteri jolly. Le opzioni seguenti si riferiscono 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 sotto C:\Program Files (x86)\ o dalla directory dei dati sotto 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 archivia i dati in un file. Se viene eseguito in modo sincrono, l'output viene passato direttamente all'agente.

timeout

60

Imposta il tempo massimo di esecuzione. Dopo questo tempo, il plug-in verrà terminato anche se non è stato prodotto alcun output. Il valore predefinito si basa su quello dell'intervallo di query dell'agente.

cache_age

60

Imposta in secondi il tempo di validità di un output.

retry_count

1

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

description

'Text'

Qui puoi inserire un testo libero da aggiungere ai log.

Una configurazione per il plug-in di Veeam può apparire ad esempio come questa (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

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

8.5. Installazione tramite l'agent bakery

Nelle edizioni commerciali, i plug-in dell'agente possono essere configurati tramite l'Agent bakery, che si occupa sia dell'installazione del plug-in stesso che 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 in the commercial editions.
Elenco delle regole per i plug-in dell'agente nelle edizioni commerciali

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 necessitano di alcune variabili d'ambiente impostate dall'agente per trovare il loro file di configurazione, ad esempio. Se necessario, impostale manualmente se sono necessarie nello script o nel programma.

9. Integrazione dei plug-in di controllo legacy di Nagios

9.1. Esecuzione dei plug-in tramite MRPE

Ci sono due buone ragioni per continuare a usare i plug-in di controllo di 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 auto-scritti in Perl o shell.

Il secondo motivo è il vero monitoraggio end-to-end. Supponiamo di avere un 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 i valori della 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 ). Il nome è volutamente un'analogia con l'NRPE di Nagios, che svolge lo stesso compito.

L'MRPE è integrato nell'agente ed è controllato da vari file di configurazione.

Abilitazione e disabilitazione dell'MRPE

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

C:\ProgramData\checkmk\agent\check_mk.user.yml
mrpe:
  enabled: no

Limitare il tempo di esecuzione

A volte il tempo di esecuzione di uno script o di un plug-in di Nagios è imprevedibile e, nel peggiore dei casi, un plug-in non finisce mai. Per mantenere il controllo, puoi limitare il tempo massimo di esecuzione dei plug-in MRPE. Il valore mostrato qui è anche il valore predefinito in secondi, quindi le modifiche 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

Aggiungere i plug-in MRPE

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

C:\ProgramData\checkmk\agent\check_mk.user.yml
MRPE:
  config:
    - check = MyServiceName 'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat' -w 10 -c 20 MyParameter

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

Elemento Descrizione

MyServiceName

Il nome del servizio come dovrebbe essere visualizzato in Checkmk.

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

Programma da eseguire; virgolette per gli spazi.

-w 10 -c 20

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

MyParameter

Esempio di passaggio di altri parametri.

Dopo aver impostato il plug-in dell'agente, questo sarà attivo direttamente senza riavviare l'agente e verrà aggiunto all'output. Nella scoperta del servizio troverai automaticamente il nuovo servizio:

agent windows service discovery

9.2. MRPE con l'agent bakery

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

10. Monitoraggio dell'hardware

Il monitoraggio dell'hardware degli host Windows è ben coperto dall'agente Checkmk, a condizione che i plug-in e le estensioni disponibili in Checkmk Exchange siano ben coperti. Tuttavia, ci sono situazioni in cui non sono disponibili né plug-in già pronti né interfacce di programmazione per la creazione di plug-in personalizzati, ma un software applicativo o uno strumento di monitoraggio dell'hardware di un produttore di hardware possono fornire dati di monitoraggio tramite SNMP.

In questo caso, imposta SNMP sul tipo di connessione appropriato (SNMP v2 or v3 o SNMP v1) nel box Monitoring agents delle proprietà dell'host in Setup. I servizi che sono disponibili sia tramite SNMP che tramite l'agente Checkmk (es. utilizzo della CPU, file system, schede di rete) vengono recuperati automaticamente dall'agente Checkmk e non tramite SNMP. In questo modo si evitano automaticamente le trasmissioni duplicate.

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

11. La disinstallazione

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 gli amministratori, hai a disposizione 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

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

C:\> wmic product where name="Check MK Agent 2.1" call uninstall /nointeractive

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 disinstallare un'altra versione dell'agente, qui troverai un elenco di tutti i prodotti installati con la seguente chiamata:

C:\> wmic product get name

A volte il processo può richiedere molto tempo e non fornisce messaggi di stato, ma elenchi molto lunghi. Per filtrare puoi estendere il comando a una pipe:

C:\> wmic product get name | findstr Check
Check MK Agent 2.1

Dal momento che le varie routine di Windows rimuovono solo i file che sono arrivati attraverso il processo di installazione, è perfettamente normale che rimangano dei file nelle directory dell'agente, che possono essere eliminati manualmente.

12. File e directory

12.1. Percorsi sull'host monitorato

Percorso Significato

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

Directory di installazione per i file specifici del programma, tra cui il programma agente check_mk_agent.exe e l'Agent Controller cmk-agent-ctl.exe. Non è necessario apportare modifiche in questo caso.
Il programma agente viene fornito come programma a 32 e 64 bit. La routine di installazione seleziona automaticamente il programma corretto per un sistema operativo a 32 o 64 bit. Nella directory Program Files (x86) viene installato l'agente 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 di questo host.

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

Questo file di configurazione viene creato dall'agent bakery e sovrascrive i valori del file di configurazione predefinita, se necessario.

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

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

C:\ProgramData\checkmk\agent\plugins

Directory per i plug-in che devono essere eseguiti automaticamente dall'agente e che ampliano il suo output con dati di monitoraggio aggiuntivi.

C:\ProgramData\checkmk\agent\spool

Contiene i dati creati, ad esempio, dai file di log che hanno una propria sezione. Anche questi vengono aggiunti all'output dell'agente. Per saperne di più, leggi l'articolo La directory di spool.

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

Contiene l'elenco delle connessioni registrate dall'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

Conserva i file di configurazione dell'agente.

C:\ProgramData\checkmk\agent\local

Directory per i check locali personalizzati.

C:\ProgramData\checkmk\agent\mrpe

Le estensioni MRPE possono essere memorizzate qui.

C:\ProgramData\checkmk\agent\backup

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

C:\ProgramData\checkmk\agent\log

Qui si trovano i file di log. Oltre al sito check_mk.log (in tutte le edizioni), che viene costantemente aggiornato durante il funzionamento, qui possono essere presenti altri log derivanti da installazioni o aggiornamenti automatici.

12.2. Percorsi nel server Checkmk

Percorso Significato

~/local/share/check_mk/agents/custom

Directory di base per i file personalizzati da consegnare con un Baked agent.

~/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.

In questa pagina