![]() |
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. Lo básico
Existen numerosas razones por las que muchos usuarios desean utilizar software en un contenedor Docker. Checkmk también puede utilizarse en un entorno Docker. Un escenario de aplicación puede ser monitorizar un grupo de contenedores creado dinámicamente y hacer que Checkmk forme parte de este grupo. Si el grupo de contenedores deja de ser necesario, el site de Checkmk también puede eliminarse.
Importante: Aunque es posible y muy fácil integrar Checkmk en una infraestructura en contenedores, no siempre es la mejor solución. Puesto que con cada virtualización se reduce el rendimiento y tu monitorización en general debe tener un mínimo de dependencias físicas, no es una buena solución utilizar un contenedor Checkmk para monitorizar toda tu infraestructura. Pero puede ser una buena opción integrar un contenedor Checkmk en un clúster de contenedores autónomo, porque en este caso podrías monitorizar este clúster desde dentro. Así que, especialmente en este caso, verifica si la herramienta Docker/Container es la mejor solución para tus requisitos reales.
Para facilitarte al máximo la configuración, suministramos cada edición de Checkmk con su propia imagen específica, que contiene el sistema operativo Linux Ubuntu además de Checkmk:
Checkmk Raw |
|
Ediciones comerciales |
Página de descarga de Checkmk (a partir de Checkmk Cloud, es decir, Checkmk Cloud y Checkmk MSP), portal del cliente de Checkmk |
Nota: La distribución en Docker Hub te permite descargar e instalar con un solo comando, como mostraremos en el capítulo sobre la instalación de Checkmk Raw.
En este artículo te guiaremos en la instalación de Checkmk en Docker, y mostraremos algunos trucos que te facilitarán la vida con Checkmk en Docker. Encontrarás más información en el artículo El servidor Checkmk en un contenedor Docker.
2. Requisitos previos
Para ejecutar los comandos presentados en este artículo necesitarás una instalación del motor Docker en funcionamiento y conocimientos básicos sobre su uso.
3. Instalación de Checkmk Raw
Empezar a utilizar Checkmk Raw en Docker es fácil. Puedes obtener una imagen adecuada directamente del Docker Hub. Esto se hace con un solo comando en la línea de comandos. Con este comando no sólo se creará un contenedor Docker con Checkmk, sino que también se configurará e iniciará un sitio de monitorización llamado cmk
. Este sitio estará disponible inmediatamente para un inicio de sesión como usuario de cmkadmin
.
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.3.0-latest
Unable to find image 'checkmk/check-mk-raw:2.3.0-latest' locally
2.3.0-latest: Pulling from checkmk/check-mk-raw
43f89b94cd7d: Pull complete
c6b4550f40cc: Pull complete
86f6e730bc27: Pull complete
cf0f3e792f33: Pull complete
81777b9c4e2e: Pull complete
da44e2c4d930: Pull complete
Digest: sha256:8a71002e019fab358bcefb204d6bff3390713781df99fb5c6587b289df9796e4
Status: Downloaded newer image for checkmk/check-mk-raw:2.3.0-latest
86e14b7d604033cc44f4b92c25ce67f45967c82db3e84f2e16fee76f4ff48fdf
Más información sobre las opciones disponibles:
Opción | Descripción |
---|---|
|
Por defecto, el servidor web del contenedor escucha en el puerto 5000. En este ejemplo, el puerto 8080 del nodo Docker se publicará en el puerto del contenedor para que sea accesible 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 tal caso, la opción tendrá el siguiente aspecto: |
|
Como Checkmk 2.1.0 también tienes que publicar el puerto del Receptor del agente para poder registrar el Controlador de agentes. |
|
Para un rendimiento óptimo, puedes utilizar un sistema de archivos temporal directamente en la RAM del nodo Docker. La ruta para este sistema de archivos se especifica con esta opción. Si cambias el ID del site, esta ruta también debe editarse en consecuencia. |
|
Esta opción vincula los datos del site de este contenedor a una ubicación persistente en el sistema de archivos del nodo Docker. Los datos no se pierden si se elimina el contenedor. El código que precede a los dos puntos determina el nombre: de esta forma podrás identificar claramente la ubicación de almacenamiento más adelante, por ejemplo, con el comando |
|
Define el nombre del contenedor. Este nombre debe ser único y no puede volver a utilizarse en el nodo Docker. |
|
Esta opción te permite utilizar en el contenedor la misma zona horaria que la utilizada en el nodo Docker, al mismo tiempo que el archivo se integra como de sólo lectura ( |
|
Normalmente, un contenedor no se reinicia automáticamente después de detenerse. Con esta opción puedes asegurarte de que siempre se reinicie automáticamente. Sin embargo, si detienes manualmente un contenedor, sólo se reiniciará si se reinicia el daemon Docker o si el propio contenedor se reinicia manualmente. |
|
La etiqueta de la imagen Checkmk en el formato |
Una vez cargados todos los archivos necesarios e iniciado el contenedor, debes acceder a la GUI de Checkmk a través de http://localhost:8080/cmk/check_mk/
:

Ahora puedes conectarte por primera vez y probar Checkmk. Encontrarás la contraseña provisional de la cuenta cmkadmin
en los registros que se escriben para este contenedor (en este ejemplo, la salida se abrevia a la información esencial):
root@linux# docker container logs monitoring
Created new site cmk with version 2.3.0p1.cre.
The site can be started with omd start cmk.
The default web UI is available at http://73a86e310b60/cmk/
The admin user for the web applications is cmkadmin with password: 2JLysBmv
For command line administration of the site, log in with 'omd su cmk'.
After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
Nota: La URL que aparece en el registro para acceder a la interfaz web con el ID del contenedor sólo se reconoce dentro del contenedor y no sirve para acceder desde fuera en el navegador web.
3.1. Contenedores de corta duración
Si estás seguro de que los datos del site del contenedor Checkmk sólo deben estar disponibles en este contenedor especial, puedes abstenerte de asignar un almacenamiento de datos persistente al contenedor, o puedes eliminar automáticamente este almacenamiento cuando se detenga el contenedor.
Para prescindir del almacenamiento persistente, simplemente omite la opción -v monitoring:/omd/sites
:
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.3.0-latest
Para crear un almacenamiento persistente y eliminarlo automáticamente cuando se detenga el contenedor, utiliza el siguiente comando
root@linux# docker container run --rm -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro checkmk/check-mk-raw:2.3.0-latest
Este comando -a diferencia del anterior- sólo tiene otras dos opciones:
-
Utiliza la opción
--rm
al principio para pasar al comando que el almacenamiento de datos del contenedor también se elimine cuando éste se detenga. Esto te ahorra tener que ordenar manualmente si tienes muchos contenedores Checkmk de corta duración.Importante: ¡Al parar, el propio contenedor se elimina por completo!
La opción
-v /omd/sites
se modifica respecto a la anterior. Ya no contiene un nombre autoasignado, de lo contrario el almacenamiento de datos no se eliminará correctamente.
4. Instalación de las ediciones comerciales
También puedes ejecutar las ediciones comerciales en un contenedor Docker. Las imágenes de las ediciones comerciales no están disponibles gratuitamente a través de Docker Hub. Descarga la edición y versión deseadas desde la página de descarga de Checkmk (a partir de Checkmk Cloud) o desde el portal de clientes de Checkmk.
Carga la imagen del archivo tar descargado en Docker, en el siguiente ejemplo para Checkmk Cloud:
root@linux# docker load -i check-mk-cloud-docker-2.3.0p1.tar.gz
1f35d34cf8fa: Loading layer [==================================================>] 2.048kB/2.048kB
9fcc49e3e223: Loading layer [==================================================>] 365.5MB/365.5MB
96507768f1a4: Loading layer [==================================================>] 261.2MB/261.2MB
a65c9018ee9b: Loading layer [==================================================>] 1.27GB/1.27GB
4dbb1e959fe6: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: checkmk/check-mk-cloud:2.3.0p1
A continuación, puedes iniciar el contenedor con un comando muy similar al descrito anteriormente. Sólo tienes que tener cuidado de utilizar el nombre del Loaded image
de la salida del comando anterior en el siguiente comando de inicio, así que en este ejemplo checkmk/check-mk-cloud:2.2.0p1
:
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-cloud:2.3.0p1
f00d10fcb16313d3539065933b90c4dec9f81745f3d7283d794160f4f9b28df1
Tras iniciar el contenedor, puedes acceder a la interfaz web de Checkmk como se describe en Instalación de Checkmk Raw.
5. Actualiza
En el artículo Actualizaciones y mejoras se describe cómo actualizar Checkmk en un contenedor Docker.
6. Desinstala
Al desinstalar, elimina el contenedor Docker y, opcionalmente, los datos creados cuando se creó el contenedor.
Haz que se listen los contenedores Docker:
root@linux# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a82ddbabc6e checkmk/check-mk-cloud:2.3.0p1 "/docker-entrypoint.…" 57 minutes ago Up 53 minutes (healthy) 6557/tcp, 0.0.0.0:8080->5000/tcp monitoring
Toma el CONTAINER ID
mostrado de la salida del comando para los siguientes comandos.
Primero detén el contenedor y luego elimínalo:
root@linux# docker container stop 9a82ddbabc6e
9a82ddbabc6e
root@linux# docker container rm 9a82ddbabc6e
9a82ddbabc6e
Si creaste el contenedor con la opción -v monitoring:/omd/sites
, también puedes eliminar el volumen Docker creado por éste:docker volume ls
muestra los volúmenes y docker volume rm <VOLUME NAME>
elimina el volumen.
Por último, puedes eliminar la imagen de forma similar: con docker images
obtienes la lista de imágenes y docker rmi <IMAGE ID>
elimina la imagen seleccionada.