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?

Una vez instalado un sistema Checkmk, se puede configurar y manejar al 100 % a través de la interfaz web. Sin embargo, hay situaciones en las que resulta útil adentrarse 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 con la API-REST

  • al programar y probar tus propias extensiones

  • para poder entender cómo funciona Checkmk internamente

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

En este artículo te presentaremos los comandos, archivos y directorios más importantes de Checkmk.

2. El usuario del site

2.1. Inicio de sesión como usuario del site

Al administrar Checkmk, salvo algunas excepciones, nunca tendrás que trabajar como usuario «root». En este artículo daremos por hecho que has iniciado sesión como usuario del site. Para ello, haz lo siguiente, por ejemplo:

root@linux# su - mysite
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

También es posible realizar un inicio de sesión directo por SSH en un site sin pasar por root. Dado que el usuario del site es un usuario de Linux «completamente normal», solo tienes que asignarle una contraseña (lo que requiere permisos de root, solo una vez, para la configuración):

root@linux# passwd mysite
Enter new Unix password: **********
Retype new Unix password: **********
passwd: password updated successfully
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Después, debería ser posible realizar el inicio de sesión por SSH directamente desde otro ordenador (los usuarios de Windows deberían usar preferiblemente PuTTY para esto). Desde Linux, este inicio de sesión se realiza simplemente con el comando ssh:

user@otherhost:~$ ssh mysite@myserver123
mysite@myserver123's password: **********
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

En el primer inicio de sesión, probablemente recibirás una advertencia sobre una clave de host UNKNOWN. Cuando estés seguro de que, en ese breve instante, ningún atacante se ha apoderado de la dirección IP de tu sistema operativo, puedes verificarlo simplemente con yes.

También puedes trabajar con la línea de comandos en la Appliance Checkmk. Cómo hacerlo se explica en un artículo aparte.

2.2. Perfil y variables del entorno

Para que surjan el menor número posible de problemas, especialmente como resultado de distribuciones individuales o configuraciones diferentes del sistema operativo, el sistema Checkmk garantiza que el usuario del site —y, del mismo modo, todos los procesos de monitorización— dispongan siempre de 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 estos procesos invocan indirectamente (por ejemplo, los scripts de notificación propios de un usuario).

OMD_SITE

El nombre del site (mysite). En los scripts personalizados, siempre se debe usar esta variable en lugar de un nombre de site codificado (por ejemplo, con $OMD_SITE en el shell). De esta forma, el script también se puede usar sin cambios en otros sites.

OMD_ROOT

La ruta del directorio del site (/omd/sites/mysite/).

PATH

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 de Checkmk tienen prioridad; esto es importante, por ejemplo, para el comando mail, del que se proporciona una versión especial con la instalación de Checkmk.

LD_LIBRARY_PATH

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

PERL5LIB

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

LANG

La configuración de idioma para los comandos de 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 predeterminado! Esto también afecta a otras configuraciones regionales. Eliminar LANG es muy importante, ya que varios Plugins estándar de Nagios, por ejemplo, la configuración de idioma alemán, utilizan una coma como separador decimal en lugar de un punto. Por lo tanto, 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 se ordena de forma 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/rabbitmq/sbin:/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
SHELL=/bin/bash
SHLVL=1
TERM=xterm
USER=mysite
_=/usr/bin/env
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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

Con el comando `env` solo puedes ver 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 solo necesitas el ID del proceso (PID). Puedes identificarlo con, por ejemplo, ps ax, pstree -p o top. Con esto, puedes acceder directamente al archivo environ del proceso a través del sistema de archivos /proc. Aquí tienes, a modo de ejemplo, un comando adecuado para el PID 13222:

OMD[mysite]:~$ tr \\0 \\n < /proc/13222/environ | sort
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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/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 quieres personalizar tu shell (el indicador de comando u otros aspectos), puedes hacerlo como de costumbre en el archivo .bashrc. No obstante, las variables del entorno pertenecen a ~/etc/environment, por lo 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 de una instalación de Checkmk con un site llamado mysite y un <version> llamado, por ejemplo, 2.4.0p24.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ísicos reales se encuentran en /opt , pero todas las rutas de datos en Checkmk siempre utilizan /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 el directorio del site. Si tu sitio se llama mysite, lo encontrarás en /omd/sites/mysite/. Como es habitual en Linux, el shell abrevia su propio directorio de inicio con una tilde (~) (o un guion). Dado que nada más al iniciar el inicio de sesión te encontrarás en este directorio, la tilde aparece automáticamente en el indicador de entrada:

