Watchflare docs
Sur cette page

Présentation de l'Agent Watchflare

Démon Go léger qui collecte les métriques système, l'inventaire de paquets et les stats de conteneurs. Tourne sous un utilisateur sans privilèges, gRPC/TLS en sortie uniquement.

L’agent est un démon Go léger installé sur chaque hôte que vous voulez surveiller. Il tourne sous un utilisateur système sans privilèges et ne communique qu’en sortie, sans ouvrir aucun port entrant sur l’hôte surveillé.


Ce qu’il fait

L’agent exécute ces boucles indépendamment :

BoucleIntervalleRôle
Heartbeat5 sEnvoie un ping de présence avec les adresses IP actuelles
Métriques30 sCollecte les métriques système et les envoie au Hub
Inventaire des paquets60 s après le démarrage, puis tous les jours à 03:00Analyse les paquets installés, envoie le delta au Hub
Inventaire des services60 s après le démarrage, puis toutes les 15 minCatalogue les unités systemd (Linux avec systemd uniquement)
Santé des services30 sSignale l’état en direct des services systemd (Linux avec systemd uniquement)

Ce qu’il collecte

CatégorieMétriques
CPUUsage %, iowait, steal (VMs)
MémoireUtilisée, disponible, buffers, cached, swap
DisqueTotal, utilisé, débit lecture/écriture
RéseauBande passante entrante et sortante
TempératureCapteurs de température CPU et autres (stockage, gestion d’énergie, etc.) sur les hôtes physiques
SystèmeUptime, charge moyenne (1/5/15 min), nombre de processus
ConteneursCPU, mémoire, réseau par conteneur (Docker/Podman, à activer)
ServicesInventaire des unités systemd et état en direct sur les hôtes Linux
PaquetsPaquets installés, versions, et détection des obsolètes parmi ~30 gestionnaires de paquets pris en charge

L’agent s’adapte automatiquement à son environnement :

EnvironnementOmis
Conteneur d’application (Docker, Podman)Disque, E/S disque, réseau, swap, température
Conteneur système (LXC)Rien, surveillé comme un hôte complet
Machine virtuelleCapteurs de température
Hôte physiqueRien, collecte complète

Comment ça marche

WAL (Write-Ahead Log) : Les métriques sont ajoutées à un fichier local avant d’être envoyées. Si le Hub est injoignable, les métriques s’accumulent dans le WAL et sont rejouées dans l’ordre à la prochaine connexion réussie. Les métriques ne sont pas perdues pendant les coupures brèves. Par défaut, le WAL stocke jusqu’à 10 Mo de données, et une fois plein, les enregistrements les plus anciens sont jetés. Cette limite est ajustable via wal_max_size_mb dans agent.conf.

Sécurité : Chaque requête gRPC est signée avec HMAC-SHA256 (identifiant de l’agent + horodatage + payload). Le Hub refuse les requêtes hors d’une fenêtre d’horodatage de ±5 minutes. Toute la communication est en TLS 1.3, et l’agent épingle le certificat CA du Hub à l’enrôlement.

Empreinte minimale : L’agent tourne sous l’utilisateur système sans privilèges watchflare (Linux) ou sous l’utilisateur qui l’invoque (macOS via Homebrew). Il n’a pas de shell, un répertoire home non inscriptible (/var/empty), et un accès en écriture uniquement à son propre dossier de données.


Prérequis système

Linux

  • systemd (Ubuntu 18.04+, Debian 10+, RHEL/CentOS 7+, Fedora 30+, Amazon Linux 2+, Arch Linux)
  • curl ou wget
  • accès sudo pour l’installation

macOS

  • macOS 11 (Big Sur) ou plus récent
  • Intel ou Apple Silicon (M1/M2/M3/M4)
  • Homebrew

Installation