Watchflare docs
Sur cette page

Configurer l'Agent Watchflare

Tous les champs de agent.conf expliqués : connexion Hub, TLS, intervalles heartbeat et métriques, Write-Ahead Log, journaux, et redéfinitions par variables d'environnement.

L’agent est configuré via un fichier TOML écrit à l’enrôlement. Vous avez rarement besoin de l’éditer à la main, car la plupart des champs sont définis par la commande register. Le fichier est rechargé au redémarrage du service.

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 donc comme un mot de passe. Le fichier est en mode 0640 (root:watchflare sous Linux). N’exposez jamais son contenu.


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 adresse IP du Hub
server_portstring"50051"Port gRPC du Hub

Identifiants

Ces champs sont écrits automatiquement par register. Ne les éditez pas.

ChampTypeDescription
agent_idstringUUID attribué par le Hub à l’enrôlement
agent_keystringClé HMAC utilisée pour signer les requêtes gRPC

TLS

ChampTypeDéfautDescription
ca_cert_filestringAucunChemin du certificat CA du Hub, écrit à l’enrôlement
server_namestring"watchflare"Nom du serveur pour la validation du certificat TLS. Écrit à l’enrôlement d’après la réponse du Hub. Doit correspondre au CN du certificat.

Intervalles de collecte

ChampTypeDéfautDescription
heartbeat_intervalint5Secondes entre deux pings heartbeat
metrics_intervalint30Secondes entre la collecte et l’envoi des métriques

Write-Ahead Log

ChampTypeDéfautDescription
wal_enabledbooltrueActive la mise en tampon locale des métriques lorsque le Hub est injoignable
wal_pathstring{data_dir}/metrics.walChemin du fichier WAL
wal_max_size_mbint10Taille maximale du WAL en Mo. Les enregistrements les plus anciens sont jetés (FIFO) lorsque la limite est atteinte.

Journaux

ChampTypeDéfautDescription
log_filestring""Chemin du fichier de journal. Vide signifie stdout (capturé par le gestionnaire de services).
log_levelstring"info"Verbosité des journaux : debug, info, warn, error. Redéfinissez à l’exécution avec WATCHFLARE_DEBUG=1.

Métriques conteneurs

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

Variables d’environnement

Quatre variables d’environnement peuvent redéfinir les chemins et le comportement par défaut. Elles sont utilisées en interne par le wrapper du service Homebrew sous macOS et n’ont généralement pas besoin d’être définies à la main.

VariableDescription
WATCHFLARE_CONFIG_DIRRedéfinit le dossier de config (/etc/watchflare sous Linux)
WATCHFLARE_DATA_DIRRedéfinit le dossier de données (/var/lib/watchflare sous Linux)
WATCHFLARE_LOG_FILERedéfinit le chemin du fichier de journal
WATCHFLARE_DEBUGMettez 1 pour forcer le niveau de journal debug, quel que soit log_level

Emplacement des 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/Dossier de 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 et /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/Dossier de 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