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. Conceptos básicos

Docker te permite instalar Checkmk en un entorno de contenedores ligero y autónomo. En este artículo, te guiaremos a través de la configuración de Checkmk en Docker y te mostraremos algunos trucos que pueden facilitarte la vida con Checkmk en Docker.

Tip

Checkmk proporciona imágenes oficiales de Docker, pero no tiene control sobre las características del sistema host en el que configuras los contenedores correspondientes. Aquí se aplican las ventajas y desventajas conocidas de los entornos de contenedores. En casos especiales, pueden surgir problemas de rendimiento inesperados, por ejemplo, si el kernel del sistema host es significativamente más nuevo o más antiguo que el kernel esperado por la instalación de Checkmk en el contenedor. En tales casos, puede ser necesario realizar ajustes adicionales en sysctl.

2. Requisitos previos

Para ejecutar los comandos que se muestran en este artículo, necesitarás una instalación operativa de Docker Engine y tener unos conocimientos básicos sobre cómo utilizarlo.

Important

El uso de Checkmk basado en las imágenes que se presentan aquí solo es compatible con Docker. Otros entornos de contenedores compatibles con Docker pueden funcionar, pero no son compatibles con Checkmk. En tales casos, los usas bajo tu propia responsabilidad y no se recomiendan para entornos de producción.

3. Cómo conseguir una imagen de Checkmk

Para que te resulte lo más fácil posible usar Checkmk como contenedor, te ofrecemos imágenes independientes para cada edición de Checkmk de diversas formas. Las imágenes de las diferentes fuentes para una misma edición son idénticas.

CRE Comunidad de Checkmk

Docker Hub

Página de descarga de Checkmk

 — 

 — 

CSE Checkmk Pro

 — 

Página de descarga de Checkmk

Portal de clientes de Checkmk

Registro Docker de Checkmk

CSE Checkmk Ultimate

Docker Hub

Página de descarga de Checkmk

Portal de clientes de Checkmk

 — 

CME Checkmk Ultimate con multitenencia

Docker Hub

Página de descarga de Checkmk

Portal de clientes de Checkmk

 — 

Cuando se inicia una de estas imágenes por primera vez, no solo se ejecutará el contenedor correspondiente, sino que también se configurará y se iniciará un site de monitorización llamado cmk. Este estará listo para realizar el inicio de sesión inmediatamente con el usuario cmkadmin.

CEE Las imágenes oficiales también están disponibles de forma gratuita en varias plataformas para las ediciones comerciales Checkmk Ultimate y Checkmk Ultimate con multitenencia. Estas ediciones de Checkmk se pueden probar con todas las funciones como parte de un periodo de prueba de 30 días. Si no adquieres una licencia para la edición seleccionada, pasarás al estado de licencia «Gratis» una vez que expire el periodo de prueba. Con este estado, podrás realizar la monitorización de hasta 750 servicios y estarás limitado a un único site.

3.1. Descargar imágenes automáticamente al iniciar un contenedor por primera vez

Si hay conexión a internet, Docker Engine busca automáticamente en Docker Hub el nombre de la imagen que especifiques al crear un contenedor. Para las ediciones cuyas imágenes estén disponibles en Docker Hub según la tabla anterior, puedes pasar directamente a la sección Iniciar un contenedor de Checkmk.

CEE

Las imágenes para Checkmk Pro se almacenan en el Registro Docker de Checkmk. Aquí, Docker Engine puede encontrar y descargar automáticamente las imágenes basándose en su nombre completo y la ruta del archivo. Sin embargo, primero debes iniciar sesión en el registro con tus credenciales del portal de clientes de Checkmk. Para iniciar sesión, utiliza el almacén de credenciales de Docker o el siguiente comando:

root@linux# docker login registry.checkmk.com --username myusername
Password:
Login Succeeded
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Una vez que hayas iniciado sesión correctamente, Docker Engine puede acceder a las imágenes de Checkmk a través del registro. Para ello, especifica la ruta completa a la imagen deseada al iniciar el contenedor Docker. A continuación, Docker Engine comprueba si la imagen ya está disponible localmente y, si no es así, la descarga automáticamente.

Para la versión 2.4.0p24 de Checkmk Pro, por ejemplo, especifica la ruta completa de la imagen al iniciar el contenedor de la siguiente manera: registry.checkmk.com/enterprise/check-mk-enterprise:2.4.0p24