OMD[mysite]:~$

Los subdirectorios del directorio del site se muestran en relación con la tilde:

OMD[mysite]:~$ cd var/log
OMD[mysite]:~/var/log$
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Hay varios subdirectorios dentro del directorio del site; puedes verlos con «ll» (alias de «ls -l»):

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.4.0p24.cee/
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Como se puede ver, los directorios bin, include, lib, share y version son enlaces simbólicos. El resto son directorios «normales». Esto refleja la separación entre el software y los datos, tal y como se ha explicado anteriormente. El directorio del software debe ser accesible como un subdirectorio dentro del site, pero se encuentra físicamente en /omd/versions/, y también puede ser utilizado por otros sitios.

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 sitio

Ubicación física

/omd/versions/2.4.0p24.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 root y, por lo tanto, no pueden ser modificados por un usuario del site. Existen los siguientes subdirectorios; los del ejemplo se encuentran físicamente en /omd/versions/2.4.0p24.cee/ y se puede acceder a ellos a través de enlaces simbólicos desde el directorio del site:

bin/

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

lib/

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

share/

La parte principal del software instalado. Hay muchísimos componentes en share/check_mk, entre otros, más de 2000 check plugins.

include/

Contiene archivos de inclusión para programas en C, que deben vincularse a las bibliotecas de lib/. Este directorio no es importante y solo se usa si quieres compilar programas en C tú mismo.

El enlace simbólico version es una «parada intermedia» y sirve como punto de retransmisión para la versión que usa el site. Durante una actualización de software, se switchará de la versión antigua a la nueva. No obstante, no intentes realizar una actualización manualmente modificando el enlace, ya que una actualización requiere una serie de pasos adicionales que, de lo contrario, fallarán.

3.4. Datos

Los datos reales de un sitio se encuentran en los subdirectorios restantes del directorio del site. Sin excepción, estos pertenecen al usuario del site. El directorio del site en sí también está incluido. Checkmk no almacena nada aparte de los directorios que aparecen ahí. Puedes crear tus propios archivos y directorios sin problema aquí, en los que se pueden guardar pruebas, datos descargados, copias de archivos de registro, etc., según desees.

Se han predefinido los siguientes directorios:

etc/

Archivos de configuración.
Estos se modifican mediante acciones en 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/. Esto se basa en el mismo patrón que se encuentra en todos los sistemas Linux en /etc/init.d/. Sin embargo, desaconsejamos modificar este script, ya que puede provocar conflictos durante una actualización de software. No es necesario realizar cambios en 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 hosts y servicios, se puede acumular un volumen inmenso de datos, de los cuales la mayor parte son los valores medidos 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 sistema de archivos «tmpfs». Se trata de un sistema de archivos que gestiona los datos en la RAM, por lo que no genera ninguna E/S de disco. ¡Al reiniciar el ordenador se pierden todos los datos de «tmp/»! Sin embargo, detener e iniciar el site no borra los datos. Los 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 uses tmp/ para guardar tus propios datos, ya que este directorio está montado en la RAM, donde el espacio es bastante limitado. Guarda tus propios datos directamente en el directorio del site, o en tu propio subdirectorio dentro de él.

local/

Extensiones propias.
En local/ se encuentra una jerarquía «sombra» de los directorios del software bin/, lib/ y share/. Estos están pensados para tus propios cambios o ampliaciones del software. También se aplica aquí: Bajo ninguna circunstancia guardes archivos de prueba, archivos de registro, copias de seguridad ni nada que no pertenezca allí, en local/. Checkmk podría intentar ejecutar estos archivos como parte del software. Del mismo modo, en una supervisión distribuida, los datos también se duplicarán en todos los sitios remotos.

3.5. Modificar y ampliar Checkmk: los archivos locales

Tip

Algunas afirmaciones realizadas en esta sección sobre la prioridad de los archivos locales (específicos del sitio) frente a los archivos con el mismo nombre en el directorio del software ya no son correctas. Actualizaremos las secciones pertinentes en breve.

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

Con el práctico comando «tree» puedes obtener rápidamente una vista general de la estructura de «~/local/». La opción «-L 3» limita la profundidad a 3:

