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. ¿Por qué la línea de comandos?

Cuando se ha instalado un sistema Checkmk, se puede configurar y utilizar al 100% mediante la interfaz web. No obstante, hay situaciones en las que resulta útil sumergirse en las profundidades de la línea de comandos, por ejemplo

  • al buscar el origen de los problemas

  • al automatizar la administración de Checkmk

  • al programar y probar sus propias extensiones

  • para comprender el funcionamiento interno de Checkmk

  • si simplemente le gusta trabajar con la línea de comandos.

Este artículo presentará los comandos, archivos y directorios más importantes de la línea de comandos de Checkmk.

2. El usuario del site

2.1. Inicio de sesión como usuario del site

Cuando administre Checkmk, salvo algunas excepciones, nunca tendrá que trabajar como usuario de root. En este artículo asumiremos generalmente que ha iniciado sesión como usuario del site. Esto se hace, por ejemplo, con

root@linux# su - mysite

También es posible hacer un inicio de sesión SSH directo a un site sin rodeo a través de root. Dado que el usuario del site es un usuario Linux "completamente normal", simplemente debe asignar una contraseña para ello (lo que requiere root-permisos, una sola vez, para la configuración):

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

Después debería ser posible un inicio de sesión SSH directamente desde otro ordenador (los usuarios de Windows utilizan preferiblemente PuTTY para esto). Desde Linux este inicio de sesión se realiza simplemente en la línea de comando utilizando el comando ssh:

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

En el primer inicio de sesión probablemente se reciba una "advertencia" sobre una clave de host desconocida. Cuando esté seguro de que en este breve momento ningún atacante se ha apoderado de la dirección IP de su sistema operativo, puede simplemente verificarla con yes.

También puede trabajar con la línea de comandos en el appliance Checkmk. Cómo se hace se explica en su propio artículo.

2.2. Perfil y variables del entorno

Para que surjan el menor número posible de problemas, sobre todo como resultado de distribuciones individuales o configuraciones diferentes del sistema operativo, el sistema Checkmk se asegura de que el usuario del site - y también todos los procesos de monitorización - tengan siempre un entorno claramente definido. Junto con el directorio de inicio y los permisos, las variables del entorno desempeñan un papel importante.

Entre otras cosas, al iniciar sesión como usuario del site se establecerán o modificarán las siguientes variables. Estas variables están disponibles para su uso en todos los procesos que se ejecutan dentro del site. Esto también se aplica a los scripts que son invocados indirectamente por estos procesos (por ejemplo, los propios scripts de notificación de un usuario).

OMD_SITE

El nombre del site (mysite). En los scripts personalizados, esta variable debe utilizarse siempre en lugar de un nombre de sitio codificado (por ejemplo, con $OMD_SITE en el shell). De este modo, el script puede utilizarse sin cambios en otros sites.

OMD_ROOT

La ruta para el directorio del site (/omd/sites/mysite)

PATH

Los directorios en los que se buscarán los programas ejecutables. Por ejemplo, Checkmk guarda aquí el bin/ del site. En caso de nombres idénticos, los programas Checkmk tienen prioridad - esto es importante, por ejemplo, para el comando mail, una versión especial del cual se proporciona con una instalación de Checkmk.

LD_LIBRARY_PATH

Directorios en los que se buscan bibliotecas binarias adicionales. Utilizando esta variable Checkmk se asegura de que las bibliotecas proporcionadas con Checkmk tengan prioridad sobre las instaladas en el sistema operativo normal.

PERL5LIB

Ruta de búsqueda del módulo Perl. Aquí también tienen prioridad, en caso de duda, las variantes del módulo suministradas por Checkmk.

LANG

La configuración del idioma para los comandos de la línea de comandos. Esta configuración se adopta de la instalación de Linux. Esta variable se elimina automáticamente en los procesos del site, y la configuración vuelve al inglés por defecto. Esto también afecta a otras configuraciones regionales. La eliminación de LANG es muy importante, ya que un número de Plugin estándar de Nagios, por ejemplo, la configuración de idioma alemán, utiliza una coma para el separador decimal en lugar de un punto. Por lo tanto, su salida no puede ser procesada con precisión.

Con el comando env puede mostrar todas las variables del entorno - añadiendo | sort a este comando la lista queda un poco más clara:

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

En Linux el entorno es un atributo de un proceso. Cada proceso tiene sus propias variables, que pasa automáticamente a los subprocesos. Éstos comienzan inicialmente con las mismas variables heredadas, pero también pueden alterarlas.