3.2. Descarga y preparación manual de imágenes

Las imágenes también se pueden descargar como archivos comprimidos y guardar en el sistema donde quieras iniciar el contenedor Docker. Esto puede ser útil, por ejemplo, si tu host de Docker no tiene conexión a internet cuando se inicia el contenedor Docker. Descarga la imagen deseada y transfiere el archivo a tu host de Docker usando el método que prefieras. A continuación, usa docker load -i para que el archivo de imagen esté disponible para Docker Engine en tu sistema:

root@linux# docker load -i check-mk-*.tar.gz
346f14bf17b9: Loading layer [==================================================>]  80.41MB/80.41MB
87334b162001: Loading layer [==================================================>]  2.048kB/2.048kB
4c6fcf6a2c87: Loading layer [==================================================>]  335.7MB/335.7MB
1ba0c3ef2749: Loading layer [==================================================>]  279.7MB/279.7MB
bebf82ffc112: Loading layer [==================================================>]  1.291GB/1.291GB
88b55249828a: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: checkmk/check-mk-raw:2.4.0p24
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

4. Iniciar un contenedor de Checkmk

Puedes iniciar las imágenes de Checkmk con docker compose y un archivo Compose, o con docker container run, especificando un conjunto de parámetros. La opción que elijas dependerá de tu caso de uso específico.

4.1. Iniciar condocker compose

El siguiente ejemplo muestra la variante que utiliza docker compose, con la que, con solo un poco de configuración, es posible iniciar contenedores adicionales en paralelo.

En el archivo compose.yaml, utilizas parámetros para describir las propiedades deseadas del contenedor Docker que se va a iniciar. Aquí también se pueden describir varios contenedores, que luego se inician juntos.

El siguiente ejemplo de un archivo compose.yaml adecuado muestra los parámetros para iniciar un único contenedor de Checkmk. A continuación se explican los parámetros incluidos y sus valores.

compose.yaml
services:
  checkmk:
    image: "checkmk/check-mk-raw:2.4.0-latest"
    container_name: "monitoring"
    environment:
      - CMK_PASSWORD=mypassword
      - TZ=Europe/Berlin
    volumes:
      - monitoring:/omd/sites
    tmpfs:
      - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
    ports:
      - 8080:5000
      - 8000:8000
    restart: always

volumes:
  monitoring:
Copiar el contenido del archivo al portapapeles
¡Contenido del archivo copiado correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Más información sobre las opciones utilizadas:

Opción Descripción

checkmk:

Nombre descriptivo definido por ti para el servicio Docker en el que se va a iniciar el contenedor Docker de Checkmk.

image: "checkmk/check-mk-raw:2.4.0-latest"

Nombre de la imagen de Checkmk en el formato <repository>:<tag>.

Puedes consultar los nombres de las imágenes existentes con el comando docker images.

Si obtienes la imagen del registro Docker de Checkmk, debes especificarla con su ruta completa.

container_name: "monitoring"

Nombre descriptivo elegido por ti para el contenedor Docker. Este nombre debe ser único y no se puede volver a usar en el nodo Docker.

environment:
  - CMK_PASSWORD=mypassword
  - TZ=Europe/Berlin

Usa la variable del entorno `CMK_PASSWORD` para especificar la contraseña de inicio de sesión como usuario `cmkadmin` en el site de Checkmk. Puedes cambiar esta contraseña en cualquier momento ejecutando `cmk-passwd cmkadmin` como usuario del site dentro del contenedor.

 

TZ es la zona horaria que has configurado para el contenedor. Si omites esta configuración, el contenedor (y, por lo tanto, tu site Checkmk) utilizará automáticamente UTC hasta que cambies la configuración en el contenedor.

Si no quieres configurar la zona horaria explícitamente, también puedes adoptar la configuración de hora del host de Docker. Para ello, monta el archivo /etc/localtime ubicado en el host como un volumen en el contenedor Docker. Sin embargo, recomendamos usar la variable del entorno TZ, ya que esto evita posibles problemas de compatibilidad dependientes de la plataforma al usar /etc/localtime.

volumes:
  - monitoring:/omd/sites

