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. Perché la linea di comando?

Una volta installato, un Checkmk-System può essere configurato e operato al 100% tramite l'interfaccia web. Ci sono tuttavia situazioni in cui è utile immergersi nelle profondità della riga di comando, ad esempio:

  • quando si cerca l'origine dei problemi

  • quando si automatizza l'amministrazione di Checkmk

  • quando si programmano e si testano le proprie estensioni

  • per comprendere il funzionamento interno di Checkmk

  • se semplicemente ti piace lavorare con la riga di comando!

Questo articolo ti presenterà i comandi, i file e le directory più importanti della linea di comando di Checkmk.

2. L'utente dell'istanza

2.1. Effettuare il login come utente dell'istanza

Quando amministri Checkmk, a parte alcune eccezioni, non devi mai lavorare come utente di root. In questo articolo assumeremo generalmente che tu sia loggato come utente dell'istanza. Questo si fa con, es:

root@linux# su - mysite

È anche possibile effettuare un login SSH diretto a un sito senza passare per root. Poiché l'utente dell'istanza è un utente Linux "completamente normale", devi semplicemente assegnare una password (il che richiede i permessi di root, una sola volta, per la configurazione):

root@linux# passwd mysite
Enter new UNIX password: **********
Retype new UNIX password: **********
passwd: password updated successfully

Successivamente dovrebbe essere possibile effettuare un login SSH direttamente da un altro computer (gli utenti Windows preferiscono utilizzare PuTTY). Da Linux questo login viene effettuato semplicemente dalla linea di comando utilizzando il comando ssh:

user@otherhost> ssh mysite@myserver123
mysite@localhost's password: **********

Al primo login verrà probabilmente ricevuto un "avviso" relativo a una chiave host sconosciuta. Quando sei sicuro che in questo breve momento nessun malintenzionato si sia impossessato dell'indirizzo IP del tuo sistema operativo, puoi semplicemente verificarlo con yes.

Puoi anche lavorare con la linea di comando della Checkmk Appliance. Le modalità di esecuzione sono spiegate in un apposito articolo.

2.2. Profilo e variabili d'ambiente

Affinché si verifichino il minor numero possibile di problemi, in particolare a causa di distribuzioni individuali o configurazioni diverse del sistema operativo, il sistema Checkmk fa in modo che l'utente dell'istanza - e allo stesso modo tutti i processi del monitoraggio - abbiano sempre un ambiente chiaramente definito. Oltre alla directory home e ai permessi, le variabili d'ambiente svolgono un ruolo importante.

Tra le altre cose, quando si effettua il log-in come utente dell'istanza, vengono impostate o modificate le seguenti variabili. Queste variabili sono disponibili per l'utilizzo in tutti i processi in esecuzione all'interno del sito. Questo vale anche per gli script che vengono invocati indirettamente da questi processi (ad esempio, gli script di notifica dell'utente).

OMD_SITE

Il nome del sito (mysite). Negli script personalizzati si dovrebbe sempre utilizzare questa variabile piuttosto che il nome del sito codificato (ad es. con $OMD_SITE nella shell script). In questo modo lo script può essere utilizzato invariato anche in altri siti.

OMD_ROOT

Il percorso della directory del sito (/omd/sites/mysite)

PATH

Le directory in cui verranno cercati i programmi eseguibili. Ad esempio, l'istanza Checkmk conserva qui la directory bin/ del sito. In caso di nomi identici, i programmi Checkmk hanno la priorità: questo è importante, ad esempio, per il comando mail, una versione speciale del quale viene fornita con l'installazione di Checkmk.

LD_LIBRARY_PATH

Directory in cui vengono cercate le librerie binary aggiuntive. Utilizzando questa variabile Checkmk si assicura che le librerie fornite con Checkmk abbiano la priorità rispetto a quelle installate nel normale sistema operativo.

PERL5LIB

Percorso di ricerca del modulo Perl. Anche in questo caso, le varianti del modulo fornite da Checkmk hanno la priorità in caso di dubbio.

LANG

Impostazione della lingua per i comandi da riga di comando. Questa impostazione è adottata dall'installazione di Linux. Questa variabile viene eliminata automaticamente nei processi del sito e l'impostazione ritorna all'inglese predefinito! Questo influisce anche sulle altre impostazioni regionali. La rimozione di LANG è molto importante, poiché alcuni plug-in standard di Nagios, come ad esempio l'impostazione della lingua tedesca, utilizzano una virgola come separatore decimale invece di un punto. In questo modo il tuo output non potrà essere processato in modo accurato.

Con il comando env puoi ottenere l'output di tutte le variabili d'ambiente - aggiungendo | sort a questo comando l'elenco è più chiaro:

OMD[mysite]:~$ env | sort
HOME=/omd/sites/mysite
LANG=de_DE.UTF-8
LD_LIBRARY_PATH=/omd/sites/mysite/local/lib:/omd/sites/mysite/lib
LOGNAME=mysite
MAILRC=/omd/sites/mysite/etc/mail.rc
MAIL=/var/mail/mysite
MANPATH=/omd/sites/mysite/share/man:
MODULEBUILDRC=/omd/sites/mysite/.modulebuildrc
MP_STATE_DIRECTORY=/omd/sites/mysite/var/monitoring-plugins
NAGIOS_PLUGIN_STATE_DIRECTORY=/omd/sites/mysite/var/monitoring-plugins
OMD_ROOT=/omd/sites/mysite
OMD_SITE=mysite
PATH=/omd/sites/mysite/lib/perl5/bin:/omd/sites/mysite/local/bin:/omd/sites/mysite/bin:/omd/sites/mysite/local/lib/perl5/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PERL5LIB=/omd/sites/mysite/local/lib/perl5/lib/perl5:/omd/sites/mysite/lib/perl5/lib/perl5:
PERL_MM_OPT=INSTALL_BASE=/omd/sites/mysite/local/lib/perl5/
PWD=/omd/sites/mysite
REQUESTS_CA_BUNDLE=/omd/sites/mysite/var/ssl/ca-certificates.crt
SHELL=/bin/bash
SHLVL=1
TERM=xterm
USER=mysite
_=/usr/bin/env

In Linux l'ambiente è un attributo di un processo. Ogni processo ha le proprie variabili che trasmette automaticamente ai sottoprocessi, i quali iniziano inizialmente con le stesse variabili ereditate, ma possono anche modificarle.