Con el comando env siempre puedes ver sólo el entorno del shell actual. Si sospecha que hay un error en el entorno de un proceso en particular, con un pequeño truco puede obtener una lista de su entorno. Para ello sólo necesita el identificador de proceso (PID). Puede identificarlo, por ejemplo, con ps ax, pstree -p o top. Con esto puede acceder directamente al archivo environ del proceso a través del sistema de archivos /proc. Aquí tiene como ejemplo un comando adecuado para el PID 13222:

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

Si necesita variables definidas por el usuario para sus propios scripts u otro software a ejecutar en el site, guárdelas en el fichero etc/environment que ha sido creado especialmente para este propósito. Todas las variables definidas aquí estarán disponibles en cualquier lugar dentro del site:

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. Personalización del shell

Si deseas personalizar tu shell (Prompt u otras cosas), puedes hacerlo como de costumbre en el archivo .bashrc. No obstante, las variables del entorno pertenecen aetc/environment, por lo que es seguro que estarán disponibles para todos los procesos.

Tampoco hay nada que te impida tener tu propio archivo .vimrc si te gusta trabajar con VIM.

3. La estructura de directorios

3.1. La separación entre software y datos

El siguiente gráfico muestra los directorios más importantes en una instalación Checkmk con un site llamado mysite y un <version> llamado por ejemplo 2.0.0p8.cee:

Illustration of the directory structure of a Checkmk site.

La base de esta estructura la proporciona el directorio /omd. Sin excepción, todos los archivos de Checkmk se encuentran aquí./omd es, de hecho, un enlace simbólico a /opt/omd, mientras que los datos físicosreales se encuentran en /opt - pero todas las rutas de datos en Checkmk utilizan siempre /omd.

Es importante la separación entre datos (resaltados en amarillo) y software (en azul). Los datos del site se encuentran en /omd/sites, y el software instalado en /omd/versions.

3.2. Directorio del site

Como cualquier usuario de Linux, el usuario del site también tiene un directorio de inicio, al que nos referimos como directorio del site. Si su site se llamamysite se encontrará en /omd/sites/mysite. Como es habitual en Linux el shell abrevia el propio directorio de inicio con una tilde (~) (o guión girado). Dado que inmediatamente después de un inicio de sesión se encontrará en este directorio, la tilde aparece automáticamente en el prompt de entrada:

OMD[mysite]:~$

Los subdirectorios del directorio del site se muestran relativos a la tilde:

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

Dentro del directorio del site se encuentran varios subdirectorios, que se pueden listar 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/

Como puede verse, los directorios bin, include, lib,share y version son enlaces simbólicos. El resto son directorios "normales". Esto refleja la separación entre software y datos explicada anteriormente. El directorio de software debe ser accesible como un subdirectorio en el site, pero se encuentra físicamente en /omd/versions, y también puede ser utilizado posiblemente por otros sites.

Software Datos

Directorios

bin, include, lib, share

etc, local, tmp, var

Propietario

root

Usuario del site (mysite)

Creado por

Instalación de Checkmk

Creación, configuración y monitorización del site

Ubicación física

/omd/versions/2.0.0p8.cee/

/omd/sites/mysite/

Tipo de archivo

Enlaces simbólicos

Directorios normales

3.3. 3.3. Software

Los directorios de software, como es habitual en Linux, pertenecen a rooty, por tanto, no pueden ser modificados por un usuario del site. Existen los siguientes subdirectorios - los del ejemplo se encuentran físicamente dentro de/omd/versions/2.0.0p8.cee, y son accesibles mediante enlaces simbólicos desde el directorio del site:

bin/

Directorio para programas ejecutables. Aquí se encuentra, por ejemplo, el comando cmk.

lib/

Directorios C, Plugin para Apache y Python - y en el subdirectorio nagios/plugins - Plugin estándar de monitorización, que en su mayoría están escritos en C o Perl.

share/

La parte principal del software instalado. Muchos componentes se encuentran en share/check_mk - entre otros, más de 2.000 check plugin.

include/

Contiene archivos Include para programas C, que deben enlazarse con bibliotecas en lib/. Este directorio no es importante y sólo se utiliza si desea traducir programas C usted mismo.

El enlace simbólico version/ es una "parada intermedia" y sirve como punto de relevo para la versión utilizada por el site. Durante una actualización del software, se cambiará de la versión antigua a la nueva. No obstante, no intente realizar una actualización manualmente modificando el enlace, ya que una actualización requiere una serie de pasos adicionales, que fallarán.

3.4. Datos

Los datos reales de un site se encuentran en el resto de subdirectorios del directorio del site. Sin excepción, éstos pertenecen al usuario del site. También se incluye el propio directorio del site. Checkmk no almacena nada aparte de los directorios allí listados. Aquí puede crear sin problemas sus propios archivos y directorios, en los que se pueden guardar a voluntad pruebas, datos descargados, copias de archivos de registro, etc.

