Deux réalisations orientées infrastructure et supervision du SI
Mise en place d'un cluster de serveurs supervisés avec l'agent Beszel pour centraliser les métriques.
Déploiement de l'agent Beszel sur des hôtes Linux, FreeBSD et Windows Server, reliés à un hub central.
Étapes de déploiement Web 2 et configuration HAProxy sur pfSense.
Cloner la VM Web existante sur Proxmox (pve.carlann-18.lan), la nommer CL18-SRV04 et la connecter au bridge vmbr3 (VLAN 30).
address 10.18.30.15 netmask 255.255.255.0 gateway 10.18.30.1
sudo systemctl restart networking
echo "<h1>Bienvenue sur CL18-SRV04 (Web 2)</h1>" | sudo tee /var/www/html/index.html
Déplacer le port admin dans System > Advanced > Admin Access : passer de 443 à 8443.
L’accès administrateur devient alors : https://10.18.99.1:8443.
Créer un backend dans Services > HAProxy > Backend > Add :
Ajouter les serveurs :
Name Address Port Web1 10.18.30.11 80 Web2 10.18.30.15 80
Health check : HTTP / OPTIONS
Créer un frontend dans Services > HAProxy > Frontend > Add :
Cliquer sur Apply Changes.
Aller dans Firewall > Rules > WAN > Add :
Action: Pass Protocol: TCP Source: Any Destination: WAN address, port 80
Enregistrer puis Apply Changes.
Vérifier les statistiques HAProxy via http://10.18.99.1:9000 : CL18-SRV02 et CL18-SRV04 doivent être en vert.
Depuis un poste du VLAN 10 (WAN), accéder à l’IP WAN de pfSense (paris.carlann-18.lan) et utiliser Ctrl+F5 pour vérifier l’alternance entre CL18-SRV02 et CL18-SRV04.
Failover : éteindre CL18-SRV02 sur Proxmox. Le site doit rester accessible via CL18-SRV04 et le serveur éteint doit passer en rouge dans les statistiques.
Beszel est une solution légère de supervision composée d’un hub (interface web) et d’un agent installé sur chaque machine supervisée. Le hub fournit la clé publique à utiliser sur les agents.
Extraits du hub Beszel et du panneau d’ajout d’un nouveau système.
Sur un serveur Debian / Ubuntu (ou tout Linux avec systemd), l’installation recommandée se fait via le script officiel,
qui crée l’utilisateur de service, installe le binaire et enregistre un service beszel-agent.service.
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh \ && chmod +x /tmp/install-agent.sh \ && sudo /tmp/install-agent.sh
Le script demande au minimum :
KEY) ;45876, option -p) ;-url) et un token d’authentification (-t).Le service peut ensuite être vérifié / relancé via systemd :
sudo systemctl status beszel-agent sudo systemctl restart beszel-agent
Sur FreeBSD, on peut utiliser le même script d’installation ou télécharger manuellement le binaire adapté depuis les releases GitHub, puis le lancer avec les paramètres nécessaires :
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/\
beszel-agent_$(uname -s)_$(uname -m).tar.gz" | tar -xz beszel-agent
./beszel-agent -key "VOTRE_CLE_PUBLIQUE" \
-token "VOTRE_TOKEN" \
-url "https://votre-hub-beszel"
Pour une exécution permanente, il est recommandé de créer un service (rc.d ou systemd selon l’init utilisé) qui définit les variables d’environnement suivantes :
KEY : clé publique de l’agent fournie par le hub ;TOKEN : token optionnel pour authentifier l’agent ;HUB_URL : URL d’accès au hub (par ex. https://beszel.mondomaine.fr) ;LISTEN : port ou socket utilisé pour l’écoute des connexions (par défaut 45876).Quand on installe l’agent manuellement sur Linux, on peut créer soi‑même le service systemd pour garantir le démarrage automatique au boot :
sudo tee /etc/systemd/system/beszel-agent.service > /dev/null << 'EOF' [Unit] Description=Beszel Agent Service After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/bin/beszel-agent Environment="LISTEN=45876" Environment="KEY=<votre_cle_publique>" Environment="TOKEN=<votre_token>" Environment="HUB_URL=<https://votre-hub-beszel>" Restart=on-failure RestartSec=5 StateDirectory=beszel-agent [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable beszel-agent.service sudo systemctl start beszel-agent.service
Cette configuration s’applique aussi bien à un serveur Debian qu’à un nœud de cluster Proxmox ou à tout autre hôte Linux disposant de systemd.
Sur Windows Server, l’agent est distribué via WinGet ou Scoop. Le projet fournit
un script PowerShell qui installe l’agent, NSSM (gestionnaire de services) et crée un service
beszel-agent avec les bonnes variables d’environnement.
powershell -ExecutionPolicy Bypass -Command ^ "& iwr -useb https://get.beszel.dev -OutFile \"$env:TEMP\\install-agent.ps1\"; ^ & Powershell -ExecutionPolicy Bypass -File \"$env:TEMP\\install-agent.ps1\""
Le script demande :
-Key : clé publique générée dans le hub ;-Port : port d’écoute (par défaut 45876) ;-Url : URL du hub ;-Token : token optionnel ;-ConfigureFirewall : ouverture automatique du port dans le pare‑feu Windows.La configuration peut ensuite être ajustée via NSSM :
nssm edit beszel-agent # Exemple : ajouter d'autres disques à surveiller nssm set beszel-agent AppEnvironmentExtra "+EXTRA_FILESYSTEMS=D:,E:" nssm restart beszel-agent