Con il comando env puoi sempre visualizzare solo l'ambiente della shell corrente. Se sospetti che ci sia un errore nell'ambiente di un particolare processo, con un piccolo trucco puoi comunque produrre un elenco del suo ambiente. A questo scopo ti serve solo l'identificatore del processo (ID), che puoi identificare con, ad es. ps ax, pstree -p o top. Con questo comando puoi accedere al file environ del processo direttamente tramite il file system /proc. Ecco un esempio di comando adatto al PID 13222:

OMD[mysite]:~$ tr \\0 \\n < /proc/13222/environ | sort

Se hai bisogno di variabili personalizzate per i tuoi script o altri software da eseguire nel sito, memorizzale nel file etc/environment che è stato creato appositamente per questo scopo. Tutte le variabili definite qui saranno disponibili ovunque nel sito:

etc/environment
# Custom environment variables
#
# Here you can set environment variables. These will
# be set in interactive mode when logging in as site
# user and also when starting the OMD processes with
# omd start.
#
# This file has shell syntax, but without 'export'.
# Better use quotes if your values contain spaces.
#
# Example:
#
# FOO="bar"
# FOO2="With some spaces"
#
MY_SUPER_VAR=blabla123
MY_OTHER_VAR=10.88.112.17

2.3. Personalizzare la shell

Se desideri personalizzare la tua shell (Prompt o altro), puoi farlo come al solito nel file .bashrc. Le variabili d'ambiente appartengono comunque aetc/environment, quindi sono sicuramente disponibili per tutti i processi.

Inoltre, nulla ti impedisce di avere un tuo file .vimrc se ti piace lavorare con VIM.

3. La struttura delle directory

3.1. La separazione tra software e dati

Il grafico seguente mostra le directory più importanti di un'installazione di Checkmk con un sito chiamato mysite e un <version> chiamato ad esempio 2.0.0p8.cee:

Illustration of the directory structure of a Checkmk site.

La base di questa struttura è costituita dalla directory /omd. Senza eccezioni, tutti i file di Checkmk si trovano qui./omd è in realtà un link simbolico a /opt/omd, mentre i dati fisiciveri e propri si trovano in /opt - ma tutti i percorsi dei dati in Checkmk utilizzano sempre /omd.

È importante la separazione tra dati (evidenziati in giallo) e software (in blu): i dati del sito si trovano in /omd/sites e il software installato in /omd/versions.

3.2. Directory del sito

Come ogni utente dell'istanza Linux, anche l'utente del sito ha una directory home, a cui ci riferiamo come directory del sito. Se il tuo sito si chiamamysite, si troverà in /omd/sites/mysite. Come di consueto in Linux, la shell abbrevia la propria directory home con una tilde (~) (o trattino mobile). Poiché subito dopo il login ti troverai in questa directory, la tilde appare automaticamente nel prompt di input:

OMD[mysite]:~$

Le sottodirectory della directory del sito sono indicate rispetto alla tilde:

OMD[mysite]:~$ cd var/log
OMD[mysite]:~/var/log$

All'interno della directory del sito sono presenti diverse sottodirectory, che possono essere elencate con ll:

OMD[mysite]:~$ ll
total 16
lrwxrwxrwx  1 mysite mysite   11 Jan 24 11:56 bin -> version/bin/
drwxr-xr-x 19 mysite mysite 4096 Jan 24 11:56 etc/
lrwxrwxrwx  1 mysite mysite   15 Jan 24 11:56 include -> version/include/
lrwxrwxrwx  1 mysite mysite   11 Jan 24 11:56 lib -> version/lib/
drwxr-xr-x  5 mysite mysite 4096 Jan 24 11:56 local/
lrwxrwxrwx  1 mysite mysite   13 Jan 24 11:56 share -> version/share/
drwxr-xr-x  2 mysite mysite 4096 Jan 24 09:57 tmp/
drwxr-xr-x 12 mysite mysite 4096 Jan 24 11:56 var/
lrwxrwxrwx  1 mysite mysite   29 Jan 24 11:56 version -> ../../versions/2.0.0p8.cee/

Come si può notare, le directory bin, include, lib,share e version sono collegamenti simbolici, mentre le altre sono directory "normali". Questo rispecchia la separazione tra software e dati spiegata in precedenza. La directory software deve essere accessibile come sottodirectory nel sito, ma si trova fisicamente in /omd/versions e può essere utilizzata anche da altri siti.

Software Dati

Directory

bin, include, lib, share

etc, local, tmp, var

Proprietario

root

Utente dell'istanza (mysite)

Creato da

Installazione di Checkmk

Creazione, configurazione e monitoraggio del sito

Posizione fisica

/omd/versions/2.0.0p8.cee/

/omd/sites/mysite/

Tipo di file

Collegamenti simbolici

Directory normali

3.3. Software

Le directory software, come di consueto in Linux, appartengono a roote quindi non possono essere modificate dall'utente dell'istanza. Sono presenti le seguenti sottodirectory: quelle dell'esempio si trovano fisicamente all'interno di/omd/versions/2.0.0p8.cee e sono accessibili tramite link simbolici dalla directory del sito:

bin/

Directory per i programmi eseguibili. Qui si trova il comando cmk, ad esempio.

lib/

Directory C, plug-in per Apache e Python - e nella sottodirectory nagios/plugins - plug-in di monitoraggio standard, che sono per lo più scritti in C o Perl.

share/

La parte principale del software installato. In share/check_mk si trovano moltissimi componenti, tra cui oltre 2.000 plug-in di controllo.

include/

Contiene i file di inclusione per i programmi C, che devono essere collegati alle librerie presenti in lib/. Questa directory non è importante e viene utilizzata solo se desideri tradurre i programmi C da solo.

Il link simbolico version/ è una "tappa intermedia" e serve come punto di collegamento per la versione utilizzata dal sito. Durante un aggiornamento del software verrà switchato dalla vecchia alla nuova versione. Tuttavia, ti invitiamo a non tentare di eseguire un aggiornamento manualmente modificando il link, poiché l'aggiornamento richiede una serie di altri passaggi che non andranno a buon fine.

3.4. I dati

I dati effettivi di un sito si trovano nelle altre sottodirectory della directory del sito. Senza eccezioni, queste appartengono all'utente dell'istanza. Anche la directory del sito è inclusa. Checkmk non memorizza nulla oltre alle directory elencate. Puoi creare senza problemi i tuoi file e le tue directory in cui conservare i test, i dati scaricati, le copie dei file di log e così via.

Le seguenti directory sono state predefinite:

etc/

File di configurazione. Questi possono essere modificati a mano o utilizzando il Setup di Checkmk.

