Tecnologia

Configuración de Uptime Kuma en Docker para monitorizar webs, servidores y más

Hace años montar un sistema de monitorización bastante completo, significaba invertir muchísimo tiempo en leer toda la documentación y en realizar muchas pruebas. Tanto para usuarios domésticos que tengan un pequeño servidor NAS en su casa, como también para usuarios profesionales, la monitorización de diferentes webs, servidores o dispositivos que tengamos en la red local es algo crítico para el buen funcionamiento de todos los equipos. Gracias a Uptime Kuma, monitorizar todo lo que tú necesites es más fácil que nunca, y es que con instalarlo en un contenedor de Docker ya tendrás un sistema de monitorización plenamente funcional. ¿Quieres conocer todas las características y cómo configurarlo en tu equipo?

Hoy en día todos los servidores NAS de fabricantes como QNAP, Synology o ASUSTOR, disponen de la posibilidad de instalar contenedores Docker. Esta funcionalidad nos brinda un mundo de posibilidades, ya que podemos desplegar decenas de servicios en local de manera muy fácil y rápida, hoy en día mucho software se desarrollada desde cero para integrarlo directamente en Docker y facilitar su despliegue y uso, por supuesto, Uptime Kuma también es compatible de manera oficial con esto.

Qué es Uptime Kuma y para qué sirve

Uptime Kuma es un sistema de monitorización realmente completo que se instala directamente en un contenedor Docker, no obstante, también podríamos instalarlo de manera nativa sin usar virtualización de contenedores. El contenedor de Docker de Uptime Kuma tiene todo lo necesario para desplegarlo y empezar a funcionar, dispone de una interfaz gráfica de usuario realmente rápida, muy amigable y con cientos de opciones de configuración y monitorización, perfecto para adaptarse perfectamente a nuestras necesidades.

En un sistema de monitorización es fundamental disponer de diferentes tipos de monitores, para saber qué debemos monitorizar y hacerlo de manera sencilla. Este software nos permite monitorizar lo siguiente:

  • HTTP y HTTPS
  • Puertos TCP
  • Ping
  • HTTP/HTTPS con palabra clave
  • HTTP/HTTPS con consulta JSON
  • gRPC/gRPCs con palabra clave
  • DNS
  • Contenedores Docker
  • Servidor de juegos de Steam
  • MQTT
  • Bases de datos como Microsoft SQL Server, PostgreSQL, MySQL/MariaDB, MongoDB, Radius, Redis
  • Otros

Las notificaciones también es un aspecto fundamental de cualquier sistema de monitorización, en este caso, la verdad es que es lo más completo que hemos visto hasta el momento. Podremos recibir notificaciones de que un servicio se ha caído y si ha vuelto a funcionar a través de:

  • SMS con ClickSend
  • Email (SMTP)
  • Google Chat con Google Workspace
  • Home Assistant
  • LINE
  • Mattermost
  • Microsoft Teams
  • Octopush
  • Pushbullet
  • Pushover
  • Signal
  • Slack
  • Telegram
  • Muchos más servicios compatibles, puedes consultar la lista en la web oficial.

Uptime Kuma nos permitirá añadir ilimitados monitores, y diferentes avisos simultáneamente, además, tenemos la posibilidad de crear múltiples páginas de estado para ver de un vistazo todos los monitores y su estado. También tenemos la posibilidad de configurar estas páginas de estado con dominios específicos. Podremos visualizar una gráfica con el ping para ver la latencia mínima, máxima y media.

Otras características son que se puede integrar a la perfección con Cloudflare Tunnel para acceder remotamente vía HTTPS al sistema de monitorización, también podemos configurarlo para acceder a través de un proxy inverso como Traefik o NGINX. Por supuesto, también tenemos soporte para Proxy por si estamos detrás de un proxy en la red local, poder acceder a Internet si es que vamos a necesitar monitorizar algo de Internet y no solamente local. En cuanto a la autenticación, tenemos el usuario de administración y soporte para 2FA, de esta forma, estaremos añadiendo una seguridad adicional a la hora de la autenticación.

Como podéis ver, Uptime Kuma es un sistema de monitorización realmente completo, con características muy avanzadas, pero lo más interesante es que es realmente sencillo de configurar.

Instalación y puesta en marcha

La instalación de este sistema de monitorización es realmente muy sencilla, ya que se instala directamente a través de Docker. La línea de código de docker run que nos proporciona la web oficial es la siguiente:

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Pero también se puede integrar a la perfección en Docker Compose, para centralizar todos los contenedores que tengamos desplegados. Os vamos a indicar cómo es nuestro Docker Compose para que lo ejecutéis sin ningún problema.

