ansible(dns): adding alloy configuration

This commit is contained in:
darnodo
2025-06-25 19:32:38 +02:00
parent 23440ad6bd
commit 3df6855bb0

View File

@@ -1,6 +1,6 @@
// ============================================================================= // =============================================================================
// Template Grafana Alloy final pour le monitoring complet du Raspberry Pi // Template Grafana Alloy pour Ansible
// Envoie les métriques à Prometheus et les logs à Loki. // Monitoring complet : Métriques Système + Statut Dnsmasq + Logs Système
// ============================================================================= // =============================================================================
logging { logging {
@@ -8,43 +8,26 @@ logging {
format = "{{ alloy_log_format | default("logfmt") }}" format = "{{ alloy_log_format | default("logfmt") }}"
} }
// ----------------------------------------------------------------------------- // --- Destinations ---
// Section 1 : Définition des destinations sur le serveur de monitoring
// -----------------------------------------------------------------------------
// Destination pour les métriques
prometheus.remote_write "to_prometheus" { prometheus.remote_write "to_prometheus" {
endpoint { endpoint {
// URL de votre serveur Prometheus
url = "{{ alloy_prometheus_url | default("http://vision.lab.home.arnodo.fr:9090/api/v1/write") }}" url = "{{ alloy_prometheus_url | default("http://vision.lab.home.arnodo.fr:9090/api/v1/write") }}"
} }
} }
// Destination pour les logs
loki.write "to_loki" { loki.write "to_loki" {
endpoint { endpoint {
// URL de votre serveur Loki
url = "{{ alloy_loki_url | default("http://vision.lab.home.arnodo.fr:3100/loki/api/v1/push") }}" 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 = { external_labels = {
source = "raspberrypi", source = "raspberrypi",
} }
} }
// ----------------------------------------------------------------------------- // --- Pipeline des métriques ---
// 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.)
prometheus.exporter.unix "system" {} prometheus.exporter.unix "system" {}
// Active le module interne pour vérifier le statut de Dnsmasq
prometheus.exporter.dnsmasq "dnsmasq_status" {} prometheus.exporter.dnsmasq "dnsmasq_status" {}
// Scrape les métriques des deux modules ci-dessus et les envoie à Prometheus
prometheus.scrape "local_metrics" { prometheus.scrape "local_metrics" {
targets = concat( targets = concat(
prometheus.exporter.unix.system.targets, prometheus.exporter.unix.system.targets,
@@ -53,18 +36,15 @@ prometheus.scrape "local_metrics" {
forward_to = [prometheus.remote_write.to_prometheus.receiver] forward_to = [prometheus.remote_write.to_prometheus.receiver]
} }
// --- Pipeline des logs ---
// --- Collecte des logs ---
// Lit les logs du journal systemd (la méthode la plus propre et complète)
loki.source.journal "system_logs" { loki.source.journal "system_logs" {
// Ajoute un label "job" aux logs pour les identifier dans Grafana forward_to = [loki.relabel.add_job_label.receiver]
relabel_rules { }
loki.relabel "add_job_label" {
rule { rule {
target_label = "job" target_label = "job"
action = "replace"
replacement = "journal" replacement = "journal"
} }
}
forward_to = [loki.write.to_loki.receiver] forward_to = [loki.write.to_loki.receiver]
} }