Nota: gli script presenti in etc/init.d sono in realtà dei file di "configurazione", poiché si trovano in etc/. Si basano sullo stesso schema che si trova in tutti i sistemi Linux sotto /etc/init.d/. Tuttavia, ti consigliamo di non modificare questo script, poiché potrebbe causare conflitti durante un aggiornamento del software. Non è necessario modificare gli script.

var/

Dati nel tempo di esecuzione. Tutti i dati generati dal monitoraggio saranno archiviati qui. A seconda del numero di host e servizi, si può accumulare un'immensa mole di dati, di cui la maggior parte sono i dati sulle prestazioni registrati negli RRD.

tmp/

Dati volatili. Checkmk e altri componenti archiviano qui i dati temporanei (che non devono essere conservati). Per questo motivo, qui viene montato un tmpfs. Si tratta di un file system che gestisce i dati nella RAM, generando così zero Disk-IO. Il riavvio del computer comporta la perdita di tutti i dati contenuti in tmp/! L'arresto e l'avvio del sito non cancellano i dati. Dati come socket, pipe e file PID si trovano in tmp/run: sono necessari per la comunicazione e la gestione dei processi del server. Non utilizzare tmp/ per archiviare i tuoi dati, poiché questa directory è montata sulla RAM dove lo spazio è piuttosto limitato. Archivia i tuoi dati direttamente nella directory del sito o in una sottodirectory all'interno di essa.

local/

Estensioni proprie. Una gerarchia "ombra" delle directory software bin/, lib/ e share/ si trova in local/. Queste sono destinate alle tue modifiche o estensioni del software. Anche in questo caso: Non memorizzare in nessun caso file di prova, file di log, copie di sicurezza o qualsiasi altra cosa che non vi appartenga, in local/. Checkmk potrebbe tentare di eseguire questi file come parte del software. Allo stesso modo, in un monitoraggio distribuito i dati saranno duplicati in tutti i siti remoti.

3.5. Modificare ed estendere Checkmk - i file locali

Come mostrato nella tabella precedente, la directory local con le sue numerose sottodirectory è destinata alle tue estensioni. In un nuovo sito, tutte le directory di local/ sono inizialmente vuote.

Con il pratico comando tree puoi ottenere rapidamente una panoramica della struttura di local. L'opzione -L 3 limita la profondità a 3:

OMD[mysite]:~$ tree -L 3 local
local
├── bin
├── lib
│   ├── apache
│   ├── check_mk -> python3/cmk
│   ├── nagios
│   │   └── plugins
│   ├── python
│   └── python3
│       └── cmk
└── share
    ├── check_mk
    │   ├── agents
    │   ├── alert_handlers
    │   ├── checkman
    │   ├── checks
    │   ├── inventory
    │   ├── locale
    │   ├── mibs
    │   ├── notifications
    │   ├── pnp-rraconf
    │   ├── pnp-templates
    │   ├── reporting
    │   └── web
    ├── diskspace
    ├── doc
    │   └── check_mk
    ├── nagios
    │   └── htdocs
    ├── nagvis
    │   └── htdocs
    └── snmp
        └── mibs

Tutte le directory del livello più basso sono integrate attivamente nel software. Un file memorizzato qui sarà trattato come se si trovasse nella directory con lo stesso nome all'interno di /omd/versions/…​ (o rispettivamente nel percorso logico dal sito sotto bin, lib o share).

Esempio: Nel sito, i programmi eseguibili verranno cercati in bine in local/bin.

In questo caso vale il principio che, in caso di nomi identici, il file in localha sempre la priorità. Questo permette di modificare il software senza dover cambiare i file di installazione in /omd/versions/. La procedura è semplice:

  1. Copia il file desiderato nella directory appropriata in local.

  2. Modificare questo file.

  3. Riavvia il servizio appropriato in modo che la modifica abbia effetto.

Per quanto riguarda il punto 3, se non si sa esattamente a quale servizio si applica la modifica, è sufficiente riavviare l'intero sito con omd restart.

3.6. File di log

In Checkmk - come già descritto - i file di log sono archiviati nelladirectory var/. Tutti i file di log dei componenti rilevanti si trovano lì:

OMD[mysite]:~$ ll -R var/log/
var/log/:
total 48
-rw-r--r-- 1 mysite mysite  759 Sep 21 16:54 alerts.log
drwxr-xr-x 2 mysite mysite 4096 Sep 21 16:52 apache/
-rw-r--r-- 1 mysite mysite 8603 Sep 21 16:54 cmc.log
-rw-r--r-- 1 mysite mysite 3175 Sep 21 11:38 dcd.log
-rw-rw---- 1 mysite mysite    0 Oct 27 11:05 diskspace.log
-rw-r--r-- 1 mysite mysite  313 Sep 21 16:54 liveproxyd.log
-rw-r--r-- 1 mysite mysite   62 Sep 21 16:54 liveproxyd.state
drwxr-xr-x 2 mysite mysite 4096 Sep 20 13:44 mkeventd/
-rw-r--r-- 1 mysite mysite  676 Sep 21 16:54 mkeventd.log
-rw-r--r-- 1 mysite mysite  310 Sep 21 16:54 mknotifyd.log
-rw-r--r-- 1 mysite mysite  327 Sep 21 16:54 notify.log
-rw-r--r-- 1 mysite mysite  458 Sep 21 16:54 rrdcached.log
-rw-r--r-- 1 mysite mysite    0 Sep 21 16:52 web.log

var/log/apache:
total 32
-rw-r--r-- 1 mysite mysite 26116 Sep 21 16:54 access_log
-rw-r--r-- 1 mysite mysite   841 Sep 21 16:54 error_log
-rw-r--r-- 1 mysite mysite     0 Sep 22 10:21 stats

var/log/mkeventd:
total 0

Nell'interfaccia web puoi facilmente configurare la misura in cui i dati devono essere scritti nei file di log cercando in Setup > General > Global settings tutte le voci con logging:

List of global settings for logging.

In alternativa, è possibile personalizzare i livelli di log anche da linea di comando in file di configurazione. I file si chiamano global.mk, ma si trovano in directory diverse. Specifica le voci se non sono già presenti, nel caso in cui un Factory setting non sia ancora stato modificato.

~/etc/check_mk/conf.d/wato/global.mk
notification_logging = 15
alert_logging = 10
cmc_log_levels = {
 'cmk.alert'        : 5,
 'cmk.carbon'       : 5,
 'cmk.core'         : 5,
 'cmk.downtime'     : 5,
 'cmk.helper'       : 5,
 'cmk.livestatus'   : 5,
 'cmk.notification' : 5,
 'cmk.rrd'          : 5,
 'cmk.smartping'    : 5,
}
cmc_log_rrdcreation = None

