GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Kuma - Alternative au robot de disponibilité auto-hébergé sur Ubuntu 20.04

Uptime-Kuma est un outil de surveillance open source comme "Uptime Robot" écrit en Nodejs. C'est un outil de surveillance auto-hébergé avec un tableau de bord élégant et prend en charge plusieurs méthodes de notification. Uptime-Kuma surveillera la disponibilité des hôtes ou des serveurs via le protocole HTTP(s), TCP et Ping. Si les hôtes ne peuvent pas être connectés via ces protocoles dans de tels intervalles, les hôtes de disponibilité enverront des notifications via Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), etc.

Dans ce guide, vous apprendrez à installer Uptime-Kuma sur un serveur Ubuntu et à utiliser le serveur Web Apache comme proxy inverse avec un certificat SSL Let's Encrypt gratuit devant. Lors de l'installation, vous découvrirez également l'installation de nodejs via nvm (node ​​version manager).

Prérequis

  • Un serveur Ubuntu 20.04.
  • Un utilisateur avec des privilèges root. Vous utiliserez cet utilisateur pour installer de nouveaux packages et modifier les paramètres système.

Ajout d'un nouvel utilisateur

Tout d'abord, vous allez ajouter un nouvel utilisateur au système Ubuntu. Pour des raisons de sécurité, l'application Uptime-Kuma sera exécutée en tant qu'utilisateur non root.

1. Ajoutez un nouvel utilisateur en exécutant la commande ci-dessous. Pour cet exemple, nous utiliserons le nom d'utilisateur "johndoe ". assurez-vous de changer le nom d'utilisateur avec le vôtre.

useradd -m -s /bin/bash johndoe

Options que vous devez connaître :

  • -m =crée automatiquement le répertoire personnel pour le nom d'utilisateur, qui sera disponible sous le répertoire '/home'.
  • -s =définit le chemin du shell pour l'utilisateur, la plupart des Linux ont le shell `/bin/bash.

2. Après cela, exécutez la commande suivante pour configurer le mot de passe de l'utilisateur "johndoe".

passwd johndoe

Tapez maintenant un nouveau mot de passe fort et répétez, puis appuyez sur "Entrée " pour confirmer.

3. Ensuite, ajoutez l'utilisateur "johndoe" au groupe "sudo " en utilisant la commande ci-dessous.

usermod -aG sudo johndoe

En ajoutant des utilisateurs au "sudo ", il permettra aux utilisateurs d'exécuter le "sudo su" commande et obtenez les privilèges root.

Installer NVM (Node Version Manager)

NVM ou Node Version Manager est un outil de ligne de commande permettant d'installer plusieurs versions de nodejs sur un seul système. Cet outil vous permet d'installer une version spécifique de nodejs pour vos applications, rend votre environnement de développement et de déploiement flexible.

Pour cette phase, vous installerez le nvm sous l'utilisateur non root "johndoe".

1. À partir de votre shell root, connectez-vous à l'utilisateur "johndoe" à l'aide de la commande suivante.

su - johndoe

2. Téléchargez et exécutez le script d'installation nvm comme suit.

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

3. Après avoir réussi, rechargez l'environnement bash à l'aide de la commande ci-dessous.

source ~/.bashrc

4. Vérifiez maintenant le "nvm " installation en exécutant la commande ci-dessous.

commande -v nvm

Si votre installation est réussie, vous verrez le résultat "nvm ". Sinon, vous ne verrez rien ou un résultat vide.

Exécutez maintenant la commande nvm comme ci-dessous.

nvm --help

Et vous verrez la page d'aide manuelle de la commande nvm.

Node Version Manager (v0.38.0)

Remarque : fait référence à toute chaîne de type version que nvm comprend. Cela inclut :
 - les numéros de version complets ou partiels, commençant par un "v" facultatif (0.10, v0.1.2, v1)
 - les alias par défaut (intégrés) :node, stable, unstable, iojs , system
  - alias personnalisés que vous définissez avec `nvm alias foo`

 Toutes les options qui produisent une sortie colorisée doivent respecter l'option `--no-colors`.

Utilisation :
  nvm --help                               Afficher ce message
    --no-colors                             Supprimer la sortie colorée

.....

Remarque :
 pour supprimer, supprimer ou désinstaller nvm - supprimez simplement le dossier `$NVM_DIR` (généralement `~/.nvm`)

Installer la version Nodejs LTS

Pour installer l'application uptime-Kuma, vous devez installer le nodejs>=14 , git , et pm2 . Pour ce point, vous allez installer la dernière version de nodejs LTS à l'aide de la commande nvm.

