diff --git a/ansible/roles/grafana_alloy/templates/config.alloy.j2 b/ansible/roles/grafana_alloy/templates/config.alloy.j2 index 3a39016..864296b 100644 --- a/ansible/roles/grafana_alloy/templates/config.alloy.j2 +++ b/ansible/roles/grafana_alloy/templates/config.alloy.j2 @@ -1,6 +1,6 @@ // ============================================================================= -// Template Grafana Alloy final pour le monitoring complet du Raspberry Pi -// Envoie les métriques à Prometheus et les logs à Loki. +// Template Grafana Alloy pour Ansible +// Monitoring complet : Métriques Système + Statut Dnsmasq + Logs Système // ============================================================================= logging { @@ -8,43 +8,26 @@ logging { format = "{{ alloy_log_format | default("logfmt") }}" } -// ----------------------------------------------------------------------------- -// Section 1 : Définition des destinations sur le serveur de monitoring -// ----------------------------------------------------------------------------- - -// Destination pour les métriques +// --- Destinations --- prometheus.remote_write "to_prometheus" { endpoint { - // URL de votre serveur Prometheus url = "{{ alloy_prometheus_url | default("http://vision.lab.home.arnodo.fr:9090/api/v1/write") }}" } } -// Destination pour les logs loki.write "to_loki" { endpoint { - // URL de votre serveur Loki url = "{{ alloy_loki_url | default("http://vision.lab.home.arnodo.fr:3100/loki/api/v1/push") }}" } - // On ajoute un label à tous les logs pour savoir d'où ils viennent external_labels = { source = "raspberrypi", } } -// ----------------------------------------------------------------------------- -// Section 2 : Collecte des données sur le Raspberry Pi -// ----------------------------------------------------------------------------- - -// --- Collecte des métriques --- - -// Active le module interne pour les métriques système (CPU, RAM, etc.) +// --- Pipeline des métriques --- prometheus.exporter.unix "system" {} - -// Active le module interne pour vérifier le statut de Dnsmasq prometheus.exporter.dnsmasq "dnsmasq_status" {} -// Scrape les métriques des deux modules ci-dessus et les envoie à Prometheus prometheus.scrape "local_metrics" { targets = concat( prometheus.exporter.unix.system.targets, @@ -53,18 +36,15 @@ prometheus.scrape "local_metrics" { forward_to = [prometheus.remote_write.to_prometheus.receiver] } - -// --- Collecte des logs --- - -// Lit les logs du journal systemd (la méthode la plus propre et complète) +// --- Pipeline des logs --- loki.source.journal "system_logs" { - // Ajoute un label "job" aux logs pour les identifier dans Grafana - relabel_rules { - rule { - target_label = "job" - action = "replace" - replacement = "journal" - } + forward_to = [loki.relabel.add_job_label.receiver] +} + +loki.relabel "add_job_label" { + rule { + target_label = "job" + replacement = "journal" } forward_to = [loki.write.to_loki.receiver] }