Esta especificación vincula los datos del sitio en este contenedor a una ubicación persistente en el sistema de archivos del nodo Docker. El volumen denominado monitoring se monta en el contenedor en la ruta /omd/sites. Los volúmenes son gestionados por Docker Engine y se pueden ver o modificar con docker volume. Si se elimina el contenedor, los datos no se pierden.

tmpfs:
  - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000

Para un rendimiento óptimo, puedes usar un sistema de archivos temporal directamente en la RAM del nodo Docker. Con esta opción, debes especificar la ruta a este sistema de archivos. Si especificas un nombre diferente al crear el site, esta ruta también debe actualizarse en consecuencia.

ports:
  - 8080:5000
  - 8000:8000

El servidor web del contenedor escucha en el puerto 5000 de forma predeterminada. En este ejemplo, el puerto 8080 del nodo Docker está vinculado al puerto 5000 del contenedor Docker para que se pueda acceder a su interfaz web desde el exterior. Si no tienes otro contenedor o proceso que utilice el puerto HTTP estándar 80, también puedes vincular el contenedor a él. En este caso, la opción quedaría así: 80:5000. El uso de HTTPS se explica en la sección HTTPS. Además, debes publicar el puerto del Receptor del agente para poder realizar el registro del Controlador de agentes, en caso de que quieras incluir en tu monitorización un host con un agente Checkmk instalado.

 

Para ciertos escenarios que van más allá de la funcionalidad básica de Checkmk, hay que habilitar explícitamente puertos adicionales. Esto se aplica, por ejemplo, al acceso a Livestatus a través de TCP en la monitorización distribuida o al uso de la Consola de eventos dentro de un contenedor de Checkmk. En el artículo Puertos encontrarás una vista general de los puertos relevantes.

restart: always

Normalmente, un contenedor no se reinicia cuando se detiene. Esta opción garantiza que se reinicie automáticamente. Sin embargo, si detienes un contenedor manualmente, solo se reiniciará cuando se reinicie el daemon Docker o cuando el propio contenedor se reinicie manualmente.

volumes:
  monitoring:

Aquí se especifican todos los volúmenes necesarios dentro de los servicios. En este caso, se trata únicamente del volumen monitoring.

Además del servicio checkmk de Docker Compose, en tu archivo compose.yaml puedes definir servicios adicionales que se iniciarán en el mismo grupo de contenedores.

Una vez que hayas configurado todo como desees, puedes crear e iniciar el contenedor o contenedores. Para ello, ejecuta docker compose up en el directorio donde se encuentra tu archivo compose.yaml. docker compose up se encarga de que todos los contenedores y sus volúmenes asociados se creen correctamente. Con docker compose up -d (para «detached»), los contenedores se inician en segundo plano.

Si aún no has descargado una imagen y la has guardado en tu sistema, ejecutar docker compose up tardará unos minutos, ya que la imagen especificada se cargará desde Docker Hub o desde el registro Docker de Checkmk en este momento.

Tip

Si ya existe una imagen con el nombre especificado en tu host de Docker, no se descargará ninguna imagen nueva, por lo que es posible que tu imagen local ya esté desactualizada cuando inicies el contenedor Docker por primera vez. Para asegurarte de que estás trabajando con la imagen más reciente, ejecuta docker compose pull && docker compose up (opcionalmente con el parámetro -d) para iniciar el contenedor Docker.

El resultado que se muestra aquí se basa en un escenario en el que la imagen se preparó con docker load -i.

root@linux# docker compose up
[+] Running 3/3
  Network cmk_compose_default      Created                           0.0s
  Volume "cmk_compose_monitoring"  Created                           0.0s
  Container monitoring             Created                           0.0s
