GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Kuma - Alternativa de robot de tiempo de actividad autohospedado en Ubuntu 20.04

Uptime-Kuma es una herramienta de monitoreo de código abierto como "Uptime Robot" escrita en Nodejs. Es una herramienta de monitoreo autohospedada con un hermoso panel elegante y admite múltiples métodos de notificación. Uptime-Kuma monitoreará el tiempo de actividad de los hosts o servidores a través del protocolo HTTP(s), TCP y Ping. Si no se puede acceder a los hosts a través de estos protocolos en tales intervalos de tiempo, los hosts de tiempo de actividad enviarán notificaciones a través de Webhooks, Telegram, Discord, Gotify, Slack, Pushover, correo electrónico (SMTP), etc.

En esta guía, aprenderá cómo instalar Uptime-Kuma en un servidor Ubuntu y usar el servidor web Apache como un proxy inverso con un certificado Let's Encrypt SSL gratuito delante. Durante la instalación, también aprenderá sobre la instalación de nodejs a través de nvm (administrador de versiones de nodos).

Requisitos

  • Un servidor Ubuntu 20.04.
  • Un usuario con privilegios de raíz. Utilizará este usuario para instalar nuevos paquetes y modificar la configuración del sistema.

Agregando nuevo usuario

Lo primero, agregará un nuevo usuario al sistema Ubuntu. Por razones de seguridad, la aplicación Uptime-Kuma se ejecutará como usuario no root.

1. Agregue un nuevo usuario ejecutando el siguiente comando. Para este ejemplo, usaremos el nombre de usuario "johndoe ". asegúrese de cambiar el nombre de usuario por el suyo propio.

useradd -m -s /bin/bash johndoe