Se han predefinido los siguientes directorios:

etc/

Archivos de configuración. Éstos pueden editarse a mano o mediante la configuración de Checkmk.

Nota: Los scripts de etc/init.d son también archivos de "configuración", ya que se encuentran en etc/. Esto se basa en el mismo patrón que se encuentra en cada sistema Linux bajo /etc/init.d/. Sin embargo, le aconsejamos que no cambie este script, ya que esto puede provocar conflictos durante una actualización de software. No es necesario realizar cambios en los script.

var/

Datos en tiempo de ejecución. Todos los datos generados por la monitorización se almacenarán aquí. Dependiendo del número de hosts y servicios, se puede acumular un inmenso volumen de datos - de los cuales la mayor parte son los datos de rendimiento registrados en los RRDs.

tmp/

Datos volátiles. Checkmk y otros componentes almacenan aquí datos temporales (que no es necesario conservar). Por lo tanto, aquí se monta un tmpfs. Se trata de un sistema de archivos que gestiona los datos en RAM, por lo que genera cero Disk-IO. Si se reinicia el ordenador, se pierden todos los datos de tmp/. Parar e iniciar el site no borra los datos. Datos como sockets, pipes y archivos PID se encuentran en tmp/run - son necesarios para la comunicación y la gestión de los procesos del servidor. No utilice tmp/ para almacenar sus propios datos, ya que este directorio está montado en la RAM donde el espacio es bastante limitado. Almacene sus propios datos directamente en el directorio del site, o en su propio subdirectorio dentro de él.

local/

Extensiones propias. Puede encontrar una jerarquía 'sombra' de los directorios de software bin/, lib/ y share/ en local/. Están pensados para sus propios cambios o ampliaciones del software. También aplicable aquí: Bajo ninguna circunstancia almacene archivos de prueba, archivos de registro, copias de seguridad o cualquier otra cosa que no pertenezca allí, en local/. Checkmk podría intentar ejecutar estos archivos como parte del software. Asimismo, en una monitorización distribuida los datos también se duplicarán en todos los sites remotos.

3.5. Modificación y ampliación de Checkmk: los archivos locales

Como se acaba de mostrar en la tabla anterior, el directorio local con sus numerosos subdirectorios está destinado a sus propias ampliaciones. En un site nuevo, todos los directorios de local/ están inicialmente vacíos.

Con el práctico comando tree puede obtener rápidamente una visión general de la estructura de local. La opción -L 3 restringe la profundidad 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

Todos los directorios del nivel más bajo se integran activamente en el software. Un archivo almacenado aquí se tratará de la misma manera que si estuviera en el directorio con el mismo nombre dentro de /omd/versions/…​ (o respectivamente, en la ruta lógica desde el site bajo bin, lib o share).

Ejemplo: En el site, los programas ejecutables se buscarán en biny en local/bin.

Aquí se aplica que en el caso de nombres idénticos el archivo en localsiempre tiene prioridad. Esto permite modificar el software sin necesidad de cambiar los archivos de instalación en /omd/versions/. El procedimiento es sencillo:

  1. Copie el archivo deseado en el directorio correspondiente de local.

  2. Modifique este archivo.

  3. Reinicie el servicio correspondiente para que el cambio surta efecto.

En relación con el punto 3 anterior, si no se sabe exactamente a qué servicio se aplica el cambio, basta con reiniciar el site completo con omd restart.

3.6. Archivos de registro

En Checkmk, como ya se ha descrito, los archivos de registro se almacenan en eldirectorio var/. Allí se encuentran todos los archivos de registro de los componentes relevantes:

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

En la interfaz web puede configurar fácilmente hasta qué punto deben escribirse los datos en los archivos de registro buscando en Setup > General > Global settings todas las entradas con logging:

List of global settings for logging.

Como alternativa, también es posible personalizar los niveles de registro en la línea de comandos de los archivos de configuración. Los archivos se denominan global.mk, pero se encuentran en directorios diferentes. Especifique las entradas si aún no están presentes, como es el caso, si un Factory setting aún no se ha modificado.

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

En este archivo se establecen las entradas Monitoring Core, Notifications y Alert Handlers:

  • Para notification_logging se puede elegir entre los valores 10 para Full dump of all variables and command, 15 para Normal logging y 20 para Minimal logging.

  • Para alert_logging se puede elegir entre los valores 10 para Full dump of all variables y 20 para Normal logging.

  • Para cmc_log_levels la cantidad de datos registrados aumenta al incrementar el número. Aquí hay ocho gradaciones (0 a 7) que van de 0 para Emergency a 7 que representa Debug.

  • Con los tres valores None, 'terse' y 'full' para cmc_log_rrdcreation puedes decidir si la creación de RRDs debe ser registrada y cómo.

