Cómo monitorizar sistemas Windows con Checkmk en un contenedor Docker
El uso de una herramienta de monitorización te da una gran oportunidad de aumentar el tiempo de actividad y la fiabilidad de tu infraestructura. De hecho, la monitorización es esencial para cualquier organización. En mi anterior tutorial, ya mencioné la importancia de la monitorización y mostré cómo instalar Checkmk en un servidor Linux. Ahora, estoy utilizando un PC normal con Windows 10 para ejecutar Checkmk en Docker y quiero mostrarte cómo puedes ejecutar Checkmk en un ordenador normal. No necesitas ninguna experiencia en monitorización ni en Linux. Este tutorial también es adecuado para usuarios de Windows y te ofrece una fácil introducción al mundo de la monitorización profesional.
Requisitos
Necesitas un sistema anfitrión que pueda ejecutar contenedores Docker. Este tutorial utilizará la versión 4.3.2 de Docker Desktop para Windows, que tendrás que instalar como primer paso, a menos que utilices otro motor Docker. En caso de que también utilices Docker en Windows, asegúrate de que tu sistema anfitrión tiene suficientes recursos de hardware: Como herramienta basada en Linux, Checkmk tiene unos requisitos de sistema bastante bajos, pero la combinación de Windows como sistema anfitrión y la virtualización de contenedores añade bastante sobrecarga. Además, el host necesita estar conectado a Internet. Este tutorial se basa en la versión 2.0.0p17 de Checkmk Raw Edition.
Cómo empezar
Como primer paso, necesitas descargar e instalar Docker Desktop para Windows u otro motor Docker de tu elección. Yo he utilizado Docker Desktop, porque es gratuito para los usuarios privados y fácil de usar.
- Descarga e instala Docker Desktop para Windows.
- Dependiendo de tu versión de Windows, también tienes que descargar e instalar la actualización del kernel de Linux WSL2 para Windows después de instalar Docker Desktop.
- Una vez que hayas descargado e instalado el paquete de actualización del kernel de Linux WSL2, abre el símbolo del sistema. Lo encontrarás en el menú Inicio y busca «cmd».
- Tienes que establecer WSL 2 como versión por defecto cuando instales sistemas basados en Linux como Docker Desktop. Utiliza el comando:
wsl --set-default-version 2
Instalar Checkmk Raw Edition en Windows
Para este tutorial voy a utilizar la edición Checkmk Raw, la edición comunitaria GPLv2 que también está disponible en Docker Hub. Como alternativa, existe una versión de prueba de la Edición Empresarial de Checkmk. La edición Enterprise viene con varias funciones adicionales y la versión de prueba te permite utilizarlas todas durante 30 días de forma gratuita. El tutorial será bastante similar para la Edición Empresarial, la principal diferencia es el hecho de que no puedes sacar la Edición Empresarial del centro Docker, sino que tienes que descargarla del sitio web de Checkmk antes de dar el siguiente paso. Si utilizas la Checkmk Raw Edition, puedes permanecer en el terminal de Windows y utilizar el siguiente comando para extraer la Raw Edition:
docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name cmk_demo -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
En el comando, he añadido los parámetros recomendados por la guía de Checkmk para Docker. Eres libre de ajustarlos, por supuesto, pero antes de hacerlo, deberías leer la página de la guía. Espera a que Docker saque las imágenes de Checkmk. Ya has creado un contenedor (llamado «cmk_demo» en mi caso) que ejecuta Checkmk. También has vinculado los datos del sitio en este contenedor a una ubicación persistente en el sistema de archivos del nodo Docker. Yo he llamado al volumen «monitorización», puedes elegir otros nombres, si quieres.
Ahora tu monitorización ya está en marcha, pero necesitas conocer la contraseña generada aleatoriamente para el usuario cmkadmin. Por defecto, Checkmk genera un primer usuario «cmkadmin» con una contraseña aleatoria para tu sitio Checkmk. Encontrarás esa contraseña en los registros del contenedor. Utiliza el comando docker container log s y añade el nombre de tu sitio Checkmk en el símbolo del sistema de Windows:
docker container logs cmk_demo
No te preocupes por el comando de terminal para cambiar la contraseña. Podrías abrir la CLI de este contenedor en Docker Desktop (no en el símbolo del sistema de Windows), y utilizar los comandos «omd su cmk» y «htpasswd etc/htpasswd cmkadmin». Pero es más fácil hacerlo en la interfaz de usuario de Checkmk.
Copia la contraseña, la necesitarás en el siguiente paso. Si la instalación ha funcionado correctamente, podrás acceder a tu sitio Checkmk utilizando el enlace http://localhost:8080/cmk/check_mk/ en tu navegador.
Cambiar tu contraseña en Checkmk
- Accede a Checkmk con el usuario «cmkadmin» y la contraseña que has copiado antes del símbolo del sistema.
- Verás un panel de control vacío, porque tu monitorización aún no contiene ningún host. Antes de añadirlos, ve primero a «Usuario» en el menú de la izquierda y haz clic en Cambiar contraseña.
- Introduce tu antigua contraseña y confirma la nueva.
Añade el localhost como primer host a Checkmk
Como primer host, debes añadir tu host de monitorización, que en este caso es un contenedor Docker. Checkmk como una sofisticada monitorización de Docker y Kubernetes, pero para empezar la versión más sencilla en este caso es utilizar el agente de Checkmk Linux que ya se está ejecutando en tu contenedor Checkmk.
- En la barra lateral de la izquierda, ve a Configuración -> Hosts y haz clic en «Añadir host».
- Introduce «localhost» en «Hostname» y haz clic en «Save& go to service configuration»
- Espera a que se descubra el servicio automático. Ahora Checkmk comprueba si puede extraer datos del agente y si hay nuevos servicios de monitorización.
- En mi caso, Checkmk detectó 13 servicios y también un par de etiquetas. Haz clic en el botón «Fijar todo» para añadir todos estos servicios a tu monitorización.
En este caso, Checkmk descubrió los servicios en el contenedor proporcionado por el agente de Checkmk, pero el descubrimiento automático de servicios también funciona con SNMP u otros protocolos, lo que hace que Checkmk sea una buena herramienta para la monitorización de redes. La autodetección de etiquetas es una buena forma de gestionar diferentes tipos de dispositivos y, por supuesto, también puedes añadir tus propias etiquetas. El botón «Arreglar todo» añade todos los servicios detectados y las etiquetas de los hosts a tu panel de supervisión y elimina los servicios que han desaparecido. Por supuesto, puedes gestionar los servicios manualmente, pero la función de arreglar todo lo hace mucho más fácil.
Monitorización de sistemas Windows con Checkmk
Como el contenedor se ejecuta en mi portátil Windows, quiero mostrarte cómo supervisar los sistemas Windows con Checkmk. La mejor manera de supervisar los dispositivos de Windows es el agente Checkmk para Windows. Aunque el agente para Linux ya se ejecutaba en el contenedor Checkmk, tienes que instalarlo primero en tu máquina Windows, antes de añadir el host a tu monitorización.
- Ve a Configuración -> Agentes y selecciona el paquete adecuado para tu sistema operativo. En mi caso Configuración -> Agentes -> Windows -> check_mk_agent.msi
- Descarga e instala el agente haciendo clic en él. Ejecuta el archivo .msi.
- Haz clic en Configuración -> Hosts y «Añadir host» como antes
- Añade el nombre de tu host de Windows en «Nombre de host» en la «Configuración básica» y la dirección IP del host en «Dirección de red» en el campo junto a «Dirección IPv4». Si no estás seguro de la dirección IP de tu host de Windows, puedes utilizar el comando ipconfig en el símbolo del sistema de Windows.
- Deja los demás campos sin modificar y haz clic en «Guardar e ir a la configuración del servicio». Espera a que se descubra el servicio automatizado y haz clic en «Arreglar todo».
Último paso: Activar los cambios en Checkmk
Ahora hay dos hosts en tu monitorización, pero Checkmk tiene un mecanismo de seguridad. Todos los cambios realizados aparecen primero en la lista de «Cambios pendientes», para que puedas revisar cualquier cambio antes de que afecte a tu monitorización
- Activa tus cambios haciendo clic en el campo resaltado con el signo de exclamación amarillo (!) en la esquina superior derecha.
- Haz clic en «Activar en los sitios seleccionados», y habrás añadido con éxito tus hosts a tu monitorización.
Checkmk diferencia entre el entorno de configuración, en el que gestionas los hosts, los servicios y las configuraciones, y el área denominada Monitor, en la que tiene lugar la monitorización operativa real. Los nuevos hosts y otros cambios en la configuración no afectan inicialmente a la monitorización. Debes activarlos antes de que pasen a producción.
Y eso es todo. En el menú de la izquierda haz clic en Monitor -> Todos los hosts para encontrar tus hosts. La combinación de Docker en Windows es bastante poco convencional, pero es estupenda para probar Checkmk o para monitorizar servidores en entornos Windows. Si quieres monitorizar entornos más grandes y sólo tienes servidores Windows, deberías pensar en utilizar el dispositivo Checkmk virtual o físico para la monitorización.