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.
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
- Un servidor Ubuntu 20.04. Puedes adquirir el tuyo en Contabo o usar Oracle VirtualBox y Vagrant para hacer una maquina virtual en tu PC.
- Acceso root en tu servidor para instalar y desplegar los servicios. O un usuario con privilegios sudo
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.