Opciones que debes conocer:

  • -m =crea automáticamente el directorio de inicio para el nombre de usuario, que estará disponible en el directorio '/home'.
  • -s =define la ruta del shell para el usuario, la mayoría de Linux tiene el shell `/bin/bash.

2. Después de eso, ejecute el siguiente comando para configurar la contraseña para el usuario "johndoe".

passwd johndoe

Ahora escriba una nueva contraseña segura y repita, luego presione "Enter " para confirmar.

3. A continuación, agregue el usuario "johndoe" al grupo "sudo " usando el siguiente comando.

usermod -aG sudo johndoe

Al agregar usuarios al "sudo " grupo, permitirá a los usuarios ejecutar el "sudo su" comando y obtener los privilegios de root.

Instalar NVM (Administrador de versiones de nodos)

NVM o Node Version Manager es una herramienta de línea de comandos para instalar múltiples versiones de nodejs en un sistema. Esta herramienta le permite instalar una versión específica de nodejs para sus aplicaciones, hace que su entorno de desarrollo e implementación sea flexible.

Para esta fase, instalará el nvm bajo el usuario no root "johndoe".

1. Desde su shell raíz, inicie sesión en el usuario "johndoe" usando el siguiente comando.

su - johndoe

2. Descargue y ejecute el script de instalación de nvm de la siguiente manera.

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

3. Después de tener éxito, vuelva a cargar el entorno bash usando el siguiente comando.

source ~/.bashrc

4. Ahora verifique el "nvm " instalación ejecutando el siguiente comando.

command -v nvm

Si su instalación es exitosa, verá el resultado "nvm ". De lo contrario, no verá nada o un resultado en blanco.

Ahora ejecute el comando nvm como se muestra a continuación.

nvm --help

Y verá la página de ayuda manual del comando nvm.

Node Version Manager (v0.38.0)

Note: <version> refers to any version-like string nvm understands. This includes:
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
  - default (built-in) aliases: node, stable, unstable, iojs, system
  - custom aliases you define with `nvm alias foo`

 Any options that produce colorized output should respect the `--no-colors` option.

Usage:
  nvm --help                                  Show this message
    --no-colors                               Suppress colored output

.....

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)

Instalar la versión LTS de Nodejs

Para instalar la aplicación uptime-Kuma, debe instalar nodejs>=14 , git y pm2 . Para este punto, instalará la última versión de nodejs LTS usando el comando nvm.

1. Ejecute el siguiente comando nvm para instalar la última versión de nodejs LTS.

nvm install --lts

Una vez que la instalación se realice correctamente, verá un resultado similar al que se muestra a continuación.

La primera versión de nodejs que instale se convierte en la versión predeterminada en su entorno de desarrollo.

2. Ahora ejecute el siguiente comando para verificar la instalación de nodejs.

node --version
npm --version

Si su instalación tiene éxito, verá un resultado similar al que se muestra a continuación.

# nodejs version
v14.17.4

# npm version
6.14.14

Descargar e instalar Uptime-Kuma

En este punto, está listo para instalar la aplicación Uptime-Kuma.

1. Clone el código fuente de uptime-Kuma usando el siguiente comando git.

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

2. Después de eso, cambie el directorio de trabajo a "uptime-kuma/ " y ejecute el comando npm para instalar todos los paquetes necesarios para uptime-kuma.

cd uptime-kuma/
npm run setup

Y verá un resultado similar al que se muestra a continuación.

Configuración de Uptime-Kuma con pm2

¿Qué es pm2? Es un administrador de procesos de nodejs que lo ayudará a administrar y mantener viva su aplicación nodejs para siempre. pm2 tiene algunas características integradas que facilitan la implementación de la aplicación nodejs, le permite monitorear el estado de su aplicación, los registros e incluso configurar el archivo de servicio para su aplicación.

1. Instale el paquete pm2 con el siguiente comando npm.

npm install pm2

2. Una vez completada la instalación, ejecute el siguiente comando pm2 para iniciar la aplicación uptime-kuma.

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

Y verá los mensajes de salida como se muestra a continuación.

Como se ve en la imagen, el nombre de la aplicación "uptime-kuma " se está ejecutando con el estado "en línea ".

3. Para verificar el estado de su aplicación en pm2, ejecute los siguientes comandos a continuación.

Verifique el estado de la aplicación nodejs.

pm2 status

Verifique los registros de la aplicación nodejs.

pm2 logs

Supervisión de aplicaciones de nodejs en tiempo real.

pm2 monit

4. A continuación, ejecute el siguiente comando pm2 para generar el archivo de servicio para la aplicación uptime-kuma.

pm2 startup

Después de eso, debe ejecutar el comando según lo ordenado en la salida.

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

Asegúrese de usar el "sudo " Comando e ingrese la contraseña correcta para que su usuario obtenga los privilegios de root.

Una vez que se complete el comando, verá el siguiente resultado.

Como se ve en la captura de pantalla, el pm2 genera un servicio systemd basado en el usuario, para este ejemplo es "pm2-johndoe.service ".

Ahora ejecute el siguiente comando para generar y guardar el estado de la aplicación uptime-kuma. Este comando es importante para que la aplicación uptime-kuma siempre se ejecute en segundo plano, incluso después del arranque del sistema.

pm2 save

5. Para verificar el servicio 'pm2-johndoe' , ejecute el siguiente comando.

sudo systemctl is-enabled pm2-johndoe

Verá la salida `habilitada `, lo que significa que la aplicación uptime-kuma se ejecutará automáticamente después del arranque del sistema.

Además, puede intentar reiniciar su sistema e iniciar sesión nuevamente en el servidor, luego verifique el servicio uptime-kuma.

sudo systemctl status pm2-johndoe

Y debería ver un resultado similar al que se muestra a continuación.

? pm2-johndoe.service - PM2 process manager
     Loaded: loaded (/etc/systemd/system/pm2-johndoe.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-08-10 01:52:37 UTC; 3min 57s ago
       Docs: https://pm2.keymetrics.io/
   Main PID: 745 (PM2 v5.1.0: God)
      Tasks: 34 (limit: 2343)
     Memory: 120.4M
     CGroup: /system.slice/pm2-johndoe.service
             ??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)
             ??772 npm
             ??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"
             ??874 node server/server.js --port=3001 --hostname=127.0.0.1

Aug 10 01:52:36 ubuntu64 pm2[633]: [PM2] Spawning PM2 daemon with pm2_home=/home/johndoe/.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 Successfully daemonized
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Resurrecting
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Restoring processes located in /home/johndoe/.pm2/dump.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Process /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restored

El "pm2-johndoe.service " está funcionando en el arranque del sistema.

Configurar Apache como proxy inverso

Para esta guía, instalará y configurará el servidor web Apache como un proxy inverso para la aplicación uptime-Kuma.

1. Ejecute el siguiente comando para instalar los paquetes del servidor web apache.

sudo apt install apache2

Escribe "y" y presiona "Entrar " para instalar el servidor web apache.

2. Después de eso, habilite algunos módulos de apache usando el siguiente comando.

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

3. A continuación, cree una nueva configuración de host virtual 'uptime-kuma.conf ' usando el comando del editor nano a continuación.

sudo nano /etc/apache2/sites-available/uptime-kuma.conf

Pegue la siguiente configuración en el shell de su terminal y cambie el nombre de dominio  "uptime.example.net " con su dominio como "dominio.com ".

<VirtualHost *:80>
  ServerName uptime.example.net

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

Presiona "Ctrl+x " y escriba "Y " para guardar la configuración.

4. Ahora active la configuración de host virtual de apache "uptime-kuma" usando el siguiente comando.

sudo a2ensite uptime-kuma

Después de eso, ejecute el siguiente comando para verificar la configuración de Apache y asegúrese de que no tenga ningún error.

sudo apachectl configtest

5. Ahora aplique la nueva configuración reiniciando el servicio de apache usando el siguiente comando.

sudo systemctl restart apache2

Asegurando Uptime-kuma con SSL Letsencrypt

Para asegurar el acceso de Uptime-Kuma, configurará el SSL de Letsencrypt para el servidor web apache.

1. En primer lugar, instale la herramienta certbot ejecutando el siguiente comando.

sudo apt install python3-certbot-apache

Escriba "y " y presione "Entrar " para iniciar la instalación.

2. Una vez completada la instalación, genere el SSL letsencrypt usando el comando certbot como se muestra a continuación.

sudo certbot --apache yourdomain.com

Escriba su dirección de correo electrónico para registrarse en Letsencrypt y presione "Enter " para continuar. Letsencrypt enviará correos electrónicos a su dirección de correo electrónico cada vez que caduquen sus certificados SSL.

```
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