In questo file vengono impostate le voci Monitoring Core, Notifications e Alert Handlers:

  • Per notification_logging puoi scegliere tra i valori 10 per Full dump of all variables and command, 15 per Normal logging e 20 per Minimal logging.

  • La voce alert_logging può essere impostata a 10 per Full dump of all variables o a 20 per Normal logging.

  • Per cmc_log_levels la quantità di dati logati aumenta con l'aumentare del numero. Qui ci sono otto gradazioni (da 0 a 7) che vanno da 0 per Emergency a 7 per Debug.

  • Con i tre valori None, 'terse' e 'full' per cmc_log_rrdcreation puoi decidere se la creazione di RRD deve essere registrata e come.

~/etc/check_mk/multisite.d/wato/global.mk
log_levels = {
 'cmk.web'                : 50,
 'cmk.web.auth'           : 10,
 'cmk.web.automations'    : 15,
 'cmk.web.background-job' : 10,
 'cmk.web.bi.compilation' : 20,
 'cmk.web.ldap'           : 30,
}

In questo file di log puoi impostare il log di User Interface.

Il livello di log più basso è 50 (Critical) mentre la maggior parte dei dati verrà registrata a 10, che corrisponde al livello più alto (Debug).

~/etc/check_mk/liveproxyd.d/wato/global.mk
liveproxyd_log_levels = {'cmk.liveproxyd': 20}

Questo file viene utilizzato per Livestatus Proxy logging. I valori possibili qui corrispondono a quelli per il log User Interface.

Importante: I file di log possono diventare rapidamente molto grandi se è stato impostato un livello elevato. In genere è consigliabile utilizzare queste impostazioni per una personalizzazione "temporanea", ad esempio come aiuto nell'identificazione dei problemi.

4. Il comando cmk

Oltre al comandoomd , che serve per l'avvio e l'arresto dei siti, per la configurazione di base dei componenti e per l'avvio di unaggiornamento del software, cmk è il comando più importante. Con questo comando è possibile creare la configurazione di un nucleo di monitoraggio, eseguire manualmente i controlli, effettuare la scoperta del servizio e molto altro ancora.

4.1. Le opzioni del comando

Il comando cmk è in realtà un'abbreviazione di check_mk, introdotta per rendere più veloce la digitazione del comando. Il comando include una guida in linea integrata e molto dettagliata, che può essere richiamata con l'opzione --help:

OMD[mysite]:~$ cmk -h
WAYS TO CALL:
 cmk  --automation [COMMAND...]          Internal helper to invoke Check_MK actions
 cmk  --backup BACKUPFILE.tar.gz         make backup of configuration and data
 cmk  --cap [pack|unpack|list FILE.cap]  Pack/unpack agent packages (Enterprise only)
 cmk  --check [HOST [IPADDRESS]]         Check all services on the given HOST
...

Come puoi vedere nel comando qui sopra, abbiamo richiamato l'aiuto con l'opzione -h invece di --help. Perché ciò che è vero per il comando stesso è vero anche per le sue opzioni: Non per tutte le opzioni, ma per quelle che sono spesso necessarie, esiste una forma breve oltre a quella lunga. Anche se la forma lunga è più intuitiva, soprattutto per i principianti (check_mk --list-hosts) rispetto a quella breve (cmk -l), nella Guida per principianti utilizzeremo quella breve. In caso di dubbio, puoi sempre consultare la guida del comando. In ogni caso, è consigliabile dare un'occhiata alla guida del comando, poiché non presenteremo tutte le opzioni nella guida dell'utente.

Inserendo un'opzione, avvii il comando cmk in una determinata modalità. Di seguito trovi una panoramica delle opzioni che presenteremo in questo capitolo, ma anche in altre parti del manuale:

Opzione Funzione

Nucleo di monitoraggio

cmk -R

Riavvio del core

cmk -O

Caricamento di una nuova configurazione nel core

cmk -U

Creazione di una nuova configurazione per il core

cmk -N

Emissione della configurazione Nagios del core

Controlli

cmk myserver123

Esecuzione dei controlli sull'host myserver123

Servizi

cmk -I myserver123

Esecuzione di una scoperta del servizio

cmk --check-discovery myserver123

Esegue il discovery check sull'host, che verifica la presenza di servizi nuovi e scomparsi e di nuove etichette dell'host. Quando si verifica una modifica, l'host viene "marcato" creando un file con il nome host in var/check_mk/autodiscovery- ma solo se l'aggiornamento automatico della configurazione del servizio è abilitato in Checkmk (nel set di regole Periodic service discovery ).

Agenti

cmk -d myserver123

Recupero dell'output degli agenti

cmk -A myserver123

Baked agents

Diagnostica

cmk -l

Elenco degli host

cmk --list-tag mytag

Elenco degli host con il tag host

cmk -D myserver123

Visualizzazione della configurazione degli host

Informazioni

cmk -V

Visualizza la versione di Checkmk installata nel sito.

cmk -L

Elenco dei plug-in di controllo

cmk -m

Accesso al catalogo dei plug-in di controllo

cmk -M df

Mostra la pagina di manuale di un plug-in di controllo (qui del plug-in df)

Temi speciali

cmk --update-dns-cache

Cancella la cache DNS e la ricrea. Per maggiori dettagli sulla cache DNS, consulta l'articolo sugli host. Per impostazione predefinita, questo comando viene eseguito in un'istanza Checkmk una volta al giorno tramite cronjob.

cmk --cleanup-piggyback

Cancella tutti i dati piggyback obsoleti nella directory tmp/check_mk/piggyback/. Per impostazione predefinita, questo comando viene eseguito in un'istanza Checkmk una volta al giorno tramite cronjob.

cmk -P

Gestire gli MKP

cmk --convert-rrds

Conversione degli RRD

cmk --snmpwalk myswitch

Prelevare un walk SNMP dall'host myswitch

cmk --snmptranslate

Traduzione di un walk SNMP

cmk --create-diagnostics-dump

Creazione di dump di supporto e diagnostica

In alcune modalità sono disponibili ulteriori opzioni specifiche, ad esempio puoi limitare la scoperta del servizio a determinati controlli, ad es. al controllo df con il comando cmk -I --detect-plugins=df myserver123.

Alcune opzioni funzionano sempre, indipendentemente dalla modalità di esecuzione del comando:

Opzione Funzione

cmk -v

Chiede a cmk di produrre un dump dettagliato della sua attività corrente ("verbose")

cmk -vv

Come il precedente, con ancora più dettagli: 'molto verboso'

cmk --cache

