Watchflare docs
Sur cette page

L'Agent Watchflare

Démon Go sur chaque machine surveillée : métriques, inventaire de paquets, état systemd. Utilisateur sans privilèges, gRPC/TLS en sortie uniquement.

L’agent tourne sur chaque machine à surveiller. C’est un démon Go, sans privilèges. Il ne parle qu’en sortie : aucun port ouvert en entrée.


Ce qu’il fait

Cinq boucles, indépendantes :

BoucleIntervalleRôle
Heartbeat5 sSignal de présence, avec les IP actuelles
Métriques30 sCollecte des métriques système et envoi au Hub
Inventaire des paquets60 s après le démarrage, puis tous les jours à 03:00Scan des paquets, envoi du delta au Hub
Inventaire des services60 s après le démarrage, puis toutes les 15 minCatalogue des unités systemd (Linux + systemd uniquement)
Santé des services30 sÉtat des services systemd (Linux + systemd uniquement)

Ce qu’il remonte

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 CPU et autres (stockage, gestion d’énergie, etc.) sur les machines physiques
SystèmeUptime, charge moyenne (1/5/15 min), nombre de processus
ConteneursCPU, mémoire, réseau par conteneur (Docker/Podman, à activer)
ServicesUnités systemd et leur état, sur les hôtes Linux
PaquetsPaquets installés, versions, et détection des obsolètes parmi ~30 gestionnaires

L’agent ajuste tout seul ce qu’il collecte :

EnvironnementCe qui est omis
Conteneur d’application (Docker, Podman)Disque, E/S disque, réseau, swap, température
Conteneur système (LXC)Rien — collecte complète, comme une machine
Machine virtuelleCapteurs de température
Machine physiqueRien — collecte complète

Comment ça marche

WAL (journal d’écriture anticipée). Les métriques sont d’abord écrites dans un fichier local, puis envoyées. Si le Hub ne répond pas, le journal continue de se remplir. À la reconnexion, les points partent dans l’ordre. Une coupure courte ne les fait pas disparaître. Plafond par défaut : 10 Mo ; au-delà, les plus anciens sont jetés. Réglable avec wal_max_size_mb dans agent.conf.

Sécurité. Chaque requête gRPC est signée HMAC-SHA256 (identifiant de l’agent + horodatage + contenu). Le Hub refuse tout ce qui sort d’une fenêtre de ±5 minutes. Le canal est en TLS 1.3. À l’enregistrement, l’agent fige la CA du Hub.

Sans privilèges. Sous Linux, utilisateur système watchflare : pas de shell, home non inscriptible (/var/empty), écriture limitée à son dossier de données. Sous macOS, Homebrew le lance sous votre compte.


Prérequis

Linux

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

macOS

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

Installation