Para los TOS (Términos de servicio) de Letsencrypt, escriba "A " para aceptar y presione "Enter " para continuar.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

Para compartir el correo electrónico con EFF (Electronic Frontier Foundation), puede escribir "Y " para sí y "N " para no. Para este ejemplo, no compartiremos una dirección de correo electrónico con EFF.

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Ahora la herramienta certbot generará SSL Letsencrypt para el nombre de dominio Uptime-Kuma. Además, agregará algunas configuraciones adicionales para la configuración del host virtual de apache.

Se le pedirá que configure la redirección automática de HTTP a HTTPS. Escriba el número "2" para configurar la redirección automática de apache HTTP a HTTPS y presione "Enter ".

```
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Una vez que el proceso de implementación sea exitoso, verá un resultado similar al siguiente.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://uptime.example.net

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/uptime.example.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/uptime.example.net/privkey.pem
   Your cert will expire on 2021-10-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Verificar la instalación de Uptime-Kuma

1. Abra su navegador web y escriba la instalación URL de Uptime-Kuma en la barra de direcciones.

https://uptime.example.net/

Será redirigido a la conexión segura HTTPS.

2. En la primera página, cree un nuevo usuario administrador para Uptime-kuma. Escriba su usuario y contraseña de administrador, luego haga clic en "Crear botón "

3. Después de eso, inicie sesión con su nuevo nombre de usuario y contraseña, luego haga clic en "Iniciar sesión botón ".

Ahora verá el panel de uptime-kuma.

4. Para agregar un nuevo host para monitorear, haga clic en el botón "Agregar nuevo monitor ".

5. Para este ejemplo, estará monitoreando el sitio web, así que elija el "Tipo de monitor " como "HTTP(s) ", escriba la dirección URL del sitio web, haga clic en "Configurar notificación " para soporte de notificaciones, luego haga clic en "Guardar botón " en la parte inferior de la página.

6. Ahora será redirigido al panel de Kuma de tiempo de actividad y verá su host en la página del panel.

A continuación se muestra otro ejemplo después de agregar el nuevo tipo "TCP/IP " con puertos cerrados, y el resultado es "ENCONNREFUSED " o error de conexión porque el puerto es rechazado/cerrado.

Conclusión

¡Felicidades! ha instalado correctamente Uptime-Kuma con el servidor web Apache como proxy inverso y ha asegurado la implementación de Uptime-Kuma con SSL Letsencrypt. Para la siguiente fase, puede agregar sus hosts y activar la notificación para cualquier incidente de caída.


Ubuntu
  1. Cómo instalar Redis en Ubuntu 18.04

  2. Cómo instalar X2Goserver en Ubuntu 14.04 como alternativa a VNC

  3. Cómo instalar SonarQube en Ubuntu 18.04 LTS

  4. ¡Lanzamiento de Wine 6.9! Cómo instalar en Ubuntu 21.04, 20.04

  5. Cómo usar el comando Uptime en Ubuntu Linux

Cómo instalar UVdesk Helpdesk en Ubuntu

Cómo instalar el software Krita en Ubuntu 20.04 o 18.04 LTS

Cómo instalar Teamviewer en Ubuntu 20.04 a través de Terminal

Cómo instalar la alternativa RawTherapee de Adobe Lightroom en Ubuntu

Cómo instalar Jenkins en Ubuntu 22.04

Cómo instalar NVM en Ubuntu 22.04