From 71baae58bfeebb514a785a36356bc34b6297f3cd Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 9 Aug 2022 15:57:24 +0200 Subject: [PATCH] [bind] Export prometheus statistics Signed-off-by: Yohann D'ANELLO --- host_vars/fyre.adm.crans.org.yml | 15 +++++++++++++++ hosts | 4 ++++ plays/monitoring.yml | 7 +++++++ .../templates/bind/named.conf.options.j2 | 4 ++++ .../templates/bind/named.conf.options.j2 | 4 ++++ roles/prometheus-bind-exporter/handlers/main.yml | 5 +++++ roles/prometheus-bind-exporter/tasks/main.yml | 16 ++++++++++++++++ 7 files changed, 55 insertions(+) create mode 100644 roles/prometheus-bind-exporter/handlers/main.yml create mode 100644 roles/prometheus-bind-exporter/tasks/main.yml diff --git a/host_vars/fyre.adm.crans.org.yml b/host_vars/fyre.adm.crans.org.yml index 63f5d00e..d0fe3278 100644 --- a/host_vars/fyre.adm.crans.org.yml +++ b/host_vars/fyre.adm.crans.org.yml @@ -104,6 +104,21 @@ loc_prometheus: target_label: __address__ replacement: '$1:9324' + bind: + config: + - job_name: bind + file_sd_configs: + - files: + - '/etc/prometheus/targets_bind.json' + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - source_labels: [__param_target] + target_label: __address__ + replacement: '$1:9119' + mtail: config: - job_name: mtail diff --git a/hosts b/hosts index 92170eea..ef386db3 100644 --- a/hosts +++ b/hosts @@ -25,6 +25,10 @@ tealc.adm.crans.org [belenios] belenios.adm.crans.org +[bind:children] +dns_authoritative +dns_recursive + [bird:children] routeurs_vm diff --git a/plays/monitoring.yml b/plays/monitoring.yml index b2407344..973a66cf 100755 --- a/plays/monitoring.yml +++ b/plays/monitoring.yml @@ -55,6 +55,13 @@ roles: - prometheus-bird-exporter +# Monitor Bind metrics +- hosts: bind + vars: + prometheus_bind_exporter: "{{ glob_prometheus_bind_exporter | default({}) | combine(loc_prometheus_bind_exporter | default({})) }}" + roles: + - prometheus-bind-exporter + # Monitor mailq with a special text exporter # - hosts: redisdead.adm.crans.org # roles: ["prometheus-node-exporter-postfix"] diff --git a/roles/bind-authoritative/templates/bind/named.conf.options.j2 b/roles/bind-authoritative/templates/bind/named.conf.options.j2 index f972196b..21336da6 100644 --- a/roles/bind-authoritative/templates/bind/named.conf.options.j2 +++ b/roles/bind-authoritative/templates/bind/named.conf.options.j2 @@ -51,3 +51,7 @@ options { allow-transfer { none; }; {% endif %} }; + +statistics-channels { + inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; +}; diff --git a/roles/bind-recursive/templates/bind/named.conf.options.j2 b/roles/bind-recursive/templates/bind/named.conf.options.j2 index 93497100..36a95afb 100644 --- a/roles/bind-recursive/templates/bind/named.conf.options.j2 +++ b/roles/bind-recursive/templates/bind/named.conf.options.j2 @@ -24,3 +24,7 @@ options { listen-on-v6 { any; }; }; + +statistics-channels { + inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; +}; diff --git a/roles/prometheus-bind-exporter/handlers/main.yml b/roles/prometheus-bind-exporter/handlers/main.yml new file mode 100644 index 00000000..064fb934 --- /dev/null +++ b/roles/prometheus-bind-exporter/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart prometheus-bind-exporter + service: + name: prometheus-bind-exporter + state: restarted diff --git a/roles/prometheus-bind-exporter/tasks/main.yml b/roles/prometheus-bind-exporter/tasks/main.yml new file mode 100644 index 00000000..85df966a --- /dev/null +++ b/roles/prometheus-bind-exporter/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Install Prometheus bind-exporter + apt: + update_cache: true + name: prometheus-bind-exporter + register: apt_result + retries: 3 + until: apt_result is succeeded + +- name: Make Prometheus bind-exporter listen on adm only + lineinfile: + path: /etc/default/prometheus-bind-exporter + regexp: ^ARGS= + line: | + ARGS="--web.listen-address={{ prometheus_bind_exporter.listen_addr }}:9119" + notify: Restart prometheus-bind-exporter