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:
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:
5 0 * * * root /usr/local/bin/backup >/dev/nullQuesta 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:
# 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/nullQuando 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 20863. 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:

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:

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:
È 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-jobnon può essere trovato dacronperché è memorizzato in un percorso non riconosciuto dacron. In questo caso, specifica il percorso completo inmk-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:
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:
In questi casi, aggiungi un permesso per tutti gli utenti per leggere i risultati:
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:
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 in cui di solito vengono salvati i risultati, ordinati per utente. Tieni presente che il percorso su AIX è diverso: |