OMD[mysite]:~$ tree -L 3 local
local
├── bin
├── lib
│   ├── apache
│   ├── check_mk -> python3/cmk
│   ├── nagios
│   │   └── plugins
│   ├── python
│   └── python3
│       ├── cmk
│       └── cmk_addons
└── 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
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Todos los directorios del nivel más bajo están integrados 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 sitio en ~/bin/, ~/lib/ o ~/share/).

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

En este caso, si hay nombres idénticos, el archivo de ~/local/ siempre 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.

En cuanto al punto 3 anterior, si no sabes exactamente a qué servicio se aplica el cambio, simplemente reinicia todo el site con omd restart.

3.6. Archivos de registro

En Checkmk, como ya se ha descrito, los archivos de registro se almacenan en el directorio de datos var/. Allí se pueden encontrar los archivos de registro de los componentes relevantes. A continuación se muestra una versión resumida de la salida de una de las ediciones comerciales:

OMD[mysite]:~$ ll -R var/log/
var/log/:
total 1268
drwxr-x--- 2 mysite_cce mysite_cce   4096 May 19 15:20 agent-receiver/
-rw------- 1 mysite_cce mysite_cce  13646 Aug 14 12:02 alerts.log
drwxr-x--- 2 mysite_cce mysite_cce   4096 May 19 15:20 apache/
drwx------ 2 mysite_cce mysite_cce   4096 May 19 15:20 automation-helper/
-rw------- 1 mysite_cce mysite_cce 379995 Aug 14 14:35 cmc.log
-rw------- 1 mysite_cce mysite_cce  57808 Aug 14 12:03 dcd.log
-rw------- 1 mysite_cce mysite_cce      0 May 19 16:05 diskspace.log
-rw------- 1 mysite_cce mysite_cce 529922 Aug 14 18:12 licensing.log
-rw------- 1 mysite_cce mysite_cce   8395 Aug 14 12:02 liveproxyd.log
-rw-rw---- 1 mysite_cce mysite_cce     62 Aug 14 18:13 liveproxyd.state
drwxr-x--- 2 mysite_cce mysite_cce   4096 May 19 15:19 mkeventd/
-rw------- 1 mysite_cce mysite_cce  37345 Aug 14 12:02 mkeventd.log
-rw------- 1 mysite_cce mysite_cce  63829 Aug 14 14:35 mknotifyd.log
-rw-rw---- 1 mysite_cce mysite_cce    564 Aug 14 18:13 mknotifyd.state
-rw------- 1 mysite_cce mysite_cce  30060 Aug 14 14:35 notify.log
-rw------- 1 mysite_cce mysite_cce  32202 Aug 14 12:02 redis-server.log
-rw------- 1 mysite_cce mysite_cce      0 May 19 15:20 rrdcached.log
-rw------- 1 mysite_cce mysite_cce  21132 Sep  4 18:43 security.log
drwx------ 2 mysite_cce mysite_cce   4096 May 19 15:20 ui-job-scheduler/
-rw------- 1 mysite_cce mysite_cce  25871 Sep  4 09:17 update.log
-rw------- 1 mysite_cce mysite_cce   2486 Aug 14 12:12 web.log

var/log/agent-receiver:
total 264
-rw-r--r-- 1 mysite_cce mysite_cce 233243 Jun 18 10:25 access.log
-rw-r--r-- 1 mysite_cce mysite_cce      0 May 19 15:20 agent-receiver.log
-rw-r--r-- 1 mysite_cce mysite_cce  27546 Aug 14 12:02 error.log
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

En la interfaz web puedes configurar fácilmente el alcance de los datos que se deben escribir en los archivos de registro buscando en Setup > General > Global settings todas las entradas con logging:

List of global settings for logging.
La configuración global de registro en una edición comercial
Important

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

4. El comando cmk

Junto con el comando omd, que sirve para iniciar y detener sitios, para la configuración básica de componentes y para iniciar una actualizació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 muy detallada, a la que se puede acceder con la opción --help:

OMD[mysite]:~$ cmk -h
WAYS TO CALL:
 cmk  --automation [COMMAND...]          Internal helper to invoke Check_MK actions
 cmk  --check [HOST [IPADDRESS]]         Check all services on the given HOST
 cmk  --check-discovery HOSTNAME         Check for not yet monitored services
...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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 válido para el comando en sí también lo es para sus opciones: Cuanto menos haya que escribir, más rápido va. No para todas las opciones, pero para aquellas que se necesitan a menudo, existe por lo tanto un formulario corto además del formulario largo. Aunque el formulario largo es más intuitivo, especialmente para principiantes (check_mk --list-hosts) que el formulario corto (cmk -l), usaremos el formulario corto en el Manual de usuario. En caso de duda, siempre puedes consultar la ayuda del comando. Echar un vistazo más detallado a la ayuda del comando es una buena idea en cualquier caso, 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 te ofrecemos 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 core