~/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,
}

En este archivo puede configurar el registro de User Interface.

La cantidad de datos registrados aumenta de forma inversa a medida que disminuye el recuento. El nivel de registro más bajo es 50 (Critical), mientras que la mayor cantidad de datos se registrará a 10, que corresponde al más alto (Debug).

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

Este archivo se utiliza para Livestatus Proxy logging. Los valores posibles aquí corresponden a los del registro de User Interface.

Importante: Los archivos de registro pueden llegar a ser rápidamente muy grandes si se ha establecido un nivel alto. Por lo general, es aconsejable utilizar estos ajustes para una personalización "temporal", como ayuda en la identificación de problemas, por ejemplo.

4. El comando cmk

Junto con el comandoomd , que sirve para iniciar y detener sites, para la configuración básica de componentes y para iniciar unaactualización de software, cmk es el comando más importante. Con él se puede crear una configuración para un core de monitorización, ejecutar checks manualmente, realizar un descubrimiento de servicios y mucho más.

4.1. 4.1. Opciones del comando

El comando cmk es en realidad una abreviatura de check_mk, introducida para hacer el comando más rápido de escribir. El comando incluye una ayuda en línea integrada, muy detallada, que puede ser llamada con la opción --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
...

Como puede ver en el comando anterior, hemos llamado a la ayuda con la opción -h en lugar de --help. Porque lo que es cierto para el comando en sí mismo también lo es para sus opciones: Cuanto menos haya que teclear, más rápido se va. No para todas las opciones, pero para aquellas que se necesitan a menudo, existe por tanto una forma corta además de la forma larga. Aunque la forma larga es más intuitiva, especialmente para principiantes (check_mk --list-hosts) que la forma corta (cmk -l), utilizaremos la forma corta en el Manual de usuario. En caso de duda, siempre puede consultar la ayuda del comando. En cualquier caso, es conveniente echar un vistazo más largo a la ayuda del comando, ya que no presentaremos todas las opciones en el Manual de usuario.

Al introducir una opción, se inicia el comando cmk en un modo determinado. A continuación se presenta una Vista general de las opciones que presentaremos en este capítulo, pero también en otras partes del manual:

Opción Función

Core de monitorización

cmk -R

Reiniciar el núcleo

cmk -O

Cargar una nueva configuración en el núcleo

cmk -U

Crear una nueva configuración para el núcleo

cmk -N

Salida de la configuración Nagios del núcleo

Chequeos

cmk myserver123

Ejecución de checks en el host myserver123

Servicios

cmk -I myserver123

Ejecución de un descubrimiento de servicios

cmk --check-discovery myserver123

Ejecuta el descubrimiento check en el host, que comprueba si hay servicios nuevos y desaparecidos y si hay nuevas etiquetas de host. Cuando se produce un cambio, el host se "marca" creando un archivo con el nombre del host en var/check_mk/autodiscovery- pero sólo si la actualización automática de la configuración del servicio está activada en Checkmk (en el conjunto de reglas Periodic service discovery ).

Agentes

cmk -d myserver123

Recuperación de la salida del agente

cmk -A myserver123

Creación de agentes

Diagnóstico

cmk -l

Listado de hosts

cmk --list-tag mytag

Listado de hosts con tag del host

cmk -D myserver123

Visualización de la configuración del host

Información

cmk -V

Muestra la versión de Checkmk instalada en el site.

cmk -L

Lista de check plugins

cmk -m

Acceso al catálogo de plugins de check

cmk -M df

Mostrandouna página del manual de un check plugin (aquí del plugin df)

Temas especiales

cmk --update-dns-cache

Elimina la caché DNS y la vuelve a crear. Para más detalles sobre la caché DNS, consulte el artículo sobre hosts. Por defecto, este comando se ejecuta en un site Checkmk una vez al día mediante cronjob.

cmk --cleanup-piggyback

Elimina todos los datos piggyback obsoletos del directorio tmp/check_mk/piggyback/. Por defecto, este comando se ejecuta en un site Checkmk una vez al día mediante cronjob.

cmk -P

Gestión de MKP

cmk --convert-rrds

Conversión de RRD

cmk --snmpwalk myswitch

Extracción de un paseo SNMP desde host myswitch

cmk --snmptranslate

Traducción de un walk SNMP

cmk --create-diagnostics-dump

Creación de un volcado de diagnóstico de soporte

En algunos modos, además, dispone de opciones específicas, por ejemplo, puede limitar el descubrimiento de servicios a determinados checks, por ejemplo, al check df con el comando cmk -I --detect-plugins=df myserver123.

