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é 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 tus propias extensiones

  • para entender cómo funciona Checkmk internamente

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

Este artículo te 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 administres Checkmk, salvo algunas excepciones, nunca tendrás que trabajar como usuario de root. En este artículo supondremos, en general, que has 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. Como el usuario del site es un usuario de Linux "completamente normal", sólo tienes que asignarle 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 preferentemente PuTTY para ello). Desde Linux, este inicio de sesión se realiza simplemente en la línea de comandos utilizando el comando ssh:

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

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

También puedes 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 consecuencia de distribuciones individuales o configuraciones distintas 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 ejecuten 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 debe utilizarse siempre esta variable en lugar de un nombre de sitio codificado (por ejemplo, con $OMD_SITE en el shell). De este modo, el script también 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 la 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 tienen 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 proporcionadas 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 otros ajustes regionales. Eliminar LANG es muy importante, ya que varios Plugin estándar de Nagios, por ejemplo, la configuración del idioma alemán, utiliza una coma como separador decimal en lugar de un punto. De este modo, tu salida no se puede procesar con precisión.

Con el comando env puedes mostrar todas las variables del entorno; si añades | sort a este comando, la lista quedará 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 parten inicialmente con las mismas variables heredadas, pero también pueden modificarlas.

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

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

Si necesitas variables definidas por el usuario para tus propios scripts u otro software que se ejecute en el site, guárdalas en el archivo etc/environment que se ha creado especialmente para este fin. Todas las variables definidas aquí estarán disponibles en cualquier parte del site:

etc/entorno
# 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. Personalizar el 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 del directorio

3.1. La separación entre software y datos

El siguiente gráfico muestra los directorios más importantes de una instalación de 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 de Checkmk utilizan siempre /omd.