cmk -O

Cargar una nueva configuración en el core

cmk -U

Crear una nueva configuración para el core

cmk -N

Mostrar la configuración de Nagios del core

Checks

cmk myserver123

Ejecutar checks en el host myserver123

Servicios

cmk -I myserver123

Ejecutar un descubrimiento de servicios

cmk --check-discovery myserver123

Ejecuta la comprobación de descubrimiento en el host, que busca servicios nuevos y desaparecidos, así como nuevas host labels. Cuando se produce un cambio, el host queda «marcado» mediante la creación de un archivo con el nombre del host en ~/var/check_mk/autodiscovery, pero solo si la actualización automática de la configuración de servicios está habilitada en Checkmk (en el conjunto de reglas «Periodic service discovery»).

Agentes

cmk -d myserver123

Recuperación de la salida del agente

cmk -A myserver123

Agentes de horneado

Diagnósticos

cmk -l

Lista de hosts

cmk --list-tag mytag

Lista de 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

Listado de check plugins

cmk -m

Acceder al catálogo de check plugins

cmk -M df

Mostrar la página del manual del check plugin (en este caso, del plugin df)

Temas especiales

cmk --update-dns-cache

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

cmk --cleanup-piggyback

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

cmk -P

Gestión de MKP

cmk --snmpwalk myswitch

Obtener un recorrido SNMP desde el host myswitch

cmk --snmptranslate

Traducir un recorrido SNMP

cmk --create-diagnostics-dump

Crear un volcado de diagnóstico de soporte

En algunos modos, tienes a tu disposición opciones específicas adicionales; por ejemplo, puedes limitar el descubrimiento de servicios a determinadas comprobaciones, como la comprobación df con el comando cmk -I --detect-plugins=df myserver123.

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

Opción Función

cmk -v

Solicita a cmk que genere un volcado detallado de su actividad actual («verboso»)

cmk -vv

Lo mismo que lo anterior, pero con aún más detalles: «very verbose»

cmk --cache

La información se lee de los archivos de caché, incluso si están desactualizados. Solo se realiza el contacto con el agente si no existe ningún archivo de caché. Los datos del agente almacenados en caché del host se pueden encontrar en ~/tmp/check_mk/cache.

cmk --no-tcp

Funciona como --cache, pero se interrumpirá si falta un archivo de caché o si este no está actualizado. Así, en cualquier situación puedes impedir el acceso al agente.

cmk --no-cache

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

cmk --usewalk

Para hosts SNMP: en lugar de acceder al agente SNMP, esto utiliza un recorrido SNMP almacenado, que se ha obtenido 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 en su totalidad. Esto puede ser información importante para el desarrollador, ya que muestra la ubicación exacta del programa en la que se encuentra el error. También será muy útil para localizar errores en los check plugins escritos por ti mismo. Si al invocar cmk se encuentra un error que debe ser reportado al soporte técnico o a través de los comentarios, repite la solicitud añadiendo la opción --debug y adjunta el rastreo de Python a tu correo electrónico.

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

4.2. Comandos para el core de monitorización

Las ediciones comerciales utilizan el Checkmk Micro Core (CMC) como núcleo de monitorización, CRE Checkmk Community utiliza Nagios. Una tarea importante del cmk es la generación de un archivo de configuración que sea legible para el núcleo, y que contenga todos los hosts, servicios, contactos, grupos de contactos, periodos de tiempo, etc. configurados. A partir de esta información, el núcleo sabe qué comprobaciones debe ejecutar y qué objetos debe proporcionar a la GUI a través de Livestatus.

Tanto para Nagios como para el CMC, es fundamental que el número de hosts, servicios y otros objetos se mantenga siempre estático durante el funcionamiento, y que este número solo pueda modificarse mediante la generación de una nueva configuración, seguida de una recarga del core. Con Nagios, esto requiere reiniciar el core. El CMC cuenta con una función muy eficiente para recargar su configuración durante el proceso activo.

La siguiente tabla destaca las diferencias importantes entre las configuraciones de ambos cores:

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 comandos de define

Archivo binario comprimido y optimizado

Activación

Reinicio del core

Comando del core para recargar la configuración

Comando

cmk -R

cmk -O

