Cómo instalar tu propio monitor de sitios web en Ubuntu 20.04

Kuma es una herramienta de monitorización de código abierto como “Uptime Robot” escrita en Nodejs. En este tutorial, aprenderemos como instalar tu propio monitor de sitios web en Ubuntu 20.04 para poder autoalojar nuestro Uptime Bot. También configuraremos un proxy inverso en Apache con un SSL de Let’s Encrypt para asegurar nuestro sitio web.

Cómo instalar tu propio monitor de sitios web

Kuma es fácil de usar y actualizar, y es potente para el control del tráfico, la observabilidad, el descubrimiento de servicios, etc.

Requisitos previos

Instalación de NVM (Node Version Manager)

Esta herramienta que instalaremos ahora, nos permitirá especificar las versiones de nodejs de nuestras aplicaciones para flexibilizar nuestros entornos de desarrollo y despliegue.

Ahora sólo tienes que instalar la NVM con el siguiente comando:

sudo curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Necesitas recargar tu archivo bashrc para cargar los comandos nvm:

sudo source ~/.bashrc

Ahora podemos comprobar si la NVM está funcionando con este comando:

sudo nvm --version

Instalar la versión LTS de NodeJS

Para instalar y desplegar tu bot uptime Kuma, necesitas instalar nodejs >= 14, git, y pm2. En esta sección, aprenderás cómo instalar NodeJS.

Con el comando NVM funcionando correctamente, puedes simplemente ejecutar:

sudo nvm install --lts

Y la última versión se instalará en su servidor. Puedes comprobar una vez que haya terminado con el siguiente comando:

kuma@server:~$ node --version
v14.18.1

Cómo instalar tu propio monitor de sitios web

Descarga e instalación de Uptime-Kuma

Para descargar la Kuma de tiempo de actividad, necesitas instalar git en tu servidor. Puedes simplemente ejecutar:

sudo apt-get install git

Ahora sólo tienes que ejecutar lo siguiente para descargar la uptime-kuma:

sudo git clone https://github.com/louislam/uptime-kuma.git

Ahora podrás acceder al contenido descargado y configurar la Kuma con el siguiente comando:

cd uptime-kuma/
sudo npm run setup

Y ya está, el setup uptime-kuma se ejecuta sin errores y podemos pasar al setup pm2.

Configuración de Uptime-Kuma con pm2

pm2 es un gestor de procesos nodejs que le ayudará a gestionar y mantener su aplicación nodejs siempre activa. pm2 tiene algunas características incorporadas que hacen que el despliegue de la aplicación nodejs sea fácil, le permite monitorear el estado de su aplicación, los registros, e incluso configurar el archivo de servicio para su aplicación:

Instala pm2 con npm:

sudo npm install pm2 --global

Una vez completada la instalación, puedes ejecutar este comando para iniciar Kuma:

sudo pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1

Deberías ver una pantalla como la siguiente una vez que ejecutes el comando anterior:

Ahora, crearemos un archivo de sistema para el servicio, primero necesitas ejecutar el siguiente comando para obtener el siguiente resultado:

sudo pm2 startup

Deberías recibir una salida como esta:

sudo env PATH=$PATH:/home/kuma/.nvm/versions/node/v14.18.1/bin /home/kuma/.nvm/versions/node/v14.18.1/lib/node_modules/pm2/bin/pm2 startup systemd -u kuma --hp /home/kuma

Sólo tienes que copiar el resultado y pegarlo en tu terminal, de modo que tendrás una salida como ésta:

Tenemos que salvar el proceso actual en curso:

sudo pm2 save

Configurar un proxy inverso en el servicio de kuma

En primer lugar, tenemos que instalar el apache en nuestro servidor:

sudo apt update
sudo apt install apache2

Una vez realizada la instalación, es necesario habilitar los módulos proxy:

sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html

Necesitamos crear el virtualhost para nuestro subdominio o dominio. (Asegúrese de cambiar de example.com a su dominio real)

sudo nano /etc/apache2/sites-available/kuma.tecnolitas.com

con el siguiente contenido:

<VirtualHost *:80>
  ServerName kuma.tecnolitas.com
  ProxyPass / http://localhost:3001/
  RewriteEngine on
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteCond %{HTTP:Connection} upgrade [NC]
  RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
</VirtualHost>

Ahora puedes acceder a tu dominio y deberías ver el sitio web de Kuma

Configurar Let’s Encrypt en nuestro dominio

En primer lugar, para asegurar nuestros dominios con Let’s Encrypt, necesitamos instalar el certbot. El servicio responsable de la verificación de nuestro dominio:

sudo apt install python3-certbot-apache

Para generar un certificado en su dominio, debe ejecutar el siguiente comando: (Asegúrate de cambiar de example.com a su dominio real)

sudo certbot --apache kuma.tecnolitas.com

Y sólo tienes que seguir las instrucciones de tu terminal.

Así, hemos terminado. Ahora puedes proceder con la configuración de tu kuma uptime y terminarla. Todo debería funcionar bien con HTTPS.

Ahora ya puedes monitorizar todos tus proyectos web y ser notificaco cuando en alguno haya algun problema o cuando toque renovar los dominios, Disfrutalo

¡Que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...