Hay una serie de opciones que siempre funcionan, independientemente del modo en que se ejecute el comando:

Opción Función

cmk -v

Solicita a cmk que produzca un volcado detallado de su actividad actual ('verbose')

cmk -vv

Lo mismo que lo anterior, con aún más detalles: muy detallado

cmk --cache

La información se lee de los archivos de caché, aunque estén desactualizados. Sólo se contacta con el agente si no existe ningún fichero de caché. Los datos del agente en caché del host pueden encontrarse en tmp/check_mk/cache.

cmk --no-tcp

Funciona como --cache, sin embargo interrumpirá con si un fichero caché está ausente o no es actual. Así en cualquier situación se puede suprimir un acceso al agente.

cmk --no-cache

La información se obtiene siempre actualizada, es decir, no se utilizan ficheros de caché.

cmk --usewalk

Para hosts SNMP: en lugar de acceder al agente SNMP se utiliza un paseo SNMP almacenado, que ha sido extraído previamente con cmk --snmpwalk myserver123. Estos paseos se almacenan en var/check_mk/snmpwalks.

cmk --debug

Si se produce un error, esta opción asegura que ya no será interceptado, sino que se mostrará la excepción original de Python completa. Esto puede ser una información importante para el desarrollador, al mostrar la ubicación exacta del programa en la que se encuentra el error. También será muy útil para localizar errores en Plugins de check autoescritos. Si al invocar cmk se encuentra un error que debe ser informado a soporte o retroalimentación, repita la solicitud con la opción añadida --debug, y adjunte la traza de Python a su correo electrónico.

En la siguiente sección mostraremos cómo se pueden utilizar los comandos. Los ejemplos se muestran en su mayoría de forma abreviada.

4.2. Comandos para el núcleo de monitorización

Las ediciones comerciales utilizan el Checkmk Micro Core (CMC) como su core de monitorización, el Checkmk Raw Edition utiliza Nagios. Una tarea importante para el cmk es la generación de un archivo de configuración que sea legible para el núcleo, y que contenga todos los host configurados, servicios, contactos, grupos de contacto, periodicidades, etc. En base a esta información, el núcleo sabe qué checks deben ejecutarse y qué objetos debe proporcionar mediante el Livestatus de la GUI.

Tanto para Nagios como para la CMC, es fundamental que el número de host, servicios y otros objetos permanezca siempre estático durante la operación, y que este número sólo pueda alterarse mediante la generación de una nueva configuración, seguida de una recarga del núcleo. Con Nagios también es necesario reiniciar el núcleo. La CMC dispone de una función muy eficaz para la recarga de su configuración durante el proceso activo.

La siguiente tabla destaca las diferencias importantes entre las configuraciones de ambos núcleos:

Nagios CMC

Archivo de configuración

etc/nagios/conf.d/check_mk_objects.cfg

var/check_mk/core/config

Tipo de archivo

Archivo de texto con define-comandos

Archivo binario comprimido y optimizado

Activación

Reinicio del núcleo

Comando del núcleo para recargar la configuración

Comando

cmk -R

cmk -O

La regeneración de la configuración siempre es necesaria si se ha modificado el contenido del archivo de configuración en etc/check_mk/conf.d, o los servicios detectados automáticamente en var/check_mk/autochecks. El Setup mantiene un registro de tales cambios y los resalta en la GUI como activación de cambios. En caso de "saltarse el Setup" modificando la configuración manualmente o con un script, también tendrá que ocuparse de la activación manualmente. Los siguientes comandos cumplen esta función:

Opción Función

cmk -R

Genera una nueva configuración para el núcleo y lo reinicia (análogo a omd restart core). Este es el método previsto para Nagios.

cmk -O

Genera la configuración para el núcleo y la carga sin reiniciar el proceso activo (análogo a omd reload core). Esta es la variante recomendada con la CMC.

Atención: Con Nagios como núcleo esta opción sigue funcionando, pero puede provocar agujeros de memoria y otras inestabilidades. Aparte de eso, esta opción no realiza en ningún caso una auténtica recarga, sino que detiene y reinicia internamente el proceso, por así decirlo.

cmk -U

Genera la configuración para el núcleo sin activarlo.

cmk -N

A efectos de diagnóstico, esta opción muestra la configuración que se va a generar en la salida estándar, sin alterar el fichero de configuración real. Aquí puede introducir simplemente el nombre del host para ver la configuración del mismo (por ejemplo cmk -N myserver123).

En resumen: Si desea personalizar una configuración de Checkmk y activar los cambios, en Nagios requerirá posteriormente:

OMD[mysite]:~$ cmk -R