Le informazioni vengono lette dai file di cache, anche se non sono aggiornati. L'agente viene contattato solo se non esiste un file cache. I dati dell'agente nella cache dell'host si trovano sotto tmp/check_mk/cache.

cmk --no-tcp

Funziona come --cache, ma si interrompe se un file di cache è assente o non è aggiornato. In questo modo, in qualsiasi situazione, è possibile impedire l'accesso all'agente.

cmk --no-cache

Le informazioni sono sempre aggiornate, cioè non vengono utilizzati file di cache.

cmk --usewalk

Per gli host SNMP: invece di accedere all'agente SNMP, utilizza una passeggiata SNMP memorizzata, che è stata precedentemente estratta con cmk --snmpwalk myserver123. Questi percorsi sono memorizzati in var/check_mk/snmpwalks.

cmk --debug

Se si verifica un errore, questa opzione fa sì che non venga più intercettato, ma che venga visualizzata per intero l'eccezione originale di Python. Questa può essere un'informazione importante per lo sviluppatore, in quanto mostra l'esatta posizione del programma in cui si trova l'errore. Sarà anche molto utile per individuare gli errori nei plug-in di controllo scritti in proprio. Se durante l'invocazione di cmk si verifica un errore che deve essere segnalato all'assistenza o al feedback, ripeti la richiesta aggiungendo l'opzione --debug e allega la traccia Python alla tua e-mail.

Nella sezione seguente mostreremo come possono essere utilizzati i comandi. Gli esempi sono mostrati per lo più in forma abbreviata.

4.2. Comandi per il nucleo di monitoraggio

Le edizioni commerciali utilizzano Checkmk Micro Core (CMC) come nucleo di monitoraggio, mentre Checkmk Raw utilizza Nagios. Un compito importante di cmk è la generazione di un file di configurazione leggibile per il nucleo e contenente tutti gli host, i servizi, i contatti, i gruppi di contatti, i periodi di tempo, ecc. configurati. Sulla base di queste informazioni, il core sa quali controlli devono essere eseguiti e quali oggetti deve fornire utilizzando il Livestatus della GUI.

Sia per Nagios che per il CMC, è fondamentale che il numero di host, servizi e altri oggetti rimanga sempre statico durante l'operazione e che questo numero possa essere modificato solo attraverso la generazione di una nuova configurazione, seguita da un ricaricamento del core. Con Nagios è necessario anche un riavvio del core. Il CMC ha una funzione molto efficiente per ricaricare la configurazione durante il processo attivo.

La tabella seguente evidenzia le differenze più importanti tra le configurazioni dei due core:

Nagios CMC

File di configurazione

etc/nagios/conf.d/check_mk_objects.cfg

var/check_mk/core/config

Tipo di file

File di testo con comandi define

File binario compresso e ottimizzato

Attivazione

Riavvio del core

Comando core per ricaricare la configurazione

Comando

cmk -R

cmk -O

La rigenerazione della configurazione è sempre necessaria se il contenuto del file di configurazione in etc/check_mk/conf.d o i servizi rilevati automaticamente in var/check_mk/autochecks sono stati modificati. Il Setup tiene traccia di tali modifiche e le evidenzia nella GUI per attivare le modifiche. Nel caso in cui dovessi "aggirare il Setup" modificando la configurazione manualmente o con uno script, dovrai occuparti anche dell'attivazione manualmente. I seguenti comandi svolgono questa funzione:

Opzione Funzione

cmk -R

Genera una nuova configurazione per il core e lo riavvia (analogamente a omd restart core). Questo è il metodo previsto per Nagios.

cmk -O

Genera la configurazione del core e la carica senza riavviare il processo attivo (analogo a omd reload core). Questa è la variante consigliata con il CMC.

Attenzione: Con Nagios come core questa opzione funziona ancora, ma può portare a buchi di memoria e altre instabilità. Inoltre, questa opzione non esegue in ogni caso un vero e proprio ricaricamento, ma arresta e riavvia internamente il processo, per così dire.

cmk -U

Genera la configurazione del core senza attivarlo.

cmk -N

A scopo diagnostico, questa opzione genera la configurazione sullo standard output, senza alterare il file di configurazione attuale. Qui puoi inserire semplicemente il nome di un host per visualizzarne la configurazione (es. cmk -N myserver123).

Per riassumere: Se vuoi personalizzare la configurazione di Checkmk e attivare le modifiche, in Nagios dovrai successivamente richiedere:

OMD[mysite]:~$ cmk -R

E con la CMC:

OMD[mysite]:~$ cmk -O

4.3. Esecuzione dei controlli

Una seconda modalità di Checkmk riguarda l'esecuzione dei controlli basati su Checkmk di un host. Con questa modalità puoi permettere a tutti i servizi rilevati automaticamente e configurati manualmente di essere controllati immediatamente, senza doverti preoccupare del nucleo di monitoraggio o della GUI.

Per farlo, inserisci cmk --check seguito dal nome di un host configurato nel monitoraggio. Dato che l'opzione --check è l'opzione predefinita di cmk, puoi anche ometterla. Inoltre, dovresti sempre aggiungere le due opzioni -n (non inviare i risultati al core) e -v (inviare tutti i risultati). Per saperne di più, leggi la descrizione delle opzioni qui sotto.

OMD[mysite]:~$ cmk -nv myserver123
Checkmk version 2.0.0p8
CPU load             15 min load 0.22 at 8 Cores (0.03 per Core)
CPU utilization      Total CPU: 8.20%
Disk IO SUMMARY      Read: 14.0 kB/s, Write: 316 kB/s, Latency: 442 microseconds
Filesystem /         82.0% used (177.01 of 215.81 GB), (warn/crit at 80.00/90.00%),
Interface 2          [wlo1], (up), MAC: 5C:80:B6:3E:38:7F, Speed: unknown, In: 1.02 kB/s, Out: 902 B/s
Kernel Performance   Process Creations: 67.82/s, Context Switches: 4183.41/s, Major Page Faults: 1.71/s, Page Swap in: 0.00/s, Page Swap Out: 0.00/s
Memory               Total virtual memory: 37.07% - 6.08 GB of 16.41 GB
Mount options of /   Mount options exactly as expected
NTP Time             sys.peer - stratum 2, offset 16.62 ms, jitter 5.19 ms, last reac
Number of threads    Count: 1501 threads, Usage: 1.19%
TCP Connections      Established: 11
Temperature Zone 0   25.0 °C
Uptime               Up since Jul 29 2021 08:38:32, Uptime: 4 hours 43 minutes
[agent] Version: 2.0.0b5, OS: linux, execution time 0.9 sec | execution_time=0.850 user_time=0.050 system_time=0.010 children_user_time=0.000 children_system_time=0.000 cmk_time_agent=0.800