Siempre es necesario regenerar la configuración si se ha modificado el contenido de los archivos 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 dichos cambios y los resalta en la GUI como cambios pendientes de activación. Los siguientes comandos están disponibles para la activación a través de la línea de comandos:

Opción Función

cmk -R

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

cmk -O

Genera la configuración para el core y la carga sin reiniciar el procesamiento activo (análogo a omd reload core). Esta es la variante recomendada con el CMC. Atención: con Nagios como core, esta opción también funciona, pero puede provocar fugas de memoria y otras inestabilidades. Aparte de eso, esta opción no realiza en ningún caso una recarga genuina, sino que, por así decirlo, detiene y reinicia el proceso internamente.

cmk -U

Genera la configuración para el core sin activarla.

cmk -N

Con fines de diagnóstico, esto 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 el nombre del host simplemente para ver la configuración del host (p. ej., cmk -N myserver123).

4.3. Ejecución de 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 de inmediato, sin tener que preocuparte por el core de monitorización ni por la GUI.

Para ello, introduce cmk --check seguido del nombre del host configurado en la monitorización. Dado que la opción --check es la opción predeterminada de cmk, también puedes omitirla. Además, siempre debes añadir las dos opciones -n (no enviar resultados al core) y -v (mostrar todos los resultados). Más información al respecto en la descripción de las opciones a continuación.

OMD[mysite]:~$ cmk -nv myserver123
+ FETCHING DATA
Get piggybacked data
CPU load             15 min load: 1.53, 15 min load per core: 0.19 (8 cores)
CPU utilization      Total CPU: 10.02%
Check_MK Agent       Version: 2.4.0p24, OS: linux, ...
Disk IO SUMMARY      Read: 412 kB/s, Write: 1.15 MB/s, Latency: 57 microseconds
Filesystem /         Used: 61.61% - 287 GiB of 466 GiB, trend per 1 day 0 hours: +671 MiB, trend per 1 day 0 hours: +0.14%, Time left until disk full: 272 days 23 hours
Interface 2          [tun0], (up), Speed: 10 GBit/s, In: 511 B/s (<0.01%), Out: 184 B/s (<0.01%)
Kernel Performance   Process Creations: 67.64/s, Context Switches: 8509.18/s, Major Page Faults: 2.18/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
Number of threads    2684 (warn/crit at 2000/4000)(!), Usage: 2.13%
TCP Connections      Established: 36
Temperature Zone 0   Temperature: 25.0 °C
Uptime               Up since 2025-09-08 08:54:55, Uptime: 8 hours 8 minutes
[agent] Success, [piggyback] Success (but no data found for this host), execution time 2.1 sec | execution_time=2.070 user_time=0.160 system_time=0.000 ...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Más consejos:

  • No uses este comando en hosts de producción supervisados que utilicen la monitorización de archivos de registro. Los mensajes de registro solo se envían una vez por los agentes, y puede ocurrir que un comando manual «cmk -nv» los «capture» y que, por lo tanto, se pierdan de la monitorización. En tal situación, utiliza la opción «--no-tcp».

  • Si se utiliza Nagios para el core y se omite -n, el efecto será una actualización inmediata de los resultados de la check en el core y en la GUI.

  • El comando es útil cuando desarrollas tus propios check plugins, ya que permite realizar una prueba más rápida que utilizando la GUI. Si la comprobación falla y devuelve un UNKNOWN, la opción --debug puede ayudar a localizar el 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, solo verás la salida del propio servicio «Check_MK», y no los resultados de los demás servicios.

-n

Simulación: Los resultados no se pasan al core, el contador de rendimiento no se actualiza.

--detect-plugins=df,uptime

Restringe la ejecución a los check plugins df y uptime. En el caso de los hosts SNMP, solo se recuperarán los datos necesarios para estos. Esta opción es útil si desarrollas tus propios check plugins y solo 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 manera que con la monitorización. No se validan ni se procesan. Por lo tanto, los datos mostrados coinciden exactamente con los datos que se envían al Controlador de agentes (cuando el cifrado TLS está habilitado) o a un programa de túnel en caso de que se hayan configurado programas de origen de datos.

OMD[mysite]:~$ cmk -d myserver123
<<<check_mk>>>
Version: 2.4.0p24
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
OSType: linux
OSName: Ubuntu
OSVersion: 24.04
OSPlatform: ubuntu
...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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án los ajustes heredados para el host (conexión TCP al puerto 6556, sin Controlador de agentes, sin cifrado, sin programa de origen de datos).

