commit 3ae71b9a2830612dfc2d516523e8dbc56b4f4af1
parent 1247322e1f4416d35785357f62fc7dee7fb3652b
Author: Devan Carpenter <devan@taler.net>
Date: Mon, 30 Dec 2024 03:31:41 +0000
monitoring: simplify monitoring role
use debian packages for exporters, and setup postgres-exporter with
debian default config file.
Diffstat:
3 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/roles/monitoring/files/etc/default/prometheus-postgres-exporter b/roles/monitoring/files/etc/default/prometheus-postgres-exporter
@@ -0,0 +1,13 @@
+# Connection string for the PostgreSQL database. You need to either connect as
+# superuser, or create a user with enough rights, as described in
+# /usr/share/doc/prometheus-postgres-exporter/README.Debian
+
+# DATA_SOURCE_NAME='postgresql://login:password@hostname:port/'
+# DATA_SOURCE_NAME='user=prometheus host=/run/postgresql dbname=postgres'
+DATA_SOURCE_NAME='user=postgres host=/run/postgresql dbname=taler-exchange'
+
+# Set the command-line arguments to pass to the server.
+# Due to shell escaping, to pass backslashes for regexes, you need to double
+# them (\\d for \d). If running under systemd, you need to double them again
+# (\\\\d to mean \d), and escape newlines too.
+ARGS=""
diff --git a/roles/monitoring/handlers/main.yml b/roles/monitoring/handlers/main.yml
@@ -1,4 +1,10 @@
+---
- name: restart nginx
service:
name: nginx
state: restarted
+
+- name: restart postgres-exporter
+ service:
+ name: prometheus-postgres-exporter
+ state: restarted
diff --git a/roles/monitoring/tasks/main.yml b/roles/monitoring/tasks/main.yml
@@ -1,29 +1,11 @@
---
-- name: Deploy prometheus-nginx exporter
- include_role:
- name: prometheus.prometheus.nginx_exporter
- vars:
- nginx_exporter_web_listen_address: 127.0.0.1:9113
-
-- name: Deploy prometheus-node exporter
- include_role:
- name: prometheus.prometheus.node_exporter
- vars:
- node_exporter_web_listen_address: 127.0.0.1:9114
-
-- name: Deploy prometheus-postgres exporter
- include_role:
- name: prometheus.prometheus.postgres_exporter
- vars:
- postgres_exporter_web_listen_address: 127.0.0.1:9115
- postgres_exporter_username: exporter
- postgres_exporter_password: secret
-
-- name: Deploy prometheus-systemd exporter
- include_role:
- name: prometheus.prometheus.systemd_exporter
- vars:
- systemd_exporter_web_listen_address: 127.0.0.1:9116
+- name: Install prometheus exporters
+ apt:
+ name:
+ - prometheus-nginx-exporter
+ - prometheus-node-exporter
+ - prometheus-postgres-exporter
+ install_recommends: no
- name: Ensure Taler monitoring virtualhost configuration file exists
template:
@@ -32,6 +14,7 @@
owner: root
group: root
mode: 0644
+ notify: restart nginx
- name: Ensure Taler monitoring HTTP virtualhost configuration file exists
template:
@@ -40,6 +23,7 @@
owner: root
group: root
mode: 0644
+ notify: restart nginx
- name: Enable Taler monitoring HTTP reverse proxy configuration
file:
@@ -81,3 +65,22 @@
dest: /etc/nginx/sites-enabled/monitoring-nginx.conf
state: link
notify: restart nginx
+
+- name: Configure postgres-exporter
+ copy:
+ src: etc/default/prometheus-postgres-exporter
+ dest: /etc/default/prometheus-postgres-exporter
+ owner: root
+ group: root
+ mode: 0644
+ notify: restart postgres-exporter
+
+- name: Ensure exporter services are enabled and started
+ service:
+ name: "{{item}}"
+ state: started
+ enabled: true
+ with_items:
+ - prometheus-node-exporter.service
+ - prometheus-nginx-exporter.service
+ - prometheus-postgres-exporter.service