diff --git a/group_vars/bird.yml b/group_vars/bird.yml index 640499de..e1d2e891 100644 --- a/group_vars/bird.yml +++ b/group_vars/bird.yml @@ -1,2 +1,5 @@ --- glob_bird: {} + +glob_prometheus_bird_exporter: + listen_addr: "{{ query('ldap', 'ip', ansible_hostname, 'adm') | ansible.utils.ipv4 | first }}" diff --git a/host_vars/monitoring.adm.crans.org.yml b/host_vars/monitoring.adm.crans.org.yml index fc4f2a9b..0d75d169 100644 --- a/host_vars/monitoring.adm.crans.org.yml +++ b/host_vars/monitoring.adm.crans.org.yml @@ -98,6 +98,23 @@ loc_prometheus: - target_label: __address__ replacement: 127.0.0.1:9115 + bird: + file: targets_bird.json + targets: "{{ groups['bird'] | select('match', '^.*\\.adm\\.crans\\.org$') | list | sort }}" + config: + - job_name: servers + file_sd_configs: + - files: + - '/etc/prometheus/targets_bird.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:9324' + mtail: file: targets_mtail.json targets: diff --git a/plays/monitoring.yml b/plays/monitoring.yml index 7704fe8b..a09218ad 100755 --- a/plays/monitoring.yml +++ b/plays/monitoring.yml @@ -46,6 +46,13 @@ roles: - prometheus-nginx-exporter +# Monitor Bird metrics +- hosts: bird + vars: + prometheus_bird_exporter: "{{ glob_prometheus_bird_exporter | default({}) | combine(loc_prometheus_bird_exporter | default({})) }}" + roles: + - prometheus-bird-exporter + # Monitor mailq with a special text exporter # - hosts: redisdead.adm.crans.org # roles: ["prometheus-node-exporter-postfix"] diff --git a/roles/prometheus-bird-exporter/handlers/main.yml b/roles/prometheus-bird-exporter/handlers/main.yml new file mode 100644 index 00000000..b8912526 --- /dev/null +++ b/roles/prometheus-bird-exporter/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart prometheus-bird-exporter + service: + name: prometheus-bird-exporter + state: restarted diff --git a/roles/prometheus-bird-exporter/tasks/main.yml b/roles/prometheus-bird-exporter/tasks/main.yml new file mode 100644 index 00000000..effc17d5 --- /dev/null +++ b/roles/prometheus-bird-exporter/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Install Prometheus bird-exporter + apt: + update_cache: true + name: prometheus-bird-exporter + register: apt_result + retries: 3 + until: apt_result is succeeded + +- name: Make Prometheus bird-exporter listen on adm only and use Bird v2 + lineinfile: + path: /etc/default/prometheus-bird-exporter + regexp: ^ARGS= + line: | + ARGS="-format.new -bird.v2 -web.listen-address={{ prometheus_bird_exporter.listen_addr }}:9324" + notify: Restart prometheus-bird-exporter