Altri suggerimenti:

  • Non utilizzare questo comando negli host di produzione monitorati che utilizzano il monitoraggio dei file di log. I messaggi di log vengono inviati una sola volta dagli agenti di monitoraggio e può succedere che un cmk -nv manuale li "catturi" e che quindi vengano persi dal monitoraggio. In questo caso, utilizza l'opzione --no-tcp.

  • Se si utilizza Nagios per il core e si omette l'opzione -n, l'effetto sarà un'attualizzazione immediata dei risultati del controllo nel core e nella GUI.

  • Questo comando è utile quando si sviluppano plug-in di controllo personalizzati, perché consente di effettuare un test più rapido rispetto all'utilizzo della GUI. Se il controllo fallisce e restituisce uno SCONOSCIUTO, l'opzione --debug può aiutare a trovare la posizione del problema nel codice.

Le seguenti opzioni influenzano il comando:

Opzione Funzione

-v

Output dei risultati del controllo: Senza questa opzione vedrai solo l'output del servizio Check_MK e non i risultati degli altri servizi.

-n

Esecuzione a secco: I risultati non vengono passati al core e il contatore delle prestazioni non viene aggiornato.

--detect-plugins=df,uptime

Limita l'esecuzione ai plug-in di controllo df e uptime. Nel caso degli host SNMP, verranno recuperati solo i dati necessari. Questa opzione è pratica se sviluppi i tuoi plug-in di controllo e vuoi testare solo questi.

4.4. Recupero dell'output dell'agente

Il comando cmk -d recupera e visualizza l'output dell'agente Checkmk di un host. Con cmk -d i dati dell'agente vengono recuperati allo stesso modo del monitoraggio. Non vengono né convalidati né processati. Pertanto i dati mostrati corrispondono esattamente a quelli che vengono trasmessi all'Agent Controller (quando è abilitata la crittografia TLS) o a un programma di tunneling nel caso in cui siano configurati programmi datasource.

OMD[mysite]:~$ cmk -d myserver123
<<<check_mk>>>
Version: 2.1.0b5
AgentOS: linux
Hostname: myserver123
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/lib/check_mk_agent/plugins
LocalDirectory: /usr/lib/check_mk_agent/local
OnlyFrom:
<<<df>>>
udev              devtmpfs     8155492         4   8155488       1% /dev
tmpfs             tmpfs        1634036      1208   1632828       1% /run
/dev/sda5         ext4       226298268 175047160  39732696      82% /
none              tmpfs              4         0         4       0% /sys/fs/cgroup

Puoi anche eseguire cmk -d utilizzando il nome o l'indirizzo IP di un host non configurato nel monitoraggio. In questo caso verranno assunte le impostazioni tradizionali dell'host (connessione TCP alla porta 6556, nessun Agent Controller, nessuna crittografia, nessun programma datasource).

4.5. Baked agents

Nelle edizioni commerciali puoi anche creare gli agenti dalla linea di comando, come faresti altrimenti tramite l'interfaccia web. Questo ti dà la possibilità, ad esempio, di aggiornare regolarmente gli agenti, ad esempio tramite un cronjob.

Per creare gli agenti, usa l'opzione -A seguita dal nome di un host (o di più host):

OMD[mysite]:~$ cmk -Av myserver123
myserver123...linux_deb:baking...linux_rpm:baking...(fast repackage)...solaris_pkg:baking...windows_msi:baking...linux_tgz:baking...(fast repackage)...solaris_tgz:baking...(fast repackage)...aix_tgz:baking...OK

L'output mostra che i pacchetti di agenti disponibili per l'host myserver123 sono stati preparati con successo. Se non specifichi un host, i pacchetti verranno creati per tutti gli host.

Il comando esegue il bake solo quando è necessario. Se i pacchetti sono ancora aggiornati, l'output sarà simile a questo:

OMD[mysite]:~$ cmk -Av myserver123
myserver123..linux_deb:uptodate...linux_rpm:uptodate...solaris_pkg:uptodate...windows_msi:uptodate...linux_tgz:uptodate...solaris_tgz:uptodate...aix_tgz:uptodate...OK

Puoi comunque forzare la cottura con l'opzione -f (force).

4.6. Elenco degli host

Il comando cmk -l elenca semplicemente i nomi di tutti gli host configurati nel Setup:

OMD[mysite]:~$ cmk -l
myserver123
myserver124
myserver125

Poiché i dati vengono forniti "nudi" e "non elaborati", è facile utilizzarli negli script: ad esempio è possibile costruire un ciclo su tutti i nomi host:

OMD[mysite]:~$ for host in $(cmk -l) ; do echo "Host: $host" ; done
Host: myserver123
Host: myserver124
Host: myserver125

Se al posto di echo inserisci un comando che esegua qualcosa di significativo, questo può essere davvero utile.

Anche l'invocazione cmk --list-tag fornisce i nomi host, ma offre anche la possibilità di filtrare in base ai tag degli host. Basta inserire un tag host e riceverai tutti gli host che hanno questo tag. L'esempio seguente elenca tutti gli host monitorati da SNMP:

OMD[mysite]:~$ cmk --list-tag snmp
myswitch01
myswitch02
myswitch03

Se inserisci più tag, questi verranno collegati con "e". Il comando seguente fornisce tutti gli host monitorati sia dagli agenti SNMP che da Checkmk. Poiché nessun host soddisfa questa condizione, l'output rimane vuoto:

OMD[mysite]:~$ cmk --list-tag snmp tcp

4.7. Visualizzazione della configurazione degli host

Per uno o più host specificati, cmk -D mostra i servizi configurati, le etichette dell'host, le etichette e altri attributi. Dato che l'elenco dei servizi è così ampio, il terminale può creare un po' di confusione. Invia l'output attraverso less -S per evitare un'interruzione:

OMD[mysite]:~$ cmk -D myserver123 | less -S
myserver123
Addresses:              192.168.178.34
Tags:                   [address_family:ip-v4-only], [agent:cmk-agent], [criticality:prod], [ip-v4:ip-v4], [networking:lan], [piggyback:auto-piggyback], [site:mysite], [tcp:tcp]
Labels:                 [cmk/check_mk_server:yes], [cmk/os_family:linux]
Host groups:            mylinuxservers
Contact groups:         all
Agent mode:             Normal Checkmk agent, or special agent if configured
Type of agent:
  TCP: 192.168.178.34:6556
  Process piggyback data from /omd/sites/mysite/tmp/check_mk/piggyback/mycmkserver
