![]() |
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 utilizzi sistemi operativi Unix, 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. Naturalmente, non è necessario che il programma cron
si occupi di questo: si tratta semplicemente del metodo più comune per automatizzare i processi ricorrenti in modo affidabile in Linux e, analogamente, in 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 posizionato davanti al lavoro vero e proprio e svolge questo compito. Nel processo, mk-job
registra una serie di dati di misurazione e li fornisce a Checkmk. I dati di misurazione più importanti includono quando il lavoro è stato eseguito per 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. In questo modo hai sempre la massima trasparenza e il massimo controllo, anche per i lavori più importanti del tuo host.
2. Impostazione del plug-in
2.1. Impostazione del programma mk-job
Per prima cosa, imposta il piccolo script sull'host monitorato per poterlo utilizzare. Il modo più semplice per farlo è quello di prelevare il programma direttamente dal 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
Se vuoi installare lo script su AIX o Solaris, carica invece mk-job.aix
o mk-job.solaris
. Se il programma wget
non è disponibile, puoi ovviamente scaricare il file in un altro modo, ad esempio copiandolo con scp
.
2.2. Monitoraggio del primo lavoro
Per monitorare il primo lavoro, prendiamo ancora una volta cron
come esempio comune. Supponiamo di avere un cronjob come questo:
5 0 * * * root /usr/local/bin/backup >/dev/null
Questa richiesta di backup viene eseguita ogni giorno alle 12:05 con l'ID utente root
. Per monitorare questo lavoro, usa un editor di cui ti fidi per anteporre al comando nella riga con lo script mk-job
un nome. Il nome verrà poi utilizzato come nome del servizio in Checkmk e deve quindi essere unico su questo nome host:
# 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
Durante l'esecuzione del cronjob appena definito, mk-job
cercherà di memorizzare i risultati della misurazione nella directory /var/lib/check_mk_agent/job/root
. Poiché la directory job
appartiene anche all'utente root
, non è un problema per mk-job
creare la directory dell'utente root
se questa non esiste già.
Ad ogni chiamata, l'agente cercherà le directory sotto /var/lib/check_mk_agent/job/
e le aggiungerà all'output.
Un risultato di questo tipo potrebbe essere il seguente, 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. Aggiunta del servizio a Checkmk
In Checkmk troverai automaticamente il servizio una volta che il lavoro è stato eseguito e i risultati salvati di conseguenza. Quindi, come al solito, vai alla scoperta del servizio e attivalo:

Da un lato, troverai tutti i punti di misurazione mostrati sopra come metriche e in grafici time-series predefiniti; dall'altro, troverai i punti di misurazione anche nel riepilogo e nei dettagli del servizio:

4. Monitorare i lavori degli utenti non privilegiati
Se vuoi monitorare anche i lavori 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
In questo modo mk-job
potrà memorizzare i risultati in questa directory per conto dell'utente.
5. Opzioni diagnostiche
Se la configurazione non funziona, hai a disposizione diverse opzioni per individuare il problema (o i problemi). Fondamentalmente, inizia sempre dal punto di partenza della catena e controlla innanzitutto se hai inserito correttamente lo script "mk-job", come descritto nei primi passi.
Le possibili fonti di errore sono:
mk-job
non può essere trovato dacron
perché è memorizzato in un percorso non riconosciuto dacron
. In questo caso, specifica il percorso completo dimk-job
.Il nome del servizio contiene spazi e non è stato racchiuso tra virgolette (").
Il lavoro viene eseguito da un utente che non ha ancora una propria directory per la memorizzazione dei risultati.
Se i risultati delle misurazioni sono stati registrati e salvati correttamente, controlla sul server Checkmk se i risultati vengono trasmessi correttamente anche dall'agente Checkmk.
Puoi visualizzare l'output dell'agente con il seguente comando e inoltrare l'output al comando less
:
OMD[mysite]:~$ cmk -d myhost | less
Di solito la sezione <<job>>
si trova molto in basso nell'output.
Se i risultati non sono visibili qui, il motivo potrebbe essere che l'agente non ha i permessi necessari per leggere i file corrispondenti. Questo può accadere, ad esempio, se non chiami l'agente con l'utente "root", ma i risultati non possono essere letti 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
In questi casi, devi aggiungere un permesso a tutti gli utenti per leggere i risultati:
root@linux# chmod 664 /var/lib/check_mk_agent/job/myUser/nightly-backup
Oppure crea un gruppo e assegnalo a tutti i file di lavoro. Con il comando seguente modifichi solo l'autorizzazione del gruppo. Il proprietario non viene modificato perché rimane inalterato se non viene inserito nulla prima dei due punti:
root@linux# chown :myJobGroup /var/lib/check_mk_agent/job/myUser/nightly-backup
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 |
---|---|
|
Lo script |
|
La directory abituale in cui vengono archiviati i risultati, ordinati per utente. Nota che il percorso in AIX è diverso: |