From 73f1874a595b402f5b46cf52895b992d7635161c Mon Sep 17 00:00:00 2001 From: c6ristian <c6ristian@christian.moe> Date: Fri, 18 Apr 2025 16:22:30 +0200 Subject: [PATCH] alloy --- deploy.yaml | 19 ++++++ inventories/eh22/host_vars/dhcp.yaml | 63 +++++++++++++++++++ inventories/eh22/host_vars/resolv-dns.yaml | 63 +++++++++++++++++++ .../files/unbound.conf.d/local-data.conf | 6 +- 4 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 inventories/eh22/host_vars/dhcp.yaml create mode 100644 inventories/eh22/host_vars/resolv-dns.yaml diff --git a/deploy.yaml b/deploy.yaml index eda80d1..ce5c87a 100644 --- a/deploy.yaml +++ b/deploy.yaml @@ -86,3 +86,22 @@ state: restarted daemon_reload: true become: true + + +- name: Install Alloy + hosts: resolv-dns + become: true + + tasks: + - name: Install Alloy + ansible.builtin.include_role: + name: grafana.grafana.alloy + +- name: Install Alloy + hosts: dhcp + become: true + + tasks: + - name: Install Alloy + ansible.builtin.include_role: + name: grafana.grafana.alloy \ No newline at end of file diff --git a/inventories/eh22/host_vars/dhcp.yaml b/inventories/eh22/host_vars/dhcp.yaml new file mode 100644 index 0000000..354f201 --- /dev/null +++ b/inventories/eh22/host_vars/dhcp.yaml @@ -0,0 +1,63 @@ +alloy_config: | + prometheus.remote_write "default" { + endpoint { + url = "http://mimir.noc.eh22.intern/api/v1/push" + basic_auth { + username = "noc" + password = "{{ (lookup('community.sops.sops', 'secrets/passwords.yaml') | ansible.builtin.from_yaml)['services']['mimir']['basic_auth'] }}" + } + } + } + loki.write "default" { + endpoint { + url = "http://loki.noc.eh22.intern/loki/api/v1/push" + basic_auth { + username = "noc" + password = "{{ (lookup('community.sops.sops', 'secrets/passwords.yaml') | ansible.builtin.from_yaml)['services']['loki']['basic_auth'] }}" + } + } + } + + loki.relabel "journal" { + forward_to = [] + + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "systemd_unit" + } + rule { + source_labels = ["__journal__hostname"] + target_label = "instance" + } + rule { + source_labels = ["__journal__transport"] + target_label = "systemd_transport" + } + rule { + source_labels = ["__journal_syslog_identifier"] + target_label = "syslog_identifier" + } + rule { + source_labels = ["__journal_priority_keyword"] + target_label = "level" + } + } + + loki.source.journal "read_journal" { + forward_to = [loki.write.default.receiver] + relabel_rules = loki.relabel.journal.rules + format_as_json = true + labels = {component = "loki.source.journal", host = "dhcp"} + } + + logging { + level = "info" + } + prometheus.exporter.unix "local_system" { } + + prometheus.scrape "scrape_metrics" { + targets = prometheus.exporter.unix.local_system.targets + forward_to = [prometheus.remote_write.default.receiver] + scrape_interval = "10s" + } + diff --git a/inventories/eh22/host_vars/resolv-dns.yaml b/inventories/eh22/host_vars/resolv-dns.yaml new file mode 100644 index 0000000..0264d81 --- /dev/null +++ b/inventories/eh22/host_vars/resolv-dns.yaml @@ -0,0 +1,63 @@ +alloy_config: | + prometheus.remote_write "default" { + endpoint { + url = "http://mimir.noc.eh22.intern/api/v1/push" + basic_auth { + username = "noc" + password = "{{ (lookup('community.sops.sops', 'secrets/passwords.yaml') | ansible.builtin.from_yaml)['services']['mimir']['basic_auth'] }}" + } + } + } + loki.write "default" { + endpoint { + url = "http://loki.noc.eh22.intern/loki/api/v1/push" + basic_auth { + username = "noc" + password = "{{ (lookup('community.sops.sops', 'secrets/passwords.yaml') | ansible.builtin.from_yaml)['services']['loki']['basic_auth'] }}" + } + } + } + + loki.relabel "journal" { + forward_to = [] + + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "systemd_unit" + } + rule { + source_labels = ["__journal__hostname"] + target_label = "instance" + } + rule { + source_labels = ["__journal__transport"] + target_label = "systemd_transport" + } + rule { + source_labels = ["__journal_syslog_identifier"] + target_label = "syslog_identifier" + } + rule { + source_labels = ["__journal_priority_keyword"] + target_label = "level" + } + } + + loki.source.journal "read_journal" { + forward_to = [loki.write.default.receiver] + relabel_rules = loki.relabel.journal.rules + format_as_json = true + labels = {component = "loki.source.journal", host = "resolv-dns"} + } + + logging { + level = "info" + } + prometheus.exporter.unix "local_system" { } + + prometheus.scrape "scrape_metrics" { + targets = prometheus.exporter.unix.local_system.targets + forward_to = [prometheus.remote_write.default.receiver] + scrape_interval = "10s" + } + diff --git a/resources/resolv-dns/files/unbound.conf.d/local-data.conf b/resources/resolv-dns/files/unbound.conf.d/local-data.conf index a82dc5b..16f6bde 100644 --- a/resources/resolv-dns/files/unbound.conf.d/local-data.conf +++ b/resources/resolv-dns/files/unbound.conf.d/local-data.conf @@ -1,9 +1,9 @@ server: local-data: "cookies.eh22.intern. A 94.45.254.3" local-data: "jool.eh22.intern. 0 IN A 94.45.254.4" - local-data: "grafana.noc.eh22.intern. CNAME monitoring.noc.eh22.intern" - local-data: "loki.noc.eh22.intern. CNAME monitoring.noc.eh22.intern" - local-data: "mimir.noc.eh22.intern. CNAME monitoring.noc.eh22.intern" + local-data: "grafana.noc.eh22.intern. A 94.45.254.5" + local-data: "loki.noc.eh22.intern. A 94.45.254.5" + local-data: "mimir.noc.eh22.intern. A 94.45.254.5" local-data: "monitoring.noc.eh22.intern. A 94.45.254.5" local-data: "proxmox.noc.eh22.intern. A 94.45.255.2" local-data: "router.noc.eh22.intern. A 94.45.255.2"