Tips
January 28

Monitorea tu servidor fácilmente con Ward

Recién surfeaba la internet buscando alguna solución simple y sencilla para monitorear un servidor para lugonials.social, la instancia comunitaria de Mastodon que manejo para mi comunidad de creativos y tecnólogos.

Conozco y uso varias soluciones en servidores más potentes, pero el droplet de DigitalOcean que adquirimos para la comunidad tiene pocas prestaciones. Así que viendo este artículo encontré a Ward, me gustó para lo que necesitamos (que es tener las métricas del servidor públicamente), así que me dispuse a instalarlo.

Instalando Ward

Según el repositorio original, el proyecto está escrito en Java, así que con la JVM (Java Virtual Machine) se puede ejecutar perfectamente, pero también da la opción de correrlo sobre Docker, que es la que yo prefiero.

Así que lo primero que hacemos es instalar Docker:

1. Instalar Docker

Puedes ejecutar esta línea directamente en tu terminal, que por debajo lo que ejecuta es un gist mío (sencillo script) que instala Docker, en una sola línea.

sh -c "$(curl -fsSL https://gist.githubusercontent.com/lugodev/168d1260e471b1747aa80ba30e0c2e12/raw/bfdda825f1e43663952eab5a7c180a3555bcf80a/install-docker.sh)"

O puedes ejecutar una a una cada línea del gist a continuación. Al final es lo mismo, tú eliges.

2. Clonar el repositorio de Ward

En mi caso muy particular, tuve que hacer un fork (copia) del repositorio porque en su Dockerfile el puerto que utilizan para la aplicación es el 4000 y colisiona con uno de los procesos de Mastodon en el servidor.

Así que puedes utilizar cualquiera de los dos repositorios:

En este ejemplo, usamos el mío:

git clone https://github.com/lugodev/ward.git

3. Compilar la imagen de Docker de Ward

Ya tenemos el repositorio clonado, así que ahora compilamos la imagen del servicio.

docker build --tag ward ward

4. Levantar el servicio de Ward

Con este comando levantamos el servicio en modo detached (en 2do plano).

docker run -d --rm -it --name ward -p 5000:5000 --privileged ward

Si muestras los logs del contenedor donde se ejecuta el servicio, verás algo como esto.

5. Permitir el puerto de la aplicación en el firewall

Sea cual sea el firewall que estés utilizando en tu servidor, no olvides autorizar el puerto que elijas para exponer el servicio de cara a internet. En mi caso uso ufw.

ufw allow 5000
ufw reload

6. Entrar al navegador

Ahora dirígete a tudominio.com:5000 en el navegador, coloca un nombre para el server y el mismo puerto (5000), y toca en el botón "Launch". Se reiniciará la aplicación y en unos segundos, podrás refrescar la pestaña para ver las métricas.

Eso es todo, puedes revisar en lugonials.social:5000 para ver el estado de nuestra instancia de Mastodon.

Únete a la comunidad