version: '3.7'
networks:
dockerbron:
name: dockerbron
driver: bridge
ipam:
config:
- subnet: 172.30.1.0/24
services:
uptime-kuma:
image: louislam/uptime-kuma:1.23.1
container_name: uptime-kuma
restart: always
volumes:
- /share/MaquinasVirtuales/Docker/uptime-kuma:/app/data
networks:
dockerbron:
ipv4_address: 172.30.1.2
ports:
- 3001:3001

Al copiar y pegar, asegúrate de que cumple con la validación YAML, de lo contrario dará error de sintaxis y no lo podrás ejecutar ni desplegar.

Una vez que lo hayamos desplegado, nos metemos en la dirección IP y el puerto 3001 que hemos indicado anteriormente en el contenedor Docker. Lo primero que nos saldrá es un menú para crear la cuenta de administrador, el idioma es español porque lo detecta de nuestro navegador. Deberemos introducir el nombre de usuario y la contraseña que queramos crear.

Nosotros hemos dado de alta el usuario «redeszone» para la cuenta de administración, tal y como podéis ver aquí:

Un aspecto muy importante es la robustez de la contraseña, si no tiene 6 caracteres y combinas letras y números, nos dará un error y no podremos crear la cuenta de administración.

Una vez que hayamos creado el usuario administrador, estaremos listados para entrar en su menú y empezar a configurar monitores, ver todas las opciones disponibles etc.

Opciones de configuración

La primera vez que entramos en el panel de control no veremos ningún monitor, algo lógico porque no hemos añadido ninguno. En el menú izquierdo tendremos el listado de todos los monitores y su estado, en el menú derecho tenemos un resumen de todos los monitores y si están funcionando, se han caído, está en mantenimiento, se desconoce el estado y los pausados. También podemos ver un completo registro de todo lo que ha ocurrido.

En la zona superior derecha podemos ver y crear todas las páginas de estado que nosotros queramos, con el objetivo de monitorizar ciertos equipos de manera sencilla y verlo desde una web directamente. También podemos acceder al panel principal, así como acceder a todas las opciones si desplegamos el círculo con la «R» del usuario administrador.

En el menú «General» podemos ver la zona horaria, el servidor de la zona horaria y configuraciones generales de Uptime Kuma, como definir la dirección principal y otras opciones importantes. En la sección de «Apariencia» podemos ver el idioma español y elegir si queremos un tema claro, oscuro o dejarlo en automático, entre otras opciones. En el menú de «Notificaciones» es donde debemos dar de alta los servicios que nosotros queramos para que nos lleguen las notificaciones del estado de los monitores, nuestro favorito es Telegram, lo normal es crear un nuevo bot con el nombre de Uptime Kuma y asociarlo directamente al servicio, pero también podrías configurar avisos por email y mucho más. En este menú de notificaciones tenemos todo lo necesario para configurar adecuadamente todos los avisos.

En el menú de «Proxy inverso» podemos dar de alta Cloudflare Tunnel, y también nuestro propio proxy inverso como Traefik, de esta forma, podremos entrar al sistema de monitorización a través de una dirección web. En la sección de «Etiquetas» tenemos la posibilidad de añadir etiquetas para organizar los monitores correctamente, y posteriormente asociar un monitor a una o varias etiquetas, para tenerlo todo bien organizado. En «Historial de monitor» podemos limitar el histórico de días, por defecto son 180 días pero si quieres que sea ilimitado basta con poner un 0 para que guarde siempre todo el historial y no borre nada. Si quieres monitorizar contenedores Docker, podrás hacerlo en la sección de «Hosts Docker«, esto es perfecto para saber si están funcionando correctamente no hay algún problema.

En el menú de «Seguridad» es donde podemos cambiar la contraseña actual, configurar la autenticación en dos factores e incluso deshabilitar la autenticación si queremos. Otras opciones son las de añadir claves API, configurar el proxy para acceder a Internet si fuera necesario, así como realizar una copia de seguridad, aunque esta última funcionalidad no deberías usarla porque está obsoleta, es mejor hacer una copia de seguridad directamente del archivo de datos de tu contenedor Docker.

Tal y como habéis visto, tenemos una gran cantidad de opciones de configuración disponibles en este sistema de monitorización, lo mejor es que son opciones muy sencillas de configurar.

Añadir un nuevo monitor

