Isoler le monitoring domotique du monitirong système :
Isolation des pannes : Si votre VM Home Assistant sature ou plante, votre monitoring infra (serveurs, switchs, routeur) reste opérationnel.
Performance : Vous ne surchargez pas la base de données de HA avec des milliers de métriques système (IOPS disques, traffic réseau des stations Debian).
Sécurité : Vous pouvez donner accès au Grafana "Domotique" à la famille, tout en gardant le Grafana "Infra" restreint.
Au lieu de jongler entre deux interfaces différentes, vous pouvez configurer les choses ainsi :
Prometheus HA : Gère uniquement les capteurs Zigbee, WiFi, états de présence...etc...
Prometheus Infra (Serveur dédié) : Gère vos stations Debian, Docker, Proxmox/ESXi, etc.
Grafana Central (sur le Serveur dédié) : Vous y ajoutez deux sources de données (Data Sources).
L'avantage : Dans un même tableau de bord, vous pouvez comparer la température de votre CPU serveur (via Prometheus Infra) avec la température de la pièce (via Prometheus HA).
Utilisez l'intégration native Prometheus. Elle expose un "endpoint" (une page web de données) que votre Prometheus central pourra lire.
Config : Ajoutez prometheus: dans votre configuration.yaml.
Résultat : Vos données HA sont disponibles sur http://IP_HA:8123/api/prometheus.
C'est ici que vous installez la "Grosse Artillerie" :
Prometheus : Configurez-le pour "scraper" (récupérer) les données de vos stations Debian ET celles de Home Assistant.
Loki : Centralisez ici tous les logs (Promtail sur Debian + Logs de HA).
Grafana : Connectez-le à votre Prometheus local.
| Composant | Sur la VM Home Assistant | Sur le Serveur Dédié (Debian) |
|---|---|---|
| Collecte Métriques | Prometheus (Add-on léger) | Prometheus (Principal) |
| Collecte Logs | - | Loki (Centralise tout) |
| Visualisation | Grafana (Optionnel, pour tablette) | Grafana (Maître) |
| Agents | Intégration HA | Node Exporter / Promtail |
Pour les logs, je vous déconseille fortement de les séparer. Les logs sont très utiles pour corréler des événements. Exemple : "Ma lumière ne s'est pas allumée (Log HA) parce que mon serveur DNS était tombé (Log Serveur dédié)".
Ma recommandation : Envoyez tous les logs vers un seul Loki situé sur votre serveur dédié. Promtail (l'agent de logs) peut très bien envoyer les logs de votre VM HA vers votre serveur Debian via le réseau.
Sur la vm dédiée monitoring :
apt install -y docker.io docker-compose
mkdir -p /etc/monitoring/prometheus /etc/monitoring/loki
mkdir -p /var/lib/monitoring/prometheus /var/lib/monitoring/loki /var/lib/monitoring/grafana
chown -R 472:472 /var/lib/monitoring/grafana
chown -R 65534:65534 /var/lib/monitoring/prometheus
chmod -R 777 /var/lib/monitoring/loki
Créer /etc/monitoring/docker-compose.yml :
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
ports:
- "9090:9090"
volumes:
# CONFIG (Relatif ou absolu vers /etc)
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
# DATA (Absolu vers /var/lib)
- /var/lib/monitoring/prometheus:/prometheus
loki:
image: grafana/loki:latest
container_name: loki
restart: always
ports:
- "3100:3100"
volumes:
# CONFIG
- ./loki/loki-config.yaml:/etc/loki/local-config.yaml
# DATA
- /var/lib/monitoring/loki:/loki
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
volumes:
# DATA uniquement (la config se fait via l'UI ou des fichiers provisionnés)
- /var/lib/monitoring/grafana:/var/lib/grafana
ports:
- "3000:3000"
Créer /etc/monitoring/loki/loki-config.yaml :
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
instance_addr: 127.0.0.1
kvstore:
store: inmemory
schema_config:
configs:
- from: 2024-01-01
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
limits_config:
retention_period: 720h # 30 jours
compactor:
working_directory: /loki/retention
compaction_interval: 10m
retention_enabled: true
delete_request_store: filesystem
Créer /etc/monitoring/prometheus/prometheus.yml :
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'home-assistant'
metrics_path: '/api/prometheus'
authorization:
credentials: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
static_configs:
- targets: ['192.168.xx.yy:8123']
- job_name: 'debian-infra'
static_configs:
- targets:
- '192.168.XX.YY:9100'
- ...etc... (liste des serveurs)
Lancer les daemons :
docker compose up -d
Si une modification est apportée à un fichier de configuration :
cd /etc/monitoring
docker compose restart nom_du_daemon