1. Exécutez la commande nvm ci-dessous pour installer la dernière version de nodejs LTS.

installation nvm --lts

Une fois l'installation réussie, vous verrez une sortie similaire à celle ci-dessous.

La première version de nodejs que vous installez devient la version par défaut de votre environnement de développement.

2. Exécutez maintenant la commande suivante pour vérifier l'installation de nodejs.

node --version
npm --version

Si votre installation réussit, vous verrez une sortie similaire à celle ci-dessous.

# version nodejs
v14.17.4

# version npm
6.14.14

Télécharger et installer Uptime-Kuma

À ce stade, vous êtes prêt à installer l'application Uptime-Kuma.

1. Clonez le code source uptime-Kuma à l'aide de la commande git ci-dessous.

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

2. Après cela, changez le répertoire de travail en "uptime-kuma/ " et exécutez la commande npm pour installer tous les packages nécessaires pour uptime-kuma.

cd uptime-kuma/
configuration de l'exécution de npm

Et vous verrez une sortie similaire à celle ci-dessous.

Configurer Uptime-Kuma avec pm2

Qu'est-ce que le pm2 ? C'est un gestionnaire de processus nodejs qui vous aidera à gérer et à maintenir votre application nodejs en vie pour toujours. pm2 possède des fonctionnalités intégrées qui facilitent le déploiement de l'application nodejs, il vous permet de surveiller l'état de votre application, les journaux et même de configurer le fichier de service pour votre application.

1. Installez le package pm2 à l'aide de la commande npm ci-dessous.

npm installer pm2

2. Une fois l'installation terminée, exécutez la commande pm2 ci-dessous pour démarrer l'application uptime-kuma.

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

Et vous verrez les messages de sortie comme ci-dessous.

Comme on le voit sur l'image, le nom de l'application "uptime-kuma " est en cours d'exécution avec le statut "en ligne ".

3. Pour vérifier l'état de votre application sur pm2, exécutez les commandes suivantes ci-dessous.

Vérifiez l'état de l'application nodejs.

statut pm2

Vérifiez les journaux d'application nodejs.

journaux pm2

Surveillance des applications nodejs en temps réel.

moniteur pm2

4. Ensuite, exécutez la commande pm2 suivante pour générer le fichier de service pour l'application uptime-kuma.

démarrage pm2

Après cela, vous devez exécuter la commande comme indiqué sur la sortie.

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 démarrage systemd -u johndoe --hp /home/johndoe

Assurez-vous d'utiliser le "sudo " et entrez le bon mot de passe pour que votre utilisateur obtienne les privilèges root.

Une fois la commande terminée, vous verrez la sortie suivante.

Comme on le voit sur la capture d'écran, le pm2 génère un service systemd basé sur l'utilisateur, pour cet exemple est "pm2-johndoe.service ".

Exécutez maintenant la commande suivante pour générer et enregistrer l'état de l'application uptime-kuma. Cette commande est importante pour que l'application uptime-kuma s'exécute toujours en arrière-plan, même après le démarrage du système.

sauvegarde pm2

5. Pour vérifier le service 'pm2-johndoe' , exécutez la commande ci-dessous.

sudo systemctl est activé pm2-johndoe

Vous verrez la sortie `activée `, ce qui signifie que l'application uptime-kuma s'exécutera automatiquement après le démarrage du système.

De plus, vous pouvez essayer de redémarrer votre système et de vous reconnecter au serveur, puis de vérifier le service uptime-kuma.

sudo systemctl status pm2-johndoe