4.5. Instalación de agentes

En las ediciones comerciales también puedes hornear los agentes desde la línea de comandos, tal y como lo 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 instalar los agentes, utiliza la opción «-A» seguida del nombre del host (o varios):

OMD[mysite]:~$ cmk -Av myserver123
Baking packages for targets myserver123:
...
Baking...linux_deb:baking...linux_rpm:baking...solaris_pkg:baking...windows_msi:baking...linux_tgz:baking...solaris_tgz:baking...aix_tgz:baking
...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

El resultado muestra que los paquetes del agente disponibles para el host myserver123 se han actualizado correctamente. Si no especificas un host, los paquetes se actualizarán para todos los hosts.

El comando solo se ejecuta cuando es necesario. Si los paquetes siguen estando actualizados, la salida tendrá un aspecto similar a este:

OMD[mysite]:~$ cmk -Av myserver123
Baking packages for targets myserver123:
...
myserver123..linux_deb: up to date (not baking)...linux_rpm: up to date (not baking)...solaris_pkg: up to date (not baking)...windows_msi: up to date (not baking)...linux_tgz: up to date (not baking)...solaris_tgz: up to date (not baking)...aix_tgz: up to date (not baking)...
...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Aún puedes forzar la compilación con la opción -f (force).

4.6. Lista de hosts

El comando «cmk -l» simplemente muestra la lista de los nombres de todos los hosts configurados en el archivo «Setup»:

OMD[mysite]:~$ cmk -l
myserver123
myserver124
myserver125
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Como los datos se proporcionan «sin formato» y «sin procesar», es fácil usarlos en scripts – por ejemplo, se puede crear un bucle que recorra todos los nombres del host:

OMD[mysite]:~$ for host in $(cmk -l) ; do echo "Host: $host" ; done
Host: myserver123
Host: myserver124
Host: myserver125
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si, en lugar de echo, introduce un comando que haga algo útil, esto puede ser realmente práctico.

La llamada a cmk --list-tag también muestra los nombres de los hosts, pero además ofrece la posibilidad de filtrar por tags del host. Solo tienes que introducir un tag del host y obtendrás todos los hosts que tengan ese tag. El siguiente ejemplo muestra la lista de todos los hosts sometidos a la monitorización por SNMP:

OMD[mysite]:~$ cmk --list-tag snmp
myswitch01
myswitch02
myswitch03
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Introduce varias etiquetas y se enlazarán con «AND». El siguiente comando muestra todos los hosts supervisados tanto por SNMP como por el agente Checkmk. Como ningún host cumple esta condición, la salida permanece vacía:

OMD[mysite]:~$ cmk --list-tag snmp checkmk-agent
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

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

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

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              {}
...
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

4.8. Información sobre los check plugins

Checkmk ofrece de serie un gran número de check plugins listos para usar. En cada versión se añaden algunos nuevos, y la versión 2.4.0 ya incluye más de 2000 plugins. Tres opciones del comando cmk te permiten acceder a información sobre estos plugins.

cmk -L genera una lista con todos los Plugins, incluyendo su nombre, tipo y una descripción. Al mismo tiempo, también se mostrarán los Plugins que hayas escrito tú mismo y que estén guardados en ~/local/.

Los siguientes son los tipos posibles:

agent

Evalúa datos de plugins de agente o agentes especiales. El agente se recupera (normalmente) a través del puerto TCP 6556.

snmp

Se encarga de la monitorización de dispositivos a través de SNMP.

active

Llama a una comprobación activa. Esto incluye Plugins de terceros compatibles con Nagios para los que Checkmk solo adopta la configuración.

Por supuesto, la lista se puede filtrar fácilmente con grep si buscas 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_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
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si quieres más información sobre un Plugin concreto, puedes consultar la documentación en forma de página de manual con cmk -M:

OMD[mysite]:~$ cmk -M f5_bigip_pool
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Esto genera el siguiente resultado:

Example of a check plug-in manual page.

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

OMD[mysite]:~$ cmk -m
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Puedes navegar de forma interactiva por este catálogo:

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

5. Archivos de configuración

Conocer la ubicación y la estructura de los archivos de configuración suele ayudar a resolver problemas e identificar errores, por ejemplo, en extensiones descargadas de Checkmk Exchange o programadas por uno mismo.