Attaching to monitoring
monitoring  | ### CREATING SITE 'cmk'
monitoring  | Generating configuration for core (type nagios)...
monitoring  | Precompiling host checks...OK
monitoring  | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
monitoring  | Going to set TMPFS to off.
monitoring  | Updating core configuration...
monitoring  | Executing post-create script "01_create-sample-config.py"...OK
monitoring  | Executing post-create script "02_cmk-compute-api-spec"...OK
monitoring  | Executing post-create script "03_message-broker-certs"...OK
monitoring  | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
monitoring  | Going to set TMPFS to off.
monitoring  | Skipping Apache restart.
monitoring  | Created new site cmk with version 2.4.0p24.cre.
monitoring  |
monitoring  |   The site can be started with omd start cmk.
monitoring  |   The default web UI is available at http://2403d4ed552d/cmk/
monitoring  |
monitoring  |   The admin user for the web applications is cmkadmin with password: mypassword
monitoring  |   For command line administration of the site, log in with 'omd su cmk'.
monitoring  |   After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
monitoring  |
monitoring  | ### STARTING XINETD
monitoring  |  * Starting internet superserver xinetd
monitoring  |    ...done.
monitoring  | ### STARTING SITE
monitoring  | Starting agent-receiver...OK
monitoring  | Starting mkeventd...OK
monitoring  | Starting rrdcached...OK
monitoring  | Starting redis...OK
monitoring  | Starting npcd...OK
monitoring  | Starting automation-helper...OK
monitoring  | Starting ui-job-scheduler...OK
monitoring  | Starting nagios...OK
monitoring  | Starting apache...OK
monitoring  | Starting crontab...OK
monitoring  | ### STARTING CRON
monitoring  | ### CONTAINER STARTED
Copiar comandos al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Detén los contenedores en ejecución con docker compose stop. Para reiniciar los contenedores que ya se han creado, ejecuta docker compose start.

Visualiza la salida del contenedor monitoring con docker container logs monitoring. Con docker inspect monitoring obtén información detallada sobre el contenedor, por ejemplo, los volúmenes que incluye.

4.2. Iniciar condocker container run

Como alternativa a ejecutarlo con docker compose, puedes iniciar la imagen de Checkmk con docker container run. Para ello, pasa la información del archivo compose.yaml como parámetros.

El siguiente comando crea el mismo contenedor con las mismas propiedades que en el ejemplo mostrado anteriormente. La salida que se muestra se basa en un escenario en el que la imagen aún no se ha descargado manualmente. Opcionalmente, puedes forzar la descarga de la imagen más reciente añadiendo el prefijo docker pull checkmk/check-mk-raw:2.4.0-latest.

root@linux# docker container run -dit \
          --name monitoring  \
          -e CMK_PASSWORD='mypassword' \
          -e TZ='Europe/Berlin' \
          -v monitoring:/omd/sites \
          --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 \
          -p 8080:5000 \
          -p 8000:8000 \
          --restart always \
          checkmk/check-mk-raw:2.4.0-latest
Unable to find image 'checkmk/check-mk-raw:2.4.0-latest' locally
2.4.0-latest: Pulling from checkmk/check-mk-raw
215ed5a63843: Pull complete
942691e22878: Pull complete
fafdf3fa2522: Pull complete
1888d204a5e5: Pull complete
c126aa904d34: Pull complete
b469f01932b5: Pull complete
Digest: sha256:bbabed3f4f5e88775f872bcf0f1df36660e13d0ebf613e4e6141f4c81e5c6354
Status: Downloaded newer image for checkmk/check-mk-raw:2.4.0-latest
c850572de41592afff9de610d1ef3faecb267bf4fbccf2a9d8dae92dec11aacb
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Aquí el contenedor se ejecuta en modo desconectado (-d). Para ver la salida del contenedor, usa docker container logs monitoring. Para obtener información detallada sobre el contenedor, usa docker inspect monitoring.

Tip

Al iniciar con docker container run, tienes la opción de especificar desde el principio que el contenedor y sus volúmenes se eliminen automáticamente tras detenerse. El almacenamiento de datos persistente se crea mediante el parámetro -v monitoring:/omd/sites. Si omites esta opción, no se creará ningún almacenamiento persistente.

4.3. Opciones de configuración adicionales

Los ejemplos mostrados hasta ahora corresponden a la configuración básica de los contenedores de Checkmk. Hay varias opciones adicionales disponibles para escenarios de aplicación especiales.

HTTPS

También puedes proteger la interfaz web de tu site mediante HTTPS dentro de un contenedor Docker. La práctica habitual para ello es utilizar un proxy inverso, que actúa como interfaz para las conexiones HTTP(S) entre los contenedores de tu sistema y el mundo exterior. Este proxy puede garantizar que solo se acepten o se transmitan conexiones HTTPS al contenedor de Checkmk.