Et vous devriez voir une sortie similaire à celle ci-dessous.

 ? pm2-johndoe.service - Gestionnaire de processus PM2
     Chargé :chargé (/etc/systemd/system/pm2-johndoe.service ; activé ; fournisseur prédéfini :activé)
     Actif :actif (en cours d'exécution) depuis le mar 2021 -08-10 01:52:37 UTC ; Il y a 3min 57s
       Documents :https://pm2.keymetrics.io/
   PID principal :745 (PM2 v5.1.0 :Dieu)
      Tâches :34 (limite :2 343)
     Mémoire :120,4 M
     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

10 août 01:52:36 ubuntu64 pm2[633] :[PM2] Création du démon PM2 avec pm2_home=/home/johndoe/.pm2
10 août 01:52:37 ubuntu64 pm2[633] :[PM2] PM2 démonisé avec succès
10 août 01:52:37 ubuntu64 pm2[633] :[PM2] Ressuscité
10 août 01:52 :37 ubuntu64 pm2[633] :[PM2] Restauration des processus situés dans /home/johndoe/.pm2/dump.pm2
10 août 01:52:37 ubuntu64 pm2[633] :[PM2] Processus /home/johndoe /.nvm/versions/node/v14.17.4/bin/npm restauré

Le "pm2-johndoe.service " est opérationnel au démarrage du système.

Configurer Apache en tant que proxy inverse

Pour ce guide, vous allez installer et configurer le serveur Web Apache en tant que proxy inverse pour l'application uptime-Kuma.

1. Exécutez la commande suivante pour installer les packages de serveur Web apache.

sudo apt install apache2

Tapez "y" et appuyez sur "Entrée " pour installer le serveur web apache.

2. Après cela, activez certains modules apache à l'aide de la commande ci-dessous.

sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http réécrire les en-têtes deflate proxy_balancer proxy_connect proxy_html

3. Ensuite, créez une nouvelle configuration d'hôte virtuel 'uptime-kuma.conf ' à l'aide de la commande de l'éditeur nano ci-dessous.

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

Collez la configuration suivante dans votre shell de terminal et modifiez le nom de domaine "uptime.example.net " avec votre domaine tel que "domaine.com ".


  ServerName uptime.example.net

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

Appuyez sur "Ctrl+x " et tapez "O " pour enregistrer la configuration.

4. Activez maintenant la configuration de l'hôte virtuel apache "uptime-kuma" à l'aide de la commande ci-dessous.

sudo a2ensite uptime-kuma

Après cela, exécutez la commande suivante pour vérifier la configuration apache et assurez-vous que vous n'avez aucune erreur.

test de configuration sudo apachectl

5. Appliquez maintenant la nouvelle configuration en redémarrant le service apache à l'aide de la commande ci-dessous.

sudo systemctl redémarrer apache2

Sécuriser Uptime-kuma avec SSL Letsencrypt

Pour sécuriser l'accès Uptime-Kuma, vous allez configurer le SSL de Letsencrypt pour le serveur web apache.

1. Tout d'abord, installez l'outil certbot en exécutant la commande suivante.

sudo apt installer python3-certbot-apache

Tapez "y " et appuyez sur "Entrée " pour lancer l'installation.

2. Une fois l'installation terminée, générez le SSL letsencrypt à l'aide de la commande certbot comme ci-dessous.

sudo certbot --apache votredomaine.com

Tapez votre adresse e-mail pour vous inscrire à Letsencrypt et appuyez sur "Entrée " pour continuer. Letsencrypt enverra des e-mails à votre adresse e-mail chaque fois que vos certificats SSL expireront.

```
Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.log
Plugins sélectionnés :Authenticator apache, Installer apache
Entrez l'adresse e-mail (utilisée pour le renouvellement urgent et la sécurité avis) (Entrez 'c' pour
annuler) :[email protected]

Pour le Letsencrypt TOS (Conditions d'utilisation), tapez "A " pour accepter et appuyez sur "Entrée " pour continuer.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Veuillez lire le Conditions d'utilisation sur
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Vous devez
accepter afin de vous inscrire auprès du serveur ACME à
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel :A

Pour le partage d'e-mail avec EFF (Electronic Frontier Foundation), vous pouvez taper "Y " pour oui et "N " pour non. Pour cet exemple, nous ne partagerons pas d'adresse e-mail avec EFF.

Seriez-vous prêt à partager votre adresse e-mail avec l'Electronic Frontier
Foundation, un partenaire fondateur du projet Let's Encrypt et l'organisation à but non lucratif
qui développe Certbot ? Nous aimerions vous envoyer un e-mail à propos de notre travail
de cryptage du Web, des actualités de l'EFF, des campagnes et des moyens de soutenir la liberté numérique.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Oui)oui/(N)o :N

Maintenant, l'outil certbot générera SSL Letsencrypt pour le nom de domaine Uptime-Kuma. En outre, il ajoutera des configurations supplémentaires pour la configuration de l'hôte virtuel apache.

Il vous sera demandé de configurer la redirection automatique de HTTP vers HTTPS. Tapez le numéro "2" pour configurer la redirection automatique Apache HTTP vers HTTPS et appuyez sur "Entrée ".

```
Veuillez choisir de rediriger ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 : Aucune redirection – Ne plus apporter de modifications à la configuration du serveur Web.
2 : Redirection – Redirige toutes les requêtes pour sécuriser l'accès HTTPS. Choisissez cette option pour les
nouveaux sites ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler cette
modification en modifiant la configuration de votre serveur Web.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sélectionnez le numéro approprié [1-2] puis [enter] (appuyez sur 'c' pour annuler) :2

Une fois le processus de déploiement réussi, vous verrez une sortie similaire à celle ci-dessous.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Félicitations ! Vous avez activé avec succès https://uptime.example.net

Vous devriez tester votre configuration sur :
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

REMARQUES IMPORTANTES :
 - Félicitations ! Votre certificat et votre chaîne ont été enregistrés dans :
   /etc/letsencrypt/live/uptime.example.net/fullchain.pem
   Votre fichier de clé a été enregistré dans :
   /etc/letsencrypt/ live/uptime.example.net/privkey.pem
   Votre certificat expirera le 2021-10-10. Pour obtenir une version nouvelle ou modifiée
   de ce certificat à l'avenir, il vous suffit d'exécuter à nouveau certbot
   avec l'option "certonly". Pour renouveler de façon non interactive *tous* vos
   certificats, exécutez "certbot renouveler"
 - Les informations d'identification de votre compte ont été enregistrées dans votre répertoire de configuration Certbot
   dans /etc/letsencrypt. Vous devriez faire une
   sauvegarde sécurisée de ce dossier maintenant. Ce répertoire de configuration contiendra
   également les certificats et les clés privées obtenus par Certbot, donc
   faire des sauvegardes régulières de ce dossier est idéal.
 - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en :
  />
   Faire un don à ISRG / Let's Encrypt :   https://letsencrypt.org/donate
   Faire un don à EFF :                    https://eff.org/donate-le

 - Nous n'avons pas pu vous inscrire à la liste de diffusion EFF car votre
   adresse e-mail semble invalide. Vous pouvez réessayer plus tard en
   visitant https://act.eff.org.

Vérifier l'installation de Uptime-Kuma

1. Ouvrez votre navigateur Web et saisissez l'installation de l'URL Uptime-Kuma dans la barre d'adresse.

https://uptime.example.net/

Vous serez redirigé vers la connexion sécurisée HTTPS.

2. Sur la première page, créez un nouvel utilisateur administrateur pour Uptime-kuma. Tapez votre utilisateur administrateur et votre mot de passe, puis cliquez sur "Créer bouton "

3. Après cela, connectez-vous avec votre nouveau nom d'utilisateur et mot de passe, puis cliquez sur "Connexion bouton ".

Vous verrez maintenant le tableau de bord uptime-kuma.

4. Pour ajouter un nouvel hôte à surveiller, cliquez sur le bouton "Ajouter un nouveau moniteur ".

5. Pour cet exemple, vous surveillerez le site Web, choisissez donc le "Type de moniteur " comme "HTTP(s) ", saisissez l'adresse URL du site Web, cliquez sur "Configurer la notification " pour la prise en charge des notifications, puis vous cliquez sur "Enregistrer bouton " en bas de la page.

6.Maintenant, vous serez redirigé vers le tableau de bord uptime-Kuma et vous verrez votre hôte sur la page du tableau de bord.

Ci-dessous un autre exemple après avoir ajouté le nouveau type "TCP/IP " avec des ports fermés, et le résultat est "ENCONNREFUSED " ou erreur de connexion car le port est refusé/fermé.

Conclusion

Toutes nos félicitations! vous avez installé avec succès le serveur Web Uptime-Kuma avec Apache en tant que proxy inverse et sécurisé le déploiement Uptime-Kuma avec SSL Letsencrypt. Pour la phase suivante, vous pouvez ajouter vos hôtes et activer la notification pour tout incident en panne.


Ubuntu
  1. Comment installer Redis sur Ubuntu 18.04

  2. Comment installer X2Goserver sur Ubuntu 14.04 comme alternative à VNC

  3. Comment installer SonarQube sur Ubuntu 18.04 LTS

  4. Sortie de Wine 6.9 ! Comment installer dans Ubuntu 21.04, 20.04

  5. Comment utiliser la commande Uptime dans Ubuntu Linux

Comment installer UVdesk Helpdesk sur Ubuntu

Comment installer le logiciel Krita sur Ubuntu 20.04 ou 18.04 LTS

Comment installer Teamviewer sur Ubuntu 20.04 via Terminal

Comment installer Adobe Lightroom Alternative RawTherapee dans Ubuntu

Comment installer Jenkins sur Ubuntu 22.04

Comment installer NVM sur Ubuntu 22.04