La comparación entre Setup y los archivos de configuración de este capítulo no pretende fomentar la modificación de los archivos de configuración mediante scripts. Si es necesario automatizar los cambios de configuración, esto se puede hacer de forma segura y sin efectos secundarios utilizando la API-REST.

Important

No realices ningún cambio en los archivos de configuración a menos que un representante del soporte técnico de Checkmk te lo haya indicado explícitamente, porque… ¡Hay peligros!

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

Aquí no. Los archivos de configuración los definen los componentes que los escriben y leen. En última instancia, solo mirando el código fuente y las pruebas asociadas se puede descubrir la estructura de la configuración almacenada en el sistema de archivos.

Ten en cuenta también que los formatos de los archivos de configuración pueden cambiar entre versiones de parche. En este caso, las rutinas de migración garantizan la conversión de los formatos de datos modificados.

Además, las unidades utilizadas pueden diferir entre la visualización en la interfaz de usuario (Setup) y el almacenamiento en el archivo de configuración. Esto se aplica, por ejemplo, a la visualización de intervalos de tiempo o temperaturas.

El siguiente ejemplo muestra un conjunto completo de parámetros para el check plugin que realiza la monitorización de los sistemas de archivos en Checkmk (aquí en una versión anterior). Debido al gran número de parámetros, la captura de pantalla se ha dividido en dos partes y se ha configurado con una fuente pequeña:

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

La sección correspondiente en el archivo de configuración real tiene este aspecto (formateada de forma un poco más ordenada):