Para añadir un nuevo monitor al sistema de monitorización, nos vamos al menú principal y pinchamos sobre «Añadir nuevo monitor«. En la parte de la derecha veremos todas las opciones del monitor en cuestión, y es que podemos crear una gran cantidad de tipos de monitores como HTTP, HTTPS, TCP, Ping y mucho más. Por supuesto, antes de crear un monitor es recomendable configurar previamente las notificaciones y también las etiquetas, para que una vez que creemos el monitor podamos hacerlo directamente y no tener que volver para editarlo.

Todos los menús están perfectamente traducidos, y las opciones son bastante intuitivas, por lo que no tendrás problemas a la hora de configurarlos.

Añadir página de estado

Uptime Kuma nos permitirá crear páginas personalizadas con el estado de los monitores que nosotros queramos, para añadir una página de estado simplemente nos vamos a la sección de «Páginas de estado«, y dentro creamos una nueva página y posteriormente añadimos los monitores en las diferentes secciones que nosotros queramos. Primero debemos crear todos los monitores, y posteriormente crear las páginas de estado porque si no lo tendremos completamente vacío.

Al tener una URL cada página de estado, podremos acceder directamente a esta URL con el objetivo de ver de un vistazo todos los monitores que nos interesen

Menú principal con los monitores

Una vez que hemos creado todos los monitores, y también las correspondientes etiquetas, podremos ver a la izquierda todos ellos y su estado actual, en la parte de la derecha podemos ver el histórico de si ha habido caídas o problemas. También podremos poner en mantenimiento todos los monitores que queramos, para que no nos notifique si se van a caer porque vamos a hacer alguna intervención. Otra opción es seleccionar todos los monitores y pausarlos.

Si nos metemos en uno de los monitores, podremos ver la dirección IP o dominio, y los botones de pausar, editar el monitor, clonarlo para coger esa «plantilla» y cambiar solamente un valor o dos, y también podremos ver el estado en tiempo real y si ha habido algún problema. En este menú también podemos ver el ping actual y el promedio, además, nos informará del porcentaje de funcionamiento durante las últimas 24 horas, y el tiempo activo los últimos 30 días. Justo debajo podremos ver una gráfica con las variaciones de la latencia.

Si vemos el histórico, podremos apreciar todas las caídas de este dispositivo, y también si lo hemos puesto bajo mantenimiento o no.

Tal y como podéis ver, vamos a tener una gran cantidad de información gracias a Uptime Kuma, no solamente de los equipos locales sino también el estado de webs de Internet.

Activar el mantenimiento

En el caso de que vayas a reiniciar parte de la red, y vaya a estar inaccesible durante un tiempo, lo mejor es programar un mantenimiento con el objetivo de no recibir decenas de notificaciones de caídas, y luego de que ha vuelto a conectarse y está funcionando correctamente. De esta forma, al activar el modo mantenimiento los monitores dejarán de avisar si hay una caída.

Esta función es muy importante para no «manchar» el registro de eventos, sobre todo si tenemos decenas de equipos monitorizados.

Página de estado con los monitores

Anteriormente os hemos indicado que, para crear las páginas de estado de los monitores, es necesario primero crear los monitores y posteriormente crear las páginas de estado. En las siguientes imágenes podéis ver el proceso tan sencillo, además, permite arrastrar y soltar para que podamos cambiar de clasificación un monitor de manera muy fácil y rápida. Todo es editable y vamos a tener una gran versatilidad para dejar la página de estado a la perfección.

Al tener una URL cada página de estado, podemos crear varias y acceder directamente a ellas a través de un marcador en el navegador web, de esta forma solamente veremos lo que realmente nos interesa ver y no los cientos de monitores.

Conclusiones

Si necesitas un sistema de monitorización muy completo, gratis, que se pueda integrar muy fácilmente en cualquier red gracias al uso de contenedores Docker, y que sea realmente fácil de utilizar sin necesidad de dedicar decenas de horas a la documentación, está claro que Uptime Kuma es lo que estás buscando. Este sistema de monitorización se puede usar a nivel doméstico para controlar que todos nuestros dispositivos en el hogar no sufren desconexiones, y si ocurre, nos avisará a través de diferentes formas como email, Telegram y muchas otras plataformas que os hemos comentado.

Si algo podemos destacar de esta solución, es que es un sistema de monitorización realmente intuitivo, en media hora tendrás controladas todas las opciones para crear monitores básicos e incluso avanzados en pocos segundos. La interfaz gráfica de usuario también es muy limpia y rápida, nada que ver con sistemas de monitorización muy antiguos que tienen un diseño arcaico. Por último, también nos gustaría indicar que la estabilidad del propio sistema de monitorización es realmente buena, algo fundamental.

El artículo Configuración de Uptime Kuma en Docker para monitorizar webs, servidores y más se publicó en RedesZone.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.