ansible-taler-exchange

Ansible playbook to deploy a production Taler Exchange
Log | Files | Refs | Submodules | README | LICENSE

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:
Aroles/monitoring/files/etc/default/prometheus-postgres-exporter | 13+++++++++++++
Mroles/monitoring/handlers/main.yml | 6++++++
Mroles/monitoring/tasks/main.yml | 53++++++++++++++++++++++++++++-------------------------
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