Es importante la separación entre los datos (resaltados en amarillo) y el software (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 tu site se llamamysite, se encontrará en /omd/sites/mysite. Como es habitual en Linux, el shell abrevia el directorio de inicio propio con una tilde (~) (o guión oscilante). Como inmediatamente después de un inicio de sesión estarás realmente 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 hay una serie de 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 subdirectorio en el site, pero se encuentra físicamente en /omd/versions, y posiblemente también pueda ser utilizado 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. Software

Los directorios de software, como es habitual en Linux, pertenecen a rooty, por tanto, no pueden ser alterados 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 de monitorización estándar, 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 plugins de check.

include/

Contiene archivos Include para programas en C, que deben enlazarse con las bibliotecas de lib/. Este directorio no es importante y sólo se utiliza si quieres traducir tú mismo los programas C.

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 intentes realizar una actualización manualmente alterando el enlace, ya que una actualización requiere una serie de pasos adicionales, que fracasarán.

3.4. Datos

Los datos reales de un site se encuentran en los subdirectorios restantes 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í puedes crear sin problema tus propios archivos y directorios, en los que se pueden guardar, según se desee, 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 utilizando la Configuración de Checkmk.

Nota: Los scripts de etc/init.d son en realidad también archivos de "configuración", ya que se encuentran en etc/. Se basan en el mismo patrón que se encuentra en todos los sistemas Linux en /etc/init.d/. Sin embargo, desaconsejamos cambiar este script, ya que puede provocar conflictos durante una actualización de software. No es necesario modificar los scripts.

var/

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

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. ¡Al reiniciar el ordenador se pierden todos los datos de tmp/! Detener e iniciar el site no borra los datos. Datos como sockets, tuberías y archivos PID se encuentran en tmp/run - son necesarios para la comunicación y la gestión de los procesos del servidor. No utilices tmp/ para almacenar tus propios datos, ya que este directorio se monta en la RAM, donde el espacio es bastante limitado. Almacena tus propios datos directamente en el directorio del site, o en tu propio subdirectorio dentro de él.

local/

Extensiones propias. Puedes encontrar una jerarquía "en la sombra" de los directorios de software bin/, lib/ y share/ en local/. Están pensados para tus propios cambios o ampliaciones del software. También aplicable aquí: Bajo ninguna circunstancia almacenes 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. Modificar y ampliar Checkmk: los archivos locales

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

Con el práctico comando tree puedes 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á del mismo modo que si estuviera en el directorio con el mismo nombre dentro de /omd/versions/…​ (o respectivamente, en la ruta lógica del 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 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. Copia el archivo deseado en el directorio correspondiente de local.

  2. Modifica este archivo.

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

Respecto al 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 pueden encontrar 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 puedes configurar fácilmente hasta qué punto se deben escribir datos en los archivos de registro buscando en Setup > General > Global settings todas las entradas con logging:

List of global settings for logging.

Alternativamente, también es posible personalizar los niveles de registro en la línea de comandos de los archivos de configuración. Cada uno de los archivos se llama global.mk, pero están ubicados en directorios diferentes. Especifica las entradas si no están ya presentes, como es el caso, si todavía no se ha modificado Factory setting.

~/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 puedes 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 puedes 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 registrarse 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 puedes 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 muy grandes rápidamente 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. Las opciones del comando

El comando cmk es en realidad una abreviatura de check_mk, introducida para que el comando sea más rápido de escribir. El comando incluye una ayuda en línea integrada y muy detallada, que se puede llamar 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 puedes 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í, 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 las que se necesitan a menudo, existe por tanto una forma abreviada además de la forma larga. Aunque la forma larga es más intuitiva, especialmente para los principiantes (check_mk --list-hosts) que la forma abreviada (cmk -l), utilizaremos la forma abreviada en el Manual de usuario. En caso de duda, siempre puedes consultar la ayuda del comando. En cualquier caso, es buena idea 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, inicias 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

Núcleo 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

Dar salida a la configuración Nagios del núcleo

Comprobaciones

cmk myserver123

Ejecutarchecks en el host myserver123

Servicios

cmk -I myserver123

Ejecutar un descubrimiento de servicios

cmk --check-discovery myserver123

Ejecuta el check de descubrimiento de servicios en el host, que comprueba si hay servicios nuevos o 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

Recuperar la salida del agente

cmk -A myserver123

Creación de agentes

Diagnóstico

cmk -l

Lista de hosts

cmk --list-tag mytag

Listar hosts con tag del host

cmk -D myserver123

Mostrar la configuración del host

Información

cmk -V

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

cmk -L

Lista de plugins de check

cmk -m

Acceder al catálogo de plugins de check

cmk -M df

Mostrando una página del manual del check plugin (aquí del plugin df)

Temas especiales

cmk --update-dns-cache

Borra la caché DNS y vuelve a crearla. Para más detalles sobre la caché DNS, consulta 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

Convertir RRDs

cmk --snmpwalk myswitch

Extracción de unpaseo SN MP desde el host myswitch

cmk --snmptranslate

Traducir un walk SNMP

cmk --create-diagnostics-dump

Crear un volcado de diagnóstico de soporte

En algunos modos, dispones de otras opciones específicas, por ejemplo, puedes 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 con el que se ejecute el comando:

Opción Función

cmk -v

Pide a cmk que produzca un volcado detallado de su actividad actual ("verboso")

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 caché, aunque estén desactualizados. Sólo se contacta con el agente si no existe ningún archivo de caché. Los datos del agente en caché del host se encuentran en tmp/check_mk/cache.

cmk --no-tcp

Funciona como --cache, aunque interrumpirá con si no existe un archivo caché o no está actualizado. Así, en cualquier situación puedes suprimir un acceso al agente.

cmk --no-cache

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

cmk --usewalk

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

cmk --debug

Si se produce un error, esta opción garantiza que ya no se interceptará, 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 los plugins de check autoescritos. Si al invocar cmk se produce un error del que se debe informar al servicio de asistencia o de comentarios, repite la solicitud con la opción añadida --debug, y adjunta la traza de Python a tu 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 núcleo de monitorización, Checkmk edición Raw 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, servicios, contactos, grupos de contacto, periodicidades, etc. configurados. A partir de 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

Regenerar la configuración siempre es necesario si se ha modificado el contenido del archivo de configuración en etc/check_mk/conf.d, o de los servicios detectados automáticamente en var/check_mk/autochecks. El Setup guarda un registro de tales cambios y los resalta en la GUI para activarlos. Si te "saltas el Setup" modificando la configuración manualmente o con un script, también tendrás que ocuparte 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 reinicia el núcleo (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 del núcleo sin activarlo.

cmk -N

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

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

OMD[mysite]:~$ cmk -R

Y con la CMC:

OMD[mysite]:~$ cmk -O

4.3. Ejecutar checks

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

Para ello, introduce cmk --check seguido del nombre de un host configurado en la monitorización. Como la opción --check es la opción por defecto de cmk, también puedes omitirla. Además, siempre debes añadir las dos opciones -n (no enviar los resultados al núcleo) y -v (emitir todos los resultados). Encontrarás más información al respecto en la descripción de las opciones que figura más abajo.

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 utilices este comando en hosts de producción monitorizados que utilicen la monitorización de archivos de registro. Los agentes sólo envían mensajes de registro una vez, y puede ocurrir que un cmk -nv manual los "atrape" y que entonces se pierdan de la monitorización. En tal situación, utiliza la opción --no-tcp.

  • Si se está utilizando 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 cuando desarrollas tus propios plugins de check, porque 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 los resultados del check: Sin esta opción sólo verás la salida del propio servicio Check_MK, y no los resultados de los demás 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. Recuperar 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. Así, los datos mostrados coinciden exactamente con los que se entregan al Controlador de agentes (cuando está activado el cifrado TLS) o a un programa de tunelización en caso de que estén configurados los programas de fuentes de datos.

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

Incluso puedes 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 del host (conexión TCP al puerto 6556, sin Controlador de agentes, sin encriptación, sin programa fuente de datos).

4.5. Preparar agentes

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

Para crear los agentes, utiliza la opción -A seguida del nombre de un host (o de 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 se han preparado correctamente. Si no especificas un host, los paquetes se prepararán para todos los hosts.

El comando sólo prepara los paquetes cuando es necesario. Si los paquetes aún están actualizados, el resultado 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

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

4.6. Lista de host

El comando cmk -l simplemente lista los nombres de todos los host configurados en la Configuración:

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

Como los datos se proporcionan "desnudos" y "sin procesar", es fácil utilizarlos en scripts; por ejemplo, se puede construir un bucle con 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 introduces un comando que realice algo con sentido, puede ser realmente útil.

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

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

Introduce varias etiquetas y se enlazarán con "y". El siguiente comando muestra todos los hosts que son monitorizados tanto por agentes SNMP como por agentes Checkmk. Como ningún host cumple esta condición, la salida queda vacía:

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

4.7. Visualizar la configuración del host

Para uno o más host especificados, cmk -D muestra los servicios, tags del host, etiquetas y otros atributos configurados. Como la lista de servicios es tan extensa, puede parecer algo confusa en el terminal. Envía 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 plugins de check

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 unos 2.000 Plugin. Tres opciones del comando cmk te 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 mediante 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 se puede filtrar simplemente con grep si se busca algo concreto:

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 quieres más información sobre un determinado Plugin, se puede llamar a la documentación como página de manual (o página man) con cmk -M:

OMD[mysite]:~$ cmk -M f5_bigip_pool

Esto produce el siguiente resultado:

Example of a check plug-in manual page.

Si utilizas cmk -m sin más opciones, accederás a un catálogo completo de todas las páginas man de los plugins de check.

OMD[mysite]:~$ cmk -m

Puedes navegar interactivamente por este catálogo:

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

5. Configuración sin Configurar

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 eres de la misma opinión, hay buenas noticias: Checkmk se puede configurar completamente utilizando archivos de texto. Y como las acciones del menú Setup no hacen más que procesar (esto mismo) archivos de texto, ni siquiera se trata de una disyuntiva.

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

Si esperas un compendio exhaustivo que cubra la estructura exacta de todos los archivos de configuración que utiliza Checkmk, lamentablemente tendremos que decepcionarte en este punto. La complejidad y diversidad que contienen los archivos de configuración es sencillamente excesiva para describirla por completo en este Manual de usuario.

El siguiente ejemplo muestra un conjunto de parámetros completo para el plugin de check que monitoriza los 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 se puede ver, 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, reglas de la Consola de eventos, perfiles de usuario y muchas más.

Por supuesto, ¡eso no significa que no puedas utilizar archivos de texto como configuración! Si aún no conoces la sintaxis exacta de la tarea de configuración que has elegido, sólo necesitas la herramienta adecuada para ello, y a esta herramienta la llamamos Configuración:

  1. Crear un site de pruebas Checkmk.

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

  3. Localiza el archivo de configuración que se ha modificado como resultado (más información sobre esto más adelante).

  4. Traslada la sintaxis exacta de la sección correspondiente de este archivo a tu sistema productivo.

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

Nota: Cuando se trate de nombres de directorios, archivos o incluso contenidos de archivos, a menudo encontrarás 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 sustituido por Setup en la interfaz web, sigue vivo en el sistema de archivos.

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

Existe un comando práctico para averiguar qué archivo acaba de modificar Setup: find. Invocando "find" con los siguientes parámetros puedes encontrar todos los archivos (-type f) bajo etc/ que han sido modificados 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á destinada únicamente a la alteración manual, 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 demás archivos de "su" directorio .d, si has almacenado allí algunos archivos creados manualmente. Esto significa:

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

  • Si se requiere que la configuración simplemente funcione, pero no sea visible en la Configuración, entonces utiliza tus propios archivos externos a wato/.

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

Bloquear archivos y carpetas

Una razón habitual para crear manualmente archivos de configuración sin la Configuración es la necesidad de importar hosts que se van a monitorizar desde una Base de Datos de Gestión de la Configuración (CMDB). Aquí, a diferencia de los métodos que utilizan la API-REST, creas 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 es puntual, sino que debe repetirse regularmente porque la CMDB es el sistema principal, sería muy poco práctico que tus usuarios hicieran cambios en los archivos utilizando el Setup, ya que 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 la Configuració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. Por supuesto, esto no se aplica al descubrimiento de servicios. Los servicios configurados de un host se almacenan en var/check_mk/autochecks/.

Los atributos de la carpeta también pueden bloquearse. Esto se hace mediante una entrada en el archivo .wato de la carpeta: establece 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 estableces el atributo lock_subfolders en True, impedirás la creación y eliminación de subcarpetas.

El bloqueo de otros archivos -como rules.mk, por ejemplo- no es posible actualmente.

5.4. La sintaxis de los archivos

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

  • Los que Python ejecuta como un script. Entre ellos está, por ejemplo, hosts.mk.

  • Los que Python lee como valores. Entre ellos está, por ejemplo, .wato.

Los archivos ejecutables se reconocen por tener variables que se sustituyen por asignaciones con valores (=). Los demás 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 consejos sobre la sintaxis de Python, te recomendamos que visites un site especializado, por ejemplo:The Python Language Reference.

5.5. Check de los archivos de configuración

Si editas manualmente los archivos de configuración en etc/check_mk/, es conveniente que compruebes la configuración. Puedes hacerlo con la herramienta cmk-update-config, que en realidad sólo se ejecuta automáticamente tras 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