Y con la CMC:

OMD[mysite]:~$ cmk -O

4.3. Ejecución de checks

Un segundo modo en Checkmk se ocupa de la ejecución de comprobaciones basadas en Checkmk de un host. Con esto puede permitir que todos los servicios detectados automáticamente, y también los configurados manualmente, se comprueben inmediatamente, sin necesidad de molestarse con el núcleo de monitorización o la GUI.

Para ello, introduzca cmk --check seguido del nombre de un host configurado en la monitorización. Dado que la opción --check es la opción por defecto de cmk, también puede omitirla. Además, siempre debe añadir las dos opciones -n (no enviar los resultados al núcleo) y -v (mostrar todos los resultados). Encontrará más información al respecto en la descripción de las opciones que aparece a continuación.

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

Más consejos:

  • No utilice este comando en hosts de producción monitorizados que utilicen monitorización de archivos de registro. Los mensajes de registro sólo son enviados una vez por los agentes, y puede ocurrir que un cmk -nv manual los 'atrape' y se pierdan de la monitorización. En tal situación utilice la opción --no-tcp.

  • Si se está usando Nagios para el núcleo y se omite -n, el efecto será una actualización inmediata de los resultados del check en el núcleo y en la GUI.

  • El comando es útil para desarrollar sus propios check plugin, ya que permite una comprobación más rápida que utilizando la GUI. Si el check falla y devuelve un UNKNOWN, la opción --debug puede ayudar a encontrar la ubicación del problema en el código.

Las siguientes opciones influyen en el comando:

Opción Función

-v

Salida de resultados del check: Sin esta opción sólo verá la salida del propio servicio Check_MK, y no los resultados de los otros servicios.

-n

Ejecución en seco: Los resultados no se pasan al núcleo, el contador de rendimiento no se actualiza.

--detect-plugins=df,uptime

Restringe la ejecución a los check plugin df y uptime. En el caso de los host SNMP, sólo se recuperarán los datos necesarios para éstos. Esta opción es práctica si desarrollas tus propios check plugin y sólo quieres probarlos.

4.4. Recuperación de la salida del agente

El comando cmk -d recupera y muestra la salida del agente Checkmk de un host. Con cmk -d los datos del agente se recuperan de la misma forma que con la monitorización. No se validan ni se procesan. Por lo tanto, los datos mostrados coinciden exactamente con los datos que se entregan al Controlador de agentes (cuando el cifrado TLS está activado) o a un programa de tunelización en caso de que los programas de origen de datos estén configurados.

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

Puede incluso ejecutar cmk -d utilizando el nombre o la dirección IP de un host que no esté configurado en la monitorización. En este caso se asumirá la configuración heredada para el host (conexión TCP al puerto 6556, sin Controlador de agentes, sin encriptación, sin programa fuente de datos).

4.5. Horneado de agentes

En las ediciones comerciales también puede bakear los agentes desde la línea de comandos, como lo haría a través de la interfaz web. Esto le da la opción, por ejemplo, de actualizar los agentes regularmente, por ejemplo mediante un cronjob.

Para bakear los agentes, utilice la opción -A seguida del nombre de un host (o varios):

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

La salida muestra que los paquetes de agentes disponibles para el host myserver123 han sido bakeados con éxito. Si no se especifica un host, los paquetes serán bakeados para todos los hosts.

El comando sólo bakea cuando es necesario. Si los paquetes están aún actualizados, la salida será algo parecido a esto:

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

Puede forzar la preparación con la opción -f (force).

4.6. Lista de hosts

El comando cmk -l simplemente lista los nombres de todos los host configurados en el Setup:

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

Dado que los datos se proporcionan 'desnudos' y 'sin procesar', es fácil utilizarlos en scripts - por ejemplo, se puede construir un bucle a través de todos los nombres del host:

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

Si, en lugar de echo insertas un comando que realice algo significativo, esto puede ser realmente útil.

La invocación cmk --list-tag también muestra nombres del host, pero también ofrece la posibilidad de filtrar por tags del host. Simplemente introduzca un tag del host y recibirá todos los hosts que tengan este tag. El siguiente ejemplo lista todos los host monitorizados por SNMP:

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

Introduzca múltiples tags y se enlazarán con 'y'. El siguiente comando muestra todos los hosts que son monitorizados tanto por SNMP como por agentes Checkmk. Como ningún host cumple esta condición, la salida permanece vacía:

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

4.7. Visualización de la configuración del host

Para uno o más hosts especificados, cmk -D muestra los servicios configurados, tags del host, etiquetas y otros atributos. Como la lista de servicios es tan extensa, puede parecer algo confusa en el terminal. Envíe la salida a través de less -S para evitar una interrupción:

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. Información sobre los check plugin