Si utilizas un proxy inverso, no habilites explícitamente ningún puerto al iniciar tu contenedor de Checkmk. En su lugar, todas las conexiones entrantes y salientes se manejarán exclusivamente a través del proxy inverso.

Variables del entorno adicionales

La tabla muestra todas las variables del entorno específicas de Checkmk que puedes utilizar al iniciar el contenedor para configurarlo según tus necesidades. Para ello, especifica los valores de las variables en el archivo Compose o en la lista de parámetros al llamar a docker container run, de la misma forma que las variables del entorno mencionadas anteriormente CMK_PASSWORD y TZ.

CMK_SITE_ID

Nombre definido por ti mismo del site de Checkmk que se creará dentro del contenedor, si quieres desviarte del nombre predeterminado del site cmk.

CMK_LIVESTATUS_TCP

Configuración para usar Livestatus a través de TCP. Si seleccionas on como valor para esto, se ejecuta el comando omd config set LIVESTATUS_TCP on dentro del contenedor para el site.

MAIL_RELAY_HOST

Dirección de un servidor de retransmisión de correo proporcionado por ti (p. ej., mailrelay.mydomain.com) para enviar notificaciones de Checkmk. Las notificaciones son reenviadas primero por el site dentro del contenedor al servidor de correo especificado aquí (servidor de retransmisión SMTP, smarthost sin autenticación) fuera del contenedor, desde donde se envían luego al destino real.

5. Usar Checkmk en el contenedor en ejecución

Una vez que se hayan cargado todos los archivos necesarios y el contenedor se haya iniciado, deberías poder acceder a la GUI de Checkmk a través de http://localhost:8080/cmk/check_mk/ o mediante la dirección del nodo Docker:

Checkmk login dialog.

Ahora puedes iniciar sesión por primera vez y probar Checkmk. Para ello, utiliza el usuario cmkadmin y la contraseña que elegiste al crear el contenedor. Si tu site tiene un nombre distinto de cmk, edita el nombre en la URL.

Para acceder a tu sitio dentro del contenedor a través de la línea de comandos, inicia sesión en el contenedor como usuario del site. En Checkmk, este usuario siempre tiene el mismo nombre que el site que gestiona. Usa el siguiente comando para abrir una sesión Bash interactiva en el contenedor monitoring e inicia sesión como usuario cmk:

root@linux# docker container exec -it -u cmk monitoring bash
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

A continuación, puedes enviar tus comandos al site.

6. Actualización

En el artículo Actualizaciones y mejoras se explica cómo actualizar Checkmk en el contenedor Docker.

7. Desinstalación

Si ya no necesitas un contenedor, puedes eliminarlo y, si es necesario, borrar sus volúmenes asociados. Los comandos para hacerlo se encuentran en las siguientes secciones.

7.1. Desinstalación con `docker compose `

Para eliminar un contenedor, ejecuta docker compose down (con el contenedor en ejecución) o docker compose rm (con el contenedor detenido).

root@linux# docker compose down
[+] Running 2/2
  Container monitoring         Removed                    6.3s
  Network cmk_compose_default  Removed                    0.1s
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Si añades la opción -v, los volúmenes asociados en el nodo Docker también se eliminarán junto con el contenedor Docker.

Important

Utiliza la opción «-v» solo si estás seguro de que ya no necesitas los datos de configuración y monitorización de los volúmenes del contenedor. No hay forma de restaurar los volúmenes eliminados más adelante si no se han guardado en copias de seguridad periódicas.

7.2. Desinstalación tras iniciar con «docker container run »

Puedes detener un contenedor llamado «monitoring» que se inició con «docker container run» utilizando «docker container stop monitoring». A continuación, puedes eliminar el contenedor con «docker rm monitoring». Puedes eliminar un volumen llamado «monitoring» que ya no necesites después de eliminar su contenedor asociado con «docker volume rm monitoring».

7.3. Eliminación de la imagen de Checkmk

Si ya no deseas utilizar la imagen de Checkmk seleccionada, puedes eliminarla con docker rmi myimageid. El comando docker images muestra una lista de todas las imágenes existentes. Identifica la imagen que deseas eliminar y añade el ID de imagen correspondiente a tu llamada a docker rmi.


Last modified: Mon, 15 Dec 2025 13:15:22 GMT via commit a9387833c
En esta página