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. 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

Página de descarga deDocker Hub o Checkmk

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

-p 8080:5000

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: -p 80:5000. El uso de HTTPS se explicará en el artículo Servidor Checkmk en un contenedor Docker.

-p 8000:8000

Como Checkmk 2.1.0 también tienes que publicar el puerto del Receptor del agente para poder registrar el Controlador de agentes.

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

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.

-v monitoring:/omd/sites

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 docker volume ls.

--name monitoring

Define el nombre del contenedor. Este nombre debe ser único y no puede volver a utilizarse en el nodo Docker.

-v /etc/localtime:/etc/localtime:ro

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 (ro).

--restart always

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.

checkmk/check-mk-raw:2.3.0-latest

La etiqueta de la imagen Checkmk en el formato <repository>:<tag>. Puedes leer las etiquetas exactas con el comando docker images.

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/:

Checkmk login dialog.

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.

En esta página