Watchflare docs
Sur cette page

Configurer l'Agent Watchflare

Tous les champs de agent.conf : connexion Hub, TLS, intervalles, journal d'écriture anticipée, journaux, variables d'environnement.

L’agent lit un fichier TOML, écrit par register. Dans la pratique, vous n’y touchez presque jamais. Un redémarrage du service recharge le fichier.

PlateformeChemin
Linux/etc/watchflare/agent.conf
macOS (Apple Silicon)/opt/homebrew/etc/watchflare/agent.conf
macOS (Intel)/usr/local/etc/watchflare/agent.conf

Attention

agent.conf contient agent_key. Traitez-le comme un mot de passe. Droits 0640 (root:watchflare sous Linux). Ne le copiez pas ailleurs, ne le collez pas dans un ticket.


Exemple complet

agent.conf toml
# Hub connection
server_host = "hub.example.com"
server_port = "50051"

# Credentials (written at registration, do not edit manually)
agent_id  = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
agent_key = "base64encodedkey..."

# TLS
ca_cert_file = "/etc/watchflare/ca.pem"
server_name  = "watchflare"

# Collection intervals
heartbeat_interval = 5    # seconds
metrics_interval   = 30   # seconds

# Write-Ahead Log
wal_enabled    = true
wal_path       = "/var/lib/watchflare/metrics.wal"
wal_max_size_mb = 10

# Logging
log_file  = "/var/log/watchflare-agent.log"
log_level = "info"

# Container metrics (opt-in)
container_metrics = false

Champs

Connexion

ChampTypeDéfautDescription
server_hoststringAucunNom d’hôte ou IP du Hub
server_portstring"50051"Port gRPC du Hub

Identifiants

register les écrit. N’y touchez pas.

ChampTypeDescription
agent_idstringUUID attribué par le Hub à l’enregistrement
agent_keystringClé HMAC pour signer les requêtes gRPC

TLS

ChampTypeDéfautDescription
ca_cert_filestringAucunChemin du certificat CA du Hub, écrit à l’enregistrement
server_namestring"watchflare"Nom présenté au TLS. Écrit à l’enregistrement d’après la réponse du Hub. Doit correspondre au CN du certificat.

Intervalles de collecte

ChampTypeDéfautDescription
heartbeat_intervalint5Secondes entre deux heartbeats
metrics_intervalint30Secondes entre deux collectes (et envois) de métriques

Write-Ahead Log

ChampTypeDéfautDescription
wal_enabledbooltrueÉcrit les métriques en local tant que le Hub est injoignable
wal_pathstring{data_dir}/metrics.walChemin du fichier WAL
wal_max_size_mbint10Taille max du WAL, en Mo. Au-delà, les plus anciens sont jetés (FIFO).

Journaux

ChampTypeDéfautDescription
log_filestring""Chemin du fichier de journal. Vide : stdout, récupéré par systemd ou launchd.
log_levelstring"info"Niveau : debug, info, warn, error. Pour forcer le debug : WATCHFLARE_DEBUG=1.

Métriques conteneurs

ChampTypeDéfautDescription
container_metricsboolfalseMétriques par conteneur (Docker et Podman). Sous Linux, l’utilisateur watchflare doit être dans le groupe docker. Voir Métriques Docker.

Variables d’environnement

Quatre variables pour changer les chemins ou le niveau de journal. Homebrew les pose tout seul sous macOS. Vous n’avez généralement rien à exporter.

VariableDescription
WATCHFLARE_CONFIG_DIRDossier de config (/etc/watchflare sous Linux)
WATCHFLARE_DATA_DIRDossier de données (/var/lib/watchflare sous Linux)
WATCHFLARE_LOG_FILEChemin du fichier de journal
WATCHFLARE_DEBUG1 force le niveau debug, quel que soit log_level

Fichiers

Linux

CheminRôlePropriétaireMode
/usr/local/bin/watchflare-agentBinaireroot:root755
/etc/watchflare/agent.confConfigroot:watchflare640
/etc/watchflare/ca.pemCertificat CAroot:watchflare640
/var/lib/watchflare/Donnéeswatchflare:watchflare750
/var/lib/watchflare/metrics.walWALwatchflare:watchflare640
/var/lib/watchflare/packages.state.jsonÉtat des paquetswatchflare:watchflare640
/var/log/watchflare-agent.logJournauxwatchflare:watchflare644
/etc/systemd/system/watchflare-agent.serviceServiceroot:root644

macOS

$(brew --prefix) vaut /opt/homebrew sur Apple Silicon, /usr/local sur Intel.

CheminRôle
$(brew --prefix)/bin/watchflare-agentBinaire
$(brew --prefix)/etc/watchflare/agent.confConfig
$(brew --prefix)/etc/watchflare/ca.pemCertificat CA
$(brew --prefix)/var/watchflare/Données
$(brew --prefix)/var/watchflare/metrics.walWAL
$(brew --prefix)/var/watchflare/packages.state.jsonÉtat des paquets
$(brew --prefix)/var/log/watchflare-agent.logJournaux