Services:
Type of agent:          TCP (port: 6556)
Is aggregated:          no
Services:
  checktype        item              params
  ---------------- ----------------- ------------
  cpu.loads        None              (5.0, 10.0)
  kernel.util      None              {}

4.8. Informazioni sui plug-in di controllo

Checkmk fornisce di serie un gran numero di plug-in pronti all'uso. In ogni versione ne vengono aggiunti alcuni nuovi e la versione 2.0.0 include già circa 2.000 plug-in. Tre opzioni del comando cmk ti permettono di accedere alle informazioni su questi plug-in.

cmk -L produce una tabella di tutti i plug-in con il loro nome, il tipo e una descrizione. Allo stesso tempo, vengono elencati anche i plug-in scritti in proprio memorizzati in local/.

I tipi possibili sono i seguenti:

agent

Valuta i dati di un agente Checkmk. Questo viene (normalmente) recuperato tramite la porta TCP 6556.

snmp

Serve al monitoraggio dei dispositivi tramite SNMP.

active

Richiama un tipo standard di plug-in compatibile con Nagios per il monitoraggio. In questo caso Checkmk adotta solo la configurazione.

Naturalmente l'elenco può essere filtrato semplicemente con grep se si cerca qualcosa di specifico:

OMD[mysite]:~$ cmk -L | grep f5
f5_bigip_apm                      snmp  F5 Big-IP: Number of Current SSL/VPN Connections
f5_bigip_chassis_temp             snmp  F5 Big-IP: Chassis Temperature
f5_bigip_cluster                  snmp  F5 Big-IP: Cluster State, Up to Firmware Version 10
f5_bigip_cluster_status           snmp  F5 Big-IP: Active/Active or Passive/Active Cluster Status (< V11.2)
f5_bigip_cluster_status_v11_2     snmp  F5 Big-IP: Active/Active or Passive/Active Cluster Status (> V11.2)
f5_bigip_cluster_v11              snmp  F5 Big-IP: Cluster State for Firmware Version >= 11
f5_bigip_conns                    snmp  F5 Big-IP: Number of Current Connections
f5_bigip_cpu_temp                 snmp  F5 Big-IP: CPU Temperature
f5_bigip_fans                     snmp  F5 Big-IP: System Fans
f5_bigip_interfaces               snmp  F5 Big-IP: Special Network Interfaces
f5_bigip_mem                      snmp  F5 Big-IP: Usage of Memory
f5_bigip_mem_tmm                  snmp  F5 Big-IP: Usage of TMM Memory
f5_bigip_pool                     snmp  F5 Big-IP: Load Balancing Pools
f5_bigip_psu                      snmp  F5 Big-IP: Power Supplies
f5_bigip_snat                     snmp  F5 Big-IP: Source NAT
f5_bigip_vcmpfailover             snmp  F5 Big-IP: Active/Active or Passive/Active vCMP Guest Failover Status
f5_bigip_vcmpguests               snmp  F5 Big-IP: Show Failover States of all vCMP Guests Running on a vCMP Host
f5_bigip_vserver                  snmp  F5 Big-IP: Virtual Servers

Se vuoi maggiori informazioni su un determinato plug-in, la documentazione come pagina di manuale (o pagina man) può essere richiamata con cmk -M:

OMD[mysite]:~$ cmk -M f5_bigip_pool

Questo produce il seguente output:

Example of a check plug-in manual page.

Utilizzando cmk -m senza altre opzioni, si accede a un catalogo completo di tutte le pagine man dei plug-in di controllo.

OMD[mysite]:~$ cmk -m

Puoi navigare in modo interattivo in questo catalogo:

Main menu for selecting a manual page.
Submenu for selecting a manual page.

5. Configurazione senza Setup

Il menu di configurazione è un ottimo strumento di configurazione. Tuttavia ci sono buone ragioni per preferire una configurazione con file di testo nella buona, vecchia tradizione di Linux. Se sei dello stesso parere, c'è una buona notizia: Checkmk può essere configurato completamente con file di testo. E dato che il menu azioni di Setup non fa altro che processare (questi stessi) file di testo, non si tratta nemmeno di una situazione alternativa.

5.1. Dov'è la documentazione?

Se ti aspetti un compendio completo sulla struttura esatta di tutti i file di configurazione utilizzati da Checkmk, purtroppo dobbiamo deluderti. La complessità e la diversità dei file di configurazione è semplicemente troppo grande per essere descritta completamente in questo manuale d'uso.

L'esempio seguente mostra un set completo di parametri del check plug-in che monitora i file system in Checkmk. A causa dei numerosi parametri, la schermata è divisa in due parti ed è impostata con caratteri minuscoli:

Complete parameter set of the check plug-in for monitoring file systems.

