Watchflare docs
Sur cette page

Dépannage

Le Hub ne démarre pas, l'agent ne remonte pas, trous dans les graphiques, paquets absents, CA qui a changé. Quoi regarder, quoi faire.

Hub

Le Hub s’arrête au démarrage

Ouvrez les journaux :

docker compose logs watchflare
MessageCauseQuoi faire
JWT_SECRET is required in environment variablesJWT_SECRET absentJWT_SECRET=$(openssl rand -base64 32) dans .env ou hub.env
JWT_SECRET too short current_length=X required=32Moins de 32 caractèresopenssl rand -base64 32
NOTIFICATION_ENCRYPTION_KEY too shortClé posée, trop courteUne nouvelle, ou retirez-la (optionnelle hors Compose)
failed to connect to databasePostgreSQL injoignableDocker : POSTGRES_HOST=postgres dans le Compose, pas seulement le .env. Binaire : POSTGRES_HOST dans hub.env.

Le tableau de bord ne répond pas

Docker

  • docker compose ps : le conteneur tourne
  • Port exposé : 8080 par défaut. HUB_PORT=80 dans le .env pour le 80
  • Firewall : 8080 (ou HUB_PORT) ouvert

Binaire

  • sudo systemctl status watchflare-hub
  • Écoute sur 8080 par défaut : ouvrez-le
  • journalctl -u watchflare-hub -n 30

HTTPS et cookies. Presque toujours : l’IP du reverse proxy n’est pas dans TRUSTED_PROXIES.


Agent

L’hôte reste pending

Le jeton expire 24 heures après sa création.

Page de l’hôte → ⋯ → Regenerate token, puis relancez l’installeur avec le nouveau.

L’hôte reste offline

Journaux :

bash
# Linux
journalctl -u watchflare-agent -n 30

# macOS
tail -30 $(brew --prefix)/var/log/watchflare-agent.log
MessageCauseQuoi faire
connect: connection refusedMauvaise IP ou mauvais port, ou 50051 filtréserver_host / server_port dans agent.conf ; firewall
configuration error (error: “config file not found…”)Pas encore enrôlésudo watchflare-agent register --token ... --host ...
Invalid agent credentialsClé HMAC qui ne correspond pasRéenrôler
context deadline exceededHub injoignable ou trop lentRéseau jusqu’au Hub
send failed: clock out of sync with HubPlus de 5 min d’écartNTP, bannière Clock desync
certificate signed by unknown authorityCA changée côté HubRéenrôler, TLS

Bannière Clock desync

Plus de 5 minutes d’écart. Le Hub refuse tout le gRPC de cet agent.

NTP sur la machine :

bash
# Linux : état
timedatectl status

# Linux : resynchroniser tout de suite
sudo systemctl restart systemd-timesyncd

La bannière part au premier heartbeat valide.

configuration error au démarrage

Le binaire est installé, pas enrôlé. Le journal dit configuration error / config file not found... :

bash
sudo watchflare-agent register \
  --token wf_reg_YOUR_TOKEN \
  --host YOUR_HUB_IP \
  --port 50051

Métriques

Rien sur une machine venant d’être enrôlée

Premier lot : 30 secondes. Après une minute, toujours vide : l’hôte est-il offline ?

Trous dans les graphiques

L’agent n’envoyait plus. Deux cas.

Hub injoignable, WAL saturé

Le journal local tient 10 Mo par défaut (~3 000 points). Au-delà, les plus anciens tombent.

WARN   WAL exceeds max size, truncating  max_mb=10
WARN   WAL exceeds max size on startup, truncating  max_mb=10

Montez wal_max_size_mb dans agent.conf, redémarrez. Voir wal_max_size_mb.

WAL désactivé

wal_enabled = false : rien n’est écrit en local. Un envoi raté est perdu.

ERROR  send failed, metrics lost (WAL disabled)  error="..."

Remettez wal_enabled = true, redémarrez.

Température à 0 en permanence

Uniquement les machines physiques. Pas de capteur sur :

  • une VM
  • un conteneur Docker

Attendu. Métriques système.

Pas de disque, pas de réseau

L’agent dans Docker ne les remonte pas. Posez-le sur l’OS.

Déjà sur l’hôte, et le disque manque ? Vérifiez qu’il n’est pas pris pour un conteneur :

bash
journalctl -u watchflare-agent -n 5
# cherchez : environment detected  type="Physical Host"

Pas d’onglet Containers

Il n’existe qu’une fois les métriques activées et un lot reçu.

  1. container_metrics = true dans agent.conf
  2. groups watchflare : groupe docker
  3. docker ps : Docker tourne
  4. sudo systemctl restart watchflare-agent après le groupe

Métriques Docker/Podman.


Inventaire de paquets

Packages vide juste après l’installation

Le premier scan part 60 secondes après le démarrage. Attendez 90 secondes.

Sans attendre : page de l’hôte → PackagesCollect now.

Rien n’a bougé depuis hier

Le passage quotidien : 03:00, heure de la machine. Hors ligne à cette heure : reporté au lendemain.

Même bouton : PackagesCollect now.

Erreurs :

bash
journalctl -u watchflare-agent -n 50 | grep -i package

Il manque des paquets

Un collecteur ne tourne que si l’outil est là. npm absent du PATH de watchflare : silence.

Qui a tourné :

bash
WATCHFLARE_DEBUG=1 sudo -u watchflare watchflare-agent run

Alertes et notifications

Aucun e-mail

  1. SMTP en place : Settings → Notifications
  2. Send test email
  3. Fenêtre de durée : le seuil doit tenir toute la durée (5 min par défaut)
  4. L’adresse dans Settings → Notifications est la bonne

L’e-mail de test échoue

ErreurCause probableQuoi faire
connection refusedMauvais hôte ou port587 STARTTLS, 465 TLS
authentication failedMauvais identifiantsResaisir
TLS handshake errorMauvais modestarttls à la place de tls, ou l’inverse

Remarque

Gmail et d’autres veulent un mot de passe d’application, pas celui du compte. Le mot de passe normal est refusé même s’il est le bon.

Les canaux restent muets

  1. Test à côté du canal, Settings > Notifications. Erreur = URL ou destination injoignable
  2. Interrupteur allumé
  3. Même fenêtre de durée que pour l’e-mail
  4. URL Shoutrrr du service : Canaux de notification
  5. Le Hub écrit les échecs en ERROR. Un canal silencieux : journaux du Hub

TLS et certificats

Plus aucun agent après un redémarrage du Hub

Souvent : server.pem retiré pour forcer un renouvellement. Le Hub a refait la CA et le certificat serveur. Les agents ont figé l’ancienne CA.

Réenrôlez chaque machine touchée :

bash
# Linux
sudo systemctl stop watchflare-agent
sudo rm /etc/watchflare/agent.conf /etc/watchflare/ca.pem
sudo watchflare-agent register --token wf_reg_YOUR_TOKEN --host YOUR_HUB_IP
sudo systemctl start watchflare-agent

Attention

Mode auto : on ne renouvelle pas le serveur tout seul. Retirer ca.pem ou server.pem régénère les deux. Tout le parc à réenrôler. Certificats TLS.

Le 50051 ne passe pas le reverse proxy

TCP sans terminaison TLS. Les agents figent la CA du Hub. Un certificat du proxy à la place : plus personne.

Traefik, Nginx, Caddy : Reverse proxy.