{ '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, aquí hay más de 10 parámetros diferentes, cada uno de los cuales sigue su propia lógica. Algunos se configuran utilizando números de coma flotante (0.8), otros utilizando números enteros (24), algunos utilizando palabras clave ('onlow'), otros utilizando valores booleanos (True) y, por último, algunos utilizando tuplas como ((5.0, 10.0)).

Este ejemplo muestra solo uno de los más de 2000 Plugins. Además, Checkmk reconoce otras configuraciones como parámetros de check: piensa, por ejemplo, en intervalos de tiempo, reglas de la Consola de eventos, perfiles de usuario y mucho más.

Tip

En lo que respecta a los nombres de los directorios de archivos, los archivos o incluso el contenido de los archivos, a menudo encontrarás la abreviatura wato. WATOes la abreviatura de Web Administration Tool, la herramienta de configuración de Checkmk hasta la versión 1.6.0, incluida. A partir de la versión 2.0.0, las funciones de WATO han pasado a estar en el menú Setup, o Setup para abreviar. Aunque WATO ha sido sustituido por completo por Setup en la interfaz web, sigue presente en los nombres de archivos y directorios.

5.2. ¿Qué archivo de configuración se está utilizando actualmente?

Hay un comando muy útil para averiguar qué archivo acaba de cambiar Setup: find. Si lo ejecutas con los siguientes parámetros, encontrarás todos los archivos (-type f) en ~/etc/ que se han modificado en el último minuto (-mmin -1):

OMD[mysite]:~$ find ~/etc/ -mmin -1 -type f
/omd/sites/mysite/etc/check_mk/conf.d/wato/rules.mk
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

La base de la configuración es siempre el directorio ~/etc/check_mk/. Este se divide en varios dominios, la mayoría de los cuales se refieren a una funcionalidad específica. Cada dominio tiene un directorio que termina en .d, desde el cual se leen automáticamente todos los archivos que terminan en .mk en orden alfanumérico.

5.3. Archivos de instalación y configuración

Dentro de los directorios de configuración de .d/, siempre hay un subdirectorio llamado wato, por ejemplo, ~/etc/check_mk/conf.d/wato/. El Setup normalmente solo lee y escribe en este directorio. Sin embargo, el servicio responsable del directorio de configuración también lee los demás archivos de su «propio» directorio .d.

Si hay archivos fuera del directorio wato/, o bien se crearon manualmente en algún momento con el objetivo de realizar cambios que son efectivos pero no visibles en el Setup, o bien los crearon otros componentes de Checkmk.

Archivos y carpetas bloqueados

Varios mecanismos de automatización que funcionan dentro de Checkmk o acceden a Checkmk desde fuera (por ejemplo, a través de la API-REST) pueden realizar cambios de configuración. En algunos casos, es deseable que los hosts y las carpetas creados de esta manera sean visibles y verificables en Setup, pero no es deseable que los usuarios «humanos» realicen cambios. En tales casos, se pueden bloquear los hosts o las carpetas.

Puedes reconocer un archivo de hosts.mk de un host bloqueado por la línea con el atributo «lock»:

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

_lock = True

Al abrir una carpeta de este tipo en el Setup, aparecerá el siguiente mensaje encima de la lista de hosts:

“Message indicating that editing hosts function in the folder is locked.”

Todas las acciones que requieran un cambio en el archivo hosts.mk quedan entonces bloqueadas en la GUI. Por cierto, esto no afecta al descubrimiento de servicios. Los servicios configurados de un host se almacenan en ~/var/check_mk/autochecks/.

Las propiedades de las carpetas también se pueden bloquear. Esto se hace mediante una entrada en el archivo .wato de la carpeta. En el diccionario del archivo, la clave lock tendrá entonces el valor True:

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

Si el valor de la clave lock_subfolders se establece en True, se impide la creación y eliminación de subcarpetas.

5.4. Contenido y sintaxis de los archivos

Los archivos de configuración pueden ser archivos de texto que se pueden ver en cualquier editor, o archivos binarios que requieren herramientas especiales. Los archivos de texto siguen la sintaxis de Python, pero hay diferencias en cómo los maneja Checkmk:

  • Los archivos que contienen asignaciones de variables (=) se ejecutan como un script, p. ej., hosts.mk.

  • Los archivos que solo contienen valores simples o diccionarios de Python se leen como variables, p. ej., .wato.

Siempre se utiliza UTF-8 para la codificación de caracteres. Si necesitas realizar modificaciones por cualquier motivo, asegúrate de que el archivo modificado siga pudiendo ser analizado por Python.

Los archivos binarios tienen la extensión .pb, que significa Protocol Buffers y a veces también se denomina Protobuf. Este formato, desarrollado por Google para serializar configuraciones y mensajes, se puede escribir y leer con una sobrecarga mínima. Sin embargo, se necesitan herramientas especiales para verlo. El paquete Checkmk incluye protoc, que realiza muchas tareas sencillas. Por ejemplo, lo siguiente ofrece una visión «en bruto» del último estado de un CMC detenido:

OMD[mysite]:~$ cat ~/var/check_mk/core/state.pb | protoc --decode_raw | less
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Para un análisis más detallado de los archivos Protobuf, puedes usar protoscope.

5.5. Comprobación de los archivos de configuración

Si sospechas que los archivos de configuración pueden estar dañados (por ejemplo, debido a un soporte de datos defectuoso), puedes hacer que los checken. Checkmk proporciona el programa cmk-validate-config para este fin, que, a diferencia de cmk-update-config, que se ejecuta durante una actualización de software, no realiza ningún cambio, como la migración de formatos de datos. cmk-validate-configcomprueba tanto la sintaxis (paréntesis, asignaciones correctas, etc.) como, en parte, la semántica (tipos de datos utilizados y la presencia de ciertas claves). Si el programa encuentra errores de sintaxis, se mostrará el primer archivo dañado:

OMD[mysite]:~$ cmk-validate-config
Cannot read in configuration file etc/check_mk/conf.d/wato/rules.mk: invalid syntax (rules.mk, line 42)
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si los archivos checkados están OK, se mostrará una lista de todos los archivos examinados:

OMD[mysite]:~$ cmk-validate-config
The following mk files have passed the validation:
  etc/check_mk/multisite.d/wato/roles.mk...................... Passed
  etc/check_mk/conf.d/wato/groups.mk.......................... Passed
  etc/check_mk/multisite.d/wato/groups.mk..................... Passed
  etc/check_mk/conf.d/wato/passwords.mk....................... Passed
  etc/check_mk/conf.d/wato/notifications.mk................... Passed
  etc/check_mk/multisite.d/wato/tags.mk....................... Passed
  etc/check_mk/multisite.d/sites.mk........................... Passed
  etc/check_mk/multisite.d/broker_connections.mk.............. Passed
  etc/check_mk/multisite.d/wato/user_connections.mk........... Passed
  etc/check_mk/multisite.d/wato/users.mk...................... Passed
  etc/check_mk/conf.d/wato/contacts.mk........................ Passed
  etc/check_mk/multisite.d/wato/configuration_bundles.mk...... Passed
  etc/check_mk/conf.d/wato/timeperiods.mk..................... Passed
  etc/check_mk/conf.d/wato/rules.mk........................... Passed
  etc/check_mk/conf.d/wato/opentelemetrytest/rules.mk......... Passed
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Last modified: Mon, 02 Feb 2026 13:33:08 GMT via commit 6a4536036
En esta página