feat(monitoring): add nginx, postgres, valkey prometheus exporters

- nginx: nginx-prometheus-exporter gated by nginx_exporter_enabled,
  deploys loopback-only stub_status (8090), exporter on 9113
- postgres: postgres_exporter gated by postgres_exporter_enabled,
  creates postgres_exporter role with pg_monitor, exporter on 9187
- valkey: redis_exporter gated by valkey_exporter_enabled, adds
  read-only ACL user to users.acl, exporter on 9121

Each exporter follows the nut pattern (tasks/exporter.yml included from
main.yml, OS vars, 0600 secret env files, password asserts).
This commit is contained in:
Clément Désiles
2026-09-06 09:37:36 +02:00
parent 6f1f7f88f0
commit aa78e238aa
26 changed files with 304 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
---
# Prometheus nginx exporter (optional, gated by nginx_exporter_enabled).
# Installs nginx-prometheus-exporter and exposes a loopback-only stub_status
# endpoint that the exporter scrapes.
- name: Install nginx-prometheus-exporter
ansible.builtin.package:
name: "{{ nginx_exporter_package }}"
state: present
- name: Deploy nginx stub_status endpoint
ansible.builtin.template:
src: stub-status.conf.j2
dest: "{{ nginx_conf_dir }}/99-stub-status.conf"
owner: root
group: root
mode: "0644"
notify: Reload nginx
- name: Deploy exporter environment file
ansible.builtin.template:
src: exporter-env.conf.j2
dest: "{{ nginx_exporter_args_file }}"
owner: root
group: root
mode: "0644"
notify: Restart nginx exporter
- name: Enable and start nginx exporter
ansible.builtin.systemd:
name: "{{ nginx_exporter_service }}"
enabled: true
state: started
daemon_reload: true