Checkmk
to checkmk.com

Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduzione

Se usi sistemi operativi di tipo Unix-like, probabilmente conosci già i cosiddetti cronjob. Tuttavia, cron è in realtà un daemon che gestisce i processi ricorrenti in background e si assicura che vengano eseguiti a intervalli predefiniti. Ovviamente, questo non deve essere fatto necessariamente dal programma cron: si tratta semplicemente del metodo più comune per automatizzare in modo affidabile i lavori ricorrenti su Linux, e analogamente su AIX o Solaris.

Alcuni di questi lavori sono essenziali per un funzionamento sicuro, quindi dovrebbero essere inclusi nel monitoraggio dell'host. In Checkmk puoi ottenere questo risultato con lo script mk-job. Questo piccolo script viene inserito prima del lavoro vero e proprio e poi esegue questo compito. Nel processo, mk-job registra una serie di dati di misurazione e li invia a Checkmk. I dati di misurazione più importanti includono quando il lavoro è stato eseguito l'ultima volta e se è stato eseguito con successo.

Lo script mk-job è — come spesso accade in Checkmk — un semplice shell script che puoi controllare in qualsiasi momento. Hai quindi sempre la massima trasparenza e il massimo controllo, anche per i lavori importanti sul tuo host.

2. Configurazione del plug-in

2.1. Configurazione del programma mk-job

Per prima cosa, configura il piccolo script sull'host monitorato per poterlo utilizzare. Il modo più semplice per farlo è scaricare il programma direttamente dal tuo server Checkmk con wget e renderlo eseguibile — nell'esempio seguente per un server Linux:

root@linux# wget -O /usr/local/bin/mk-job https://myserver/mysite/check_mk/agents/mk-job
root@linux# chmod +x /usr/local/bin/mk-job
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se vuoi effettuare l'installazione dello script su AIX o Solaris, carica invece mk-job.aix o mk-job.solaris. Se il programma wget non è disponibile, puoi ovviamente effettuare lo scaricamento del file in un altro modo, ad esempio copiandolo con scp.

2.2. Monitoraggio del primo lavoro

Per il monitoraggio del primo processo, prendiamo ancora una volta cron come esempio comune. Supponiamo che tu abbia un cronjob come questo:

/etc/cron.d/backup
5 0 * * * root /usr/local/bin/backup >/dev/null

Questa richiesta di backup viene eseguita ogni giorno alle 00:05 con l'ID utente root.