Il passaggio corrispondente nel file di configurazione si presenta così (con una formattazione un po' più gradevole):

{ 'inodes_levels'      : (10.0, 5.0),
  'levels'             : (80.0, 90.0),
  'levels_low'         : (50.0, 60.0),
  'magic'              : 0.8,
  'magic_normsize'     : 20,
  'show_inodes'        : 'onlow',
  'show_levels'        : 'onmagic',
  'show_reserved'      : True,
  'subtract_reserved'  : False,
  'trend_mb'           : (100, 200),
  'trend_perc'         : (5.0, 10.0),
  'trend_perfdata'     : True,
  'trend_range'        : 24,
  'trend_showtimeleft' : True,
  'trend_timeleft'     : (12, 6)},

Come si può notare, ci sono più di 10 parametri diversi, ognuno con una propria logica. Alcuni sono configurati con numeri in virgola mobile (0.8), altri con numeri interi (24), altri ancora con keyword ('onlow'), altri con valori booleani (True) e altri ancora con tuple per codificare varie combinazioni di questi ((5.0, 10.0)).

Questo è solo un esempio di oltre 2.000 plug-in. E naturalmente sono possibili altre configurazioni come parametri del check: Basti pensare ai periodi di tempo, alle regole della Console degli Eventi, ai profili degli utenti e molto altro ancora.

Naturalmente questo non significa che non si possano usare i file di testo come parametri di configurazione: se non conosci ancora la sintassi esatta per l'attività di configurazione che hai scelto, ti basta avere a disposizione lo strumento giusto, che noi chiamiamo Setup:

  1. Crea un sito di prova Checkmk.

  2. Utilizza il menu Setup per configurare i parametri desiderati.

  3. Individua il file di configurazione che è stato modificato di conseguenza (vedi più avanti).

  4. Riporta l'esatta sintassi della sezione corrispondente di questo file nel tuo sistema di produzione.

In questo modo, devi solo sapere in quale file scrive Setup.

Nota: quando si parla di nomi di directory, file o anche di contenuti di file, troverai spesso il termine wato. Setup W ATO è l'abbreviazione di Web Administration Tool: lo strumento di configurazione di Checkmk fino alla versione 1.6.0 inclusa. A partire dalla versione 2.0.0, la funzione di WATO è stata assunta dal menu di configurazione, o UP. Sebbene WATO sia stato (quasi) completamente sostituito da Setup nell'interfaccia web, continua a vivere nel file system.

5.2. Quale file di configurazione viene utilizzato?

Esiste un comando pratico per scoprire quale file Setup ha appena modificato: find. Invocando "find" con i seguenti parametri puoi trovare tutti i file (-type f) sotto etc/ che sono stati modificati nell'ultimo minuto (-mmin -1):

OMD[mysite]:~$ find etc/ -mmin -1 -type f
etc/check_mk/conf.d/wato/rules.mk

La base di una configurazione è sempre la directory etc/check_mk. Al di sotto di questa c'è una suddivisione in vari domini, che generalmente si riferiscono a un servizio specifico. Allo stesso tempo, ognuno di essi ha una directory con il suffisso .d, sotto la quale verranno letti automaticamente tutti i file con il suffisso .mk in ordine alfabetico. In alcuni di essi ci sarà anche un file principale che viene letto per primo. Quest'ultimo è destinato solo alla modifica manuale e non viene mai modificato da Setup.

Dominio Directory di configurazione File principale Modifiche attivate

Monitoraggio

etc/check_mk/conf.d/

main.mk

cmk -O o cmk -R

GUI

etc/check_mk/multisite.d/

multisite.mk

automaticamente

Console degli Eventi

etc/check_mk/mkeventd.d/

mkeventd.mk

omd reload mkeventd

Spooler di notifica

etc/check_mk/mknotifyd.d/

automaticamente

5.3. File di configurazione e setup

Al di sotto delle directory di configurazione .d/ c'è sempre la sottodirectory wato, ad es. etc/check_mk/conf.d/wato. Il servizio di Setup fondamentalmente legge e scrive solo qui. Tuttavia, il servizio responsabile della directory di configurazione legge anche gli altri file nella "sua" directory .d, se vi hai memorizzato dei file creati manualmente. Ciò significa che:

  • Se è necessario che la configurazione manuale sia visibile e modificabile nel Setup, utilizza i percorsi esistenti.

  • Se la configurazione deve semplicemente funzionare, ma non essere visibile nel Setup, utilizza i tuoi file esterni a wato/.

  • Se è necessario che la configurazione sia visibile nel Setup, ma non modificabile, è possibile bloccare alcuni dei file.

Blocco di file e cartelle

Un motivo comune per creare manualmente i file di configurazione senza Setup è la necessità di importare gli host da monitorare da un Configuration Management Database (CMDB). In questo caso, a differenza dei metodi che utilizzano l'API REST, si creano le cartelle per gli host con uno script direttamente in etc/check_mk/conf.d/wato e in ogni caso il file hosts.mk per gli host contenuti nella cartella e possibilmente anche il file .wato, che contiene gli attributi della cartella.

Se l'importazione non è una tantum, ma deve essere ripetuta regolarmente perché il CMDB è il file system principale, sarebbe molto poco pratico se gli utenti apportassero modifiche ai file utilizzando il Setup, poiché queste andrebbero perse con l'importazione successiva.

Un file hosts.mk può essere bloccato inserendo una riga per l'attributo lock:

host.mk
# Created by WATO
# encoding: utf-8

_lock = True

Quando si apre questa cartella nel Setup, viene visualizzato il seguente messaggio sopra l'elenco degli host:

Message that editing of hosts in the folder is locked.

Tutte le azioni che potrebbero modificare il file hosts.mk sono quindi bloccate nella GUI. Questo non vale ovviamente per la scoperta del servizio. I servizi configurati di un host sono memorizzati in var/check_mk/autochecks/.

Anche gli attributi della cartella possono essere bloccati. Questo avviene tramite una voce nel file .wato della cartella: imposta l'attributo lock su True nel dizionario del file:

.wato
{'title': 'My folder',
 'attributes': {},
 'num_hosts': 1,
 'lock': True,
 'lock_subfolders': False,
 '__id': '7f2a8906d3c3448fac8a379e2d1cec0e'}

Se imposti anche l'attributo lock_subfolders su True, impedisci la creazione e la cancellazione di sottocartelle.

Il blocco di altri file, come ad esempio rules.mk, non è attualmente possibile.

5.4. La sintassi dei file

Dal punto di vista puramente formale, tutti i file di configurazione di Checkmk sono scritti con la sintassi di Python 3. Esistono due tipi di file:

  • Quelli che vengono eseguiti come script da Python. Tra questi c'è, ad esempio, hosts.mk.

  • Quelli che vengono letti da Python come valori. Tra questi c'è, ad esempio, .wato.

I file eseguibili si riconoscono per la presenza di variabili che vengono sostituite da assegnazioni con valori (=). Gli altri file contengono solitamente un dizionario Python che inizia con una parentesi di apertura {. A volte si tratta di semplici valori.

Se in un file è richiesto un carattere non ASCII (un Umlaut tedesco (ä, ö, ü), per esempio), il seguente commento deve essere codificato nella prima o nella seconda riga:

somefile.mk
# encoding: utf-8

Altrimenti si verificherà un errore di sintassi durante la lettura del file. Per ulteriori suggerimenti sulla sintassi di Python ti consigliamo di visitare un sito specializzato, ad esempio:The Python Language Reference.

5.5. Controllare i file di configurazione

Se modifichi manualmente i file di configurazione in etc/check_mk/, è bene che la configurazione venga controllata. Puoi farlo con lo strumento cmk-update-config, che in realtà viene eseguito automaticamente solo dopo un aggiornamento di versione con omd update:

OMD[mysite]:~$ cmk-update-config
...
Verifying Checkmk configuration...
 01/05 Cleanup precompiled host and folder files...
 02/05 Rulesets...
Exception while trying to load rulesets: Cannot read configuration file "/omd/sites/mysite/etc/check_mk/conf.d/wato/rules.mk":
 '[' was never closed (<string>, line 44)

You can abort the update process (A) and try to fix the incompatibilities or try to continue the update (c).
Abort update? [A/c]
...

Ad esempio, nell'estratto qui sopra puoi vedere il riferimento a una parentesi non chiusa.

In questa pagina