Checkmk proporciona de serie un gran número de Plugin listos para usar. En cada versión se añaden algunos nuevos, y la versión 2.0.0 ya incluye alrededor de 2.000 Plugin. Tres opciones del comando cmk le dan acceso a información sobre estos Plugin.

cmk -L produce una tabla de todos los Plugin con su nombre, tipo y descripción. Al mismo tiempo, también se listarán los Plugin de escritura propia almacenados en local/.

Los tipos posibles son los siguientes:

agent

Evalúa los datos de un agente Checkmk. Esto se recupera (normalmente) a través del puerto TCP 6556.

snmp

Sirve para la monitorización de dispositivos vía SNMP.

active

Llama a un tipo estándar de Plugin compatible con Nagios para la monitorización. Aquí Checkmk en realidad sólo adopta la configuración.

Por supuesto, la lista puede filtrarse simplemente con grep si se busca algo específico:

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

Si desea más información sobre un determinado Plugin, la documentación como página de manual (o página man) se puede llamar con cmk -M:

OMD[mysite]:~$ cmk -M f5_bigip_pool

Esto produce la siguiente salida:

Example of a check plug-in manual page.

Usando cmk -m sin más opciones accederá a un catálogo completo de todas las páginas de manual de los plugins de check.

OMD[mysite]:~$ cmk -m

Puede navegar interactivamente en este catálogo:

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

5. Configuración sin Setup

El Menú de configuración es una gran herramienta de configuración. Sin embargo, hay buenas razones para preferir una configuración con archivos de texto en la buena y vieja tradición Linux. Si usted es de la misma opinión hay buenas noticias: Checkmk puede ser completamente configurado usando archivos de texto. Y puesto que las acciones del menú Setup no hacen más que procesar (esto mismo) ficheros de texto, esto no es ni siquiera una situación de o lo uno o lo otro.

5.1. ¿Dónde está la documentación?

Si espera un compendio exhaustivo que cubra la estructura exacta de todos los archivos de configuración utilizados por Checkmk, lamentablemente tendremos que decepcionarle. La complejidad y diversidad contenida en los ficheros de configuración es simplemente demasiado para describirla completamente en este Manual de usuario.

El siguiente ejemplo muestra un conjunto completo de parámetros para el plugin de check que monitoriza sistemas de archivos en Checkmk. Debido a la gran cantidad de parámetros, la captura de pantalla está dividida en dos partes y en minúsculas:

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

El pasaje correspondiente en el archivo de configuración tiene este aspecto (con un formato algo más agradable):

