Installer Beszel avec Docker
Beszel

Installer Beszel avec Docker

Table des matières

GitHub - henrygd/beszel: A lightweight server monitoring hub with historical data, docker stats, and alerts.
A lightweight server monitoring hub with historical data, docker stats, and alerts. - henrygd/beszel

Quand on a un serveur, il est toujours utile de pouvoir collecter des informations, que ce soit en cas de problème, pour se faire une idée de la consommation en ressources d'une application ou par amour des graphiques. Si, si, j'en connais! ❤️

Quelque soit la raison, il y a de grandes chances que Beszel puisse vous intéresser si vous voulez faire du monitoring de votre serveur, ou, de vos serveurs.

Ce projet ayant 4 jours, on peut s'attendre à pas mal de changements, malgré son jeune âge, il est super stable et fonctionnel.


⚡Caractéristiques

  • Léger : Beaucoup plus léger et moins exigeant que les principales solutions.
  • Statistiques Docker : Historique de l'utilisation du processeur et de la mémoire pour chaque conteneur.
  • Alertes : Alertes configurables pour l'utilisation du processeur, de la mémoire et du disque, ainsi que pour l'état du système.
  • Multi-utilisateur : Chaque utilisateur dispose de son propre système. Les administrateurs peuvent partager les systèmes entre les utilisateurs.
  • Simple : L'installation est facile et ne nécessite pas que quoi que ce soit soit soit publiquement disponible en ligne.
  • OAuth / OIDC : prend en charge de nombreux fournisseurs OAuth2. L'authentification par mot de passe peut être désactivée.
  • Sauvegardes automatiques : Sauvegardez et restaurez vos données sur / à partir d'un disque ou d'un espace de stockage compatible S3.
  • API REST : Utilisez vos métriques dans vos propres scripts et applications.

L'installation du hub

Beszel est "scindé" en deux composants. L'application principale et un agent à déployer sur le serveur dont on veut avoir les informations. Si vous n'avez qu'un serveur, il faudra donc déployer les deux parties sur le même serveur.

  1. Créez votre docker-compose.yml dans le dossier où vous comptez installer le hub Beszel:
sudo nano docker-compose.yml
  1. Collez ça dedans en prenant soin d'adapter les ports et les volumes suivant votre configuration:
services:
  beszel:
    image: 'henrygd/beszel'
    container_name: 'beszel'
    restart: unless-stopped
    ports:
      - '8090:8090'
    volumes:
      - ./data:/beszel_data
  1. On va déployer l'application:
docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 8090 par défaut:
http://ip:8090/

ou votre domaine:

https://mondomaine.com

Création du compte administrateur

Lors du premier lancement de Beszel, on vous invite à créer un compte. Le premier compte créé est le compte administrateur. Soit vous créez votre compte manuellement ou avec votre compte GitHub.

  • username => Choisissez un nom d'utilisateur.
  • email => Choisissez un e-mail.
  • password => Choisissez un mot de passe fort.
  • confirm password => Confirmez votre mot de passe.

Cliquez sur Create account, ce qui va vous rediriger vers le tableau de bord:


L'installation de l'agent

Pour ajouter un serveur au hub, il faudra un agent à installer sur le serveur dont on veut récolter les données. Comme je vous l'avais dit plus haut, cela peut-être sur le même serveur si vous avez un seul serveur. C'est d'ailleurs ce que j'ai fait, sur le serveur de test servant à la création des articles/tutoriels de belginux.

Mais avant il faudra faire une petite manipulation.

Cliquez sur + Add System:

Une fenêtre va apparaître:

  • Name => Nommez le serveur.
  • Host / IP => indiquez soit l'IP ou le host du serveur.
  • Port => 48576 par défaut. Si vous changez ce port, il faudra aussi le changer dans le docker-compose.yml qui va suivre.
  • Public Key => Copiez la Public Key et mettez cette clé de côté provisoirement.

Cliquez sur Add system.

Dans mon cas j'ai créé un dossier agent à la racine d'où j'installe mes applications et dedans, je vais créer le docker-compose.

  1. Créer le docker-compose.yml:
sudo nano docker-compose.yml
  1. Collez ça dedans:
services:
  beszel-agent:
    image: 'henrygd/beszel-agent'
    container_name: 'beszel-agent'
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      PORT: 45876
      KEY: 'ssh-xxxxx'
  • KEY: 'ssh-xxxxx' => Remplacez ssh-xxxxx par la Public Key que vous avez copié précieusement.
  1. Vous pouvez déployer l'agent:
docker compose up -d

Retournez sur la hub:

Maintenant cliquez dans la zone du serveur:

Ce qui donne:

Il faudra un peu laisser de temps pour que la collecte d'infos soit plus parlante. N'hésitez pas à passer votre souris sur les graphiques pour avoir plus d'informations.

Après avoir laissé un peu tourné Beszel:


Fonctions avancées

Où que vous cliquiez dans ce menu...

...vous arriverez à cette page de connexion:

Connectez-vous pour la suite, vous arriverez sur ce tableau de bord:


Créer un utilisateur

Dans la partie Collections, users, cliquez sur + New record:

Remplissez les informations demandées:

  • Username => Indiquez un nom d'utilisateur.
  • Email => Indiquez l'adresse e-mail.
  • Password => Indiquez un mot de passe fort.
  • Password confirm => Confirmez le mot de passe.
  • Verified => Cochez cette option sans quoi votre utilisateur ne pourra pas se connecter.
  • role => Indiquez le rôle de l'utilisateur.
  • avatar => Si vous souhaitez ajouter un avatar à l'utilisateur, c'est ici.

Terminez en cliquant sur Create, notre utilisateur est bien créé:


Créer un backup

Cliquez sur Settings:

Ensuite sur Backups et pour créer un backup, sur Initialize new backup:

Nommez votre backup en suivant ce format: a-z0-9_-.zip. C'est à dire, par exemple, backup.zip ou encore 0001.zip,...

Cliquez sur Start backup:

Le backup est créé:

Vous avez trois options:

  • Download, pour télécharger le backup.
  • Restore, pour restaurer le backup.
  • Delete, pour supprimer le backup.

Configurer le serveur mail

Vous avez la possibilité de créer des alertes et de les avoir par e-mail.

Toujours dans Settings, partie Mail settings, il va falloir remplir quelques informations.

  • Sender name => Indiquez le nom de l'expéditeur.
  • Sender address => ⚠️ Indiquez l'adresse de l'expéditeur, c'est important pour la suite.

Vous avez trois templates que vous pouvez franciser. Un pour la vérification, un pour réinitialiser le mot de passe et un pour confirmer le changement d'e-mail.

Maintenant il faudra cocher Use SMTP mail server (recommended) pour activer la configuration du serveur mail proprement dit:

Si vous avez votre propre serveur mail, vous avez les informations nécessaires en votre possession. Vous pouvez également utiliser le serveur mail de Google, Infomaniak, Outlook,.. Je vous invite cordialement à lire cet article pour connaître les informations à fournir, et, suivant lequel vous choisissez, par exemple, Gmail, il faudra créer un mot de passe dédié. Je vous explique tout ici:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

Quand c'est correctement rempli, cliquez sur Save changes et vous pouvez tester si la configuration est fonctionnelle en cliquant sur Send test email:

Il faudra entrer l'adresse e-mail sur laquelle vous voulez envoyer l'e-mail de test et cliquez sur Send:

Apparemment cela fonctionne:

Je vais m'en assurer en allant consulter ma boîte mail:

Super, c'est fonctionnel! Je vais "m'amuser" à traduire un template et refaire l'opération.

Maintenant je vais recevoir l'e-mail en français:

Youpie!


Créer un alerte

Il existe deux méthodes. Je vous propose les deux mais sachez que la première est la plus simple.

Depuis l'Ui

Cliquez sur la cloche:

Une fenêtre va apparaître vous invitant à configurer les alertes comme bon vous semble, fermez la fenêtre quand vous avez fait votre choix:

Depuis les paramètres

Dans Collections, alerts, cliquez sur + New record:

Dans la partie user, cliquez sur Open picker:

Sélectionnez l'utilisateur en cliquant dessus et cliquez sur Set selection pour terminer:

Dans la partie system, cliquez sur Open picker:

Choisissez le serveur, ici je ne vais pas avoir trop difficile, il n'y en a que un, sélectionnez le serveur en cliquant dessus et cliquez sur Set selection pour terminer:

Dans la partie name, sélectionnez l'élément à surveiller, je vais choisir le CPU:

Je règle la valeur sur 1:

Cliquez sur Save change.

Il n'a pas fallu longtemps pour que je reçoive un e-mail:


zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.