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.
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 |
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.
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.
|
— |
— |
||
|
— |
|||
|
— |
|||
|
— |
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.
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.
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:
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:
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.
Más información sobre las opciones utilizadas:
| Opción | Descripción |
|---|---|
|
Nombre descriptivo definido por ti para el servicio Docker en el que se va a iniciar el contenedor Docker de Checkmk. |
|
Nombre de la imagen de Checkmk en el formato Puedes consultar los nombres de las imágenes existentes con el comando Si obtienes la imagen del registro Docker de Checkmk, debes especificarla con su ruta completa. |
|
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 `
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 |
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 |
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í:
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. |
|
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 |
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.
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 |
El resultado que se muestra aquí se basa en un escenario en el que la imagen se preparó con docker load -i.
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.
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.
Al iniciar con |
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.
|
Nombre definido por ti mismo del site de Checkmk que se creará dentro del contenedor, si quieres desviarte del nombre predeterminado del site |
|
Configuración para usar Livestatus a través de TCP.
Si seleccionas |
|
Dirección de un servidor de retransmisión de correo proporcionado por ti (p. ej., |
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:

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:
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).
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.
Utiliza la opción « |
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.