Per il monitoraggio di questo processo, usa un editor di cui ti fidi per modificare la riga anteponendo al comando /usr/local/bin/backup >/dev/null il nome dello script mk-job insieme a un nome per il servizio (nell'esempio, nightly-backup). Quest'ultimo nome verrà successivamente utilizzato come nome del servizio in Checkmk e deve quindi essere unico su questo host:

/etc/cron.d/backup
# Syntax:
# <minute> <hour> <day> <month> <day of week> <user> mk-job <service name> <command>
5 0 * * * root mk-job nightly-backup /usr/local/bin/backup >/dev/null

Quando esegui il cronjob appena definito, mk-job proverà a salvare i risultati della misurazione nella directory /var/lib/check_mk_agent/job/root. Dato che la directory job appartiene anche all'utente root, non è un problema per mk-job creare la directory utente root se questa non esiste già.

Ad ogni chiamata, l'agente cercherà nelle directory sotto /var/lib/check_mk_agent/job/ e le aggiungerà all'output.

Un risultato del genere potrebbe apparire come segue, dove per chiarezza viene mostrata solo la parte rilevante dell'output dell'agente:

<<<job>>>
==> nightly-backup <==
start_time 1613509201
exit_code 0
real_time 2:06.03
user_time 0.62
system_time 0.58
reads 200040
writes 35536
max_res_kbytes 28340
avg_mem_kbytes 0
invol_context_switches 1624
vol_context_switches 2086

3. Aggiungere il servizio a Checkmk

In Checkmk troverai automaticamente il servizio una volta che il processo è stato eseguito e i risultati sono stati salvati. Quindi, come al solito, vai alla sezione "Scoperta del servizio" e attiva il servizio:

discover mkjob

Da un lato, troverai tutti i punti di misurazione mostrati sopra come metriche e in grafici della serie temporale predefiniti. Dall'altro lato, troverai i punti di misurazione anche nel riepilogo e nei dettagli del servizio:

service mkjob

4. Monitoraggio dei processi degli utenti senza privilegi

Se vuoi effettuare il monitoraggio dei processi di utenti diversi da root, nella directory job /var/lib/check_mk_agent/job/ crea prima una directory utente e assegna i diritti all'utente appropriato — nell'esempio di comando seguente all'utente myuser:

root@linux# cd /var/lib/check_mk_agent/job/ && mkdir myuser && chown myuser:myuser myuser
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

È proprio questo che permette a mk-job di salvare i risultati in questa directory per conto dell'utente.

5. Opzioni di diagnostica

Se la configurazione non funziona, hai diverse opzioni per individuare il problema o i problemi. In linea di massima, inizia sempre dal punto di partenza della catena e check innanzitutto di aver incluso correttamente lo script 'mk-job', come descritto nei primi passaggi.

Possibili cause di errore sono:

  • mk-job non può essere trovato da cron perché è memorizzato in un percorso non riconosciuto da cron. In questo caso, specifica il percorso completo in mk-job.

  • Il nome del servizio contiene spazi e non è stato racchiuso tra virgolette (").

  • Il job viene eseguito con un utente che non dispone ancora di una propria directory per l'archiviazione dei risultati.

Se i risultati della misurazione sono stati registrati e salvati correttamente, controlla sul server Checkmk se i risultati vengono trasmessi correttamente anche dall'agente.

Puoi visualizzare l'output dell'agente con il seguente comando e inoltrare l'output al comando less:

OMD[mysite]:~$ cmk -d myhost | less
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Di solito la sezione pertinente <<job>> si trova molto in basso nell'output.

In alternativa, puoi aprire l'elenco dei servizi dell'host nel monitoraggio, navigare fino al servizio Check_MK e alla sua colonna Icons. Lì puoi selezionare la voce di menu Download agent output per recuperare un file di testo contenente l'output completo dell'agente.

Se i risultati non sono visibili qui, il motivo potrebbe essere che l'agente non dispone dei permessi necessari per leggere i file corrispondenti. Ciò può verificarsi, ad esempio, se non chiami l'agente con l'utente "root", ma i risultati potrebbero non essere leggibili da altri utenti:

root@linux# ls -l /var/lib/check_mk_agent/job/myUser/
total 5
-rw-rw---- 1 myUser   myUser   186 Jul 21 11:58  nightly-backup
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

In questi casi, aggiungi un permesso per tutti gli utenti per leggere i risultati:

root@linux# chmod 664 /var/lib/check_mk_agent/job/myUser/nightly-backup
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Oppure crea un gruppo e assegna questo gruppo a tutti i file di lavoro. Con il seguente comando modifichi solo l'autorizzazione del gruppo. Il proprietario non viene modificato perché rimane invariato se non viene inserito nulla prima dei due punti:

root@linux# chown :myJobGroup /var/lib/check_mk_agent/job/myUser/nightly-backup
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Assicurati di aver creato il gruppo in precedenza e di aver aggiunto come membro l'utente con cui viene richiamato l'agente.

6. File e directory

Percorso Significato

/usr/local/bin/

Lo script mk-job dovrebbe essere messo in questa directory in modo da poterlo richiamare facilmente.

/var/lib/check_mk_agent/job/

La directory in cui di solito vengono salvati i risultati, ordinati per utente. Tieni presente che il percorso su AIX è diverso: /tmp/check_mk/job/.


Last modified: Wed, 10 Dec 2025 17:07:33 GMT via commit 740c270c7
In questa pagina