Aller au contenu

SRVSTAT : Monitorer ses serveurs avec Home Assistant

Introduction

Srvstat est un petit outil, développé en Rust, qui permet de collecter des métriques système (CPU, mémoire, disque) et de les publier sur un serveur MQTT.

Pourquoi srvstat ?

L'écriture de cet outil m'a permis de remplir 2 objectifs :

  • Apprendre Rust par la pratique,
  • Surveiller mon Homelab de manière centralisée.

En publiant les métriques sur un serveur MQTT, srvstat permet de centraliser la collecte des données. Home Assistant, agissant comme un simple abonné, peut alors récupérer ces informations et les afficher dans ses dashboards.

L'un des principaux avantages de cette architecture est de ne pas exposer directement les autres machines du réseau à Home Assistant (qui est exposé sur internet). En inversant la dépendance, on limite considérablement la surface d'attaque.

Comment ça marche ?

srvstat fonctionne en trois étapes simples :

  1. Collecte des métriques: L'application lit les informations système (CPU, mémoire, disque) directement sur la machine hôte.
  2. Publication sur MQTT: Les données collectées sont ensuite publiées sur un serveur MQTT, sous forme de messages.
  3. Consommation par Home Assistant: Home Assistant, configuré pour s'abonner aux topics MQTT correspondants, récupère les données et les affiche dans les entités et les cartes de votre choix.

La dernière version pour linux est disponible à l'adresse suivante : github srvstat.

Il peut être lancé comme un tache planifiée.

* * * * * BROKER_URL=tcp://127.0.0.1:1883 /usr/local/bin/srvstat > /dev/null  

Exemple de dashboard

Metic dashboard