{ '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)},

Como puede verse, hay más de 10 parámetros diferentes, cada uno con su propia lógica individual. Algunos se configuran utilizando números de coma flotante (0.8), otros con números enteros (24), otros con palabras clave ('onlow'), otros con valores booleanos (True), y otros utilizando tuplas para codificar diversas combinaciones de éstos ((5.0, 10.0)).

Éste es sólo un ejemplo de entre más de 2.000 Plugins. Y, por supuesto, hay otras configuraciones posibles como parámetros de check: Basta pensar en periodicidades de tiempo, reglas de la Consola de eventos, perfiles de usuario, y muchas más.

Por supuesto, eso no significa que no pueda utilizar archivos de texto como configuración. Si aún no conoce la sintaxis exacta para la tarea de configuración que ha elegido, sólo necesita la herramienta adecuada para ello, y a esta herramienta la llamamos Setup:

  1. Crear un site de pruebas Checkmk.

  2. Utilice el menú Setup para configurar los parámetros deseados.

  3. Localice el archivo de configuración que se ha modificado en consecuencia (más información al respecto más adelante).

  4. Traslade la sintaxis exacta de la sección correspondiente de este archivo a su sistema productivo.

Por lo tanto, sólo necesita saber en qué archivo escribe Setup.

Nota: Cuando se trata de nombres de directorios, archivos o incluso contenidos de archivos, a menudo encontrará el término wato. WATO es la abreviatura de Web Administration Tool: la herramienta de configuración de Checkmk hasta la versión 1.6.0 inclusive. La función de WATO ha sido asumida por el menú Setup, o Setup para abreviar, a partir de la versión 2.0.0. Aunque WATO ha sido (casi) completamente reemplazado por Setup en la interfaz web, sigue vivo en el sistema de archivos.

5.2. ¿Qué fichero de configuración se utiliza?

Existe un comando práctico para saber qué fichero acaba de modificar Setup: find. Invocando 'find' con los siguientes parámetros puede encontrar todos los archivos (-type f) bajo etc/ que han sido alterados en el último minuto (-mmin -1):

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

La base de una configuración es siempre el directorio etc/check_mk. Debajo de éste hay una subdivisión en varios dominios, que generalmente se aplican a un servicio específico. Al mismo tiempo, cada uno tiene un directorio con el sufijo .d, bajo el cual se leerán automáticamente todos los archivos con el sufijo .mk en orden alfabético. En algunos habrá también una carpeta principal que se lee en primer lugar. Ésta está prevista sólo para alteraciones manuales, y nunca es modificada por Setup.

Dominio Directorio de configuración Fichero principal Cambios activados

Monitorización

etc/check_mk/conf.d/

main.mk

cmk -O o cmk -R

GUI

etc/check_mk/multisite.d/

multisite.mk

automáticamente

Consola de eventos

etc/check_mk/mkeventd.d/

mkeventd.mk

omd reload mkeventd

spooler de notificación

etc/check_mk/mknotifyd.d/

automáticamente

5.3. Archivos de instalación y configuración

Debajo de los directorios de configuración .d/ siempre hay el subdirectorio wato, por ejemplo etc/check_mk/conf.d/wato. El Setup fundamentalmente sólo lee y escribe aquí. Sin embargo, el servicio responsable del directorio de configuración también lee los otros archivos en "su" directorio .d, si ha almacenado allí algunos archivos creados manualmente. Esto significa:

  • Si se requiere que la configuración manual sea visible y editable en el Setup, utilice las rutas existentes.

  • Si se requiere que la configuración simplemente funcione, pero no sea visible en el Setup, entonces use sus propios archivos externamente a wato/.

  • Si se requiere que la configuración sea visible en el Setup, pero no modificable, se pueden bloquear algunos de los archivos.

Bloqueo de archivos y carpetas

Una razón común para crear manualmente archivos de configuración sin Setup es la necesidad de importar hosts para ser monitorizados desde una base de datos de administración de la configuración (CMDB). Aquí, en contraste con los métodos que utilizan la API-REST, se crean las carpetas para los hosts con un script directamente en etc/check_mk/conf.d/wato y en cada caso el archivo hosts.mk para los hosts contenidos en la carpeta y posiblemente también el archivo .wato, que contiene los atributos de la carpeta.

Si esta importación no se realiza una sola vez, sino que debe repetirse regularmente porque la CMDB es el sistema principal, sería muy poco práctico que sus usuarios realizaran cambios en los archivos utilizando el Setup, ya que éstos se perderían con la siguiente importación.

Un archivo hosts.mk puede bloquearse insertando una línea para el atributo lock:

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

_lock = True

Al abrir esta carpeta en el programa de instalación, aparece el siguiente mensaje sobre la lista de hosts:

Message that editing of hosts in the folder is locked.

Todas las acciones que puedan alterar el archivo hosts.mk están bloqueadas en la GUI. Esto no se aplica al descubrimiento de servicios, por supuesto. Los servicios configurados de un host se almacenan en var/check_mk/autochecks/.

Los atributos de la carpeta también pueden bloquearse mediante una entrada en el archivo .wato de la carpeta: establezca el atributo lock en True en el diccionario del archivo:

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

Si también establece el atributo lock_subfolders en True, impedirá la creación y eliminación de subcarpetas.

Actualmente no es posible bloquear otros archivos, como rules.mk, por ejemplo.

5.4. La sintaxis de los ficheros

En términos puramente formales, todos los archivos de configuración de Checkmk están escritos en sintaxis Python 3. Existen dos tipos de archivos:

  • Los que son ejecutados como un script por Python. Entre ellos se encuentra, por ejemplo, hosts.mk.

  • Los que Python lee como valores. Entre ellos se encuentra, por ejemplo, .wato.

Los archivos ejecutables pueden ser reconocidos por tener variables que son sustituidas por asignaciones con valores (=). Los otros archivos suelen contener un diccionario Python que comienza con un corchete de apertura {. A veces son simples valores.

Si se requiere un carácter no ASCII en un archivo (una diéresis alemana (ä, ö, ü), por ejemplo), se debe codificar el siguiente comentario en la primera o segunda línea:

archivo.mk
# encoding: utf-8

De lo contrario, se producirá un error de sintaxis al leer el archivo. Para más información sobre la sintaxis de Python, le recomendamos que visite un site especializado, por ejemplo:The Python Language Reference.

5.5. Check de los ficheros de configuración

Si edita manualmente archivos de configuración en etc/check_mk/, es una buena idea hacer check de la configuración. Puede hacerlo con la herramienta cmk-update-config, que en realidad sólo se ejecuta automáticamente después de una actualización de versión 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]
...

Por ejemplo, en el extracto anterior puedes ver la referencia a un corchete no cerrado.

En esta página