[prometheus-postfix-exporter] Deploy new prometheus exporter

main
_shirenn 2022-11-23 16:14:05 +01:00
parent 052519e85e
commit a78146e506
9 changed files with 47 additions and 54 deletions

View File

@ -0,0 +1,3 @@
---
glob_prometheus_postfix_exporter:
listen_addr: "{{ query('ldap', 'ip4', ansible_hostname, 'adm') }}"

View File

@ -55,9 +55,12 @@
roles:
- prometheus-bird-exporter
# Monitor mailq with a special text exporter
# - hosts: redisdead.adm.crans.org
# roles: ["prometheus-node-exporter-postfix"]
# Monitor postfix queue
- hosts: postfix, !sputnik.adm.crans.org
vars:
prometheus_postfix_exporter: "{{ glob_prometheus_postfix_exporter | default({}) | combine(loc_prometheus_postfix_exporter | default({})) }}"
roles:
- prometheus-postfix-exporter
# Monitor logs with mtail
- hosts: mtail

View File

@ -1,11 +0,0 @@
#!/bin/bash
#
# Description: Expose metrics from postfix.
#
# Author: Alexandre Iooss <erdnaxe@crans.org>
mailq_length="$(/usr/bin/mailq | grep "[^ ]*@crans.org" | wc -l)"
echo '# HELP postfix_mailq_length Pending mails in mailq.'
echo '# TYPE postfix_mailq_length gauge'
echo "postfix_mailq_length ${mailq_length}"

View File

@ -1,6 +0,0 @@
[Unit]
Description=Collect postfix metrics for prometheus-node-exporter
[Service]
Type=oneshot
ExecStart=/bin/bash -c "/usr/share/prometheus-node-exporter/postfix.sh | sponge /var/lib/prometheus/node-exporter/postfix.prom"

View File

@ -1,9 +0,0 @@
[Unit]
Description=Run postfix metrics collection every 15 minutes
[Timer]
OnBootSec=0
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target

View File

@ -1,25 +0,0 @@
---
# Install Postfix textfile collector, in bullseye you will have postfix exporter
- name: Install Postfix textfile collector
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: "{{ item.mode }}"
loop:
- src: postfix.sh
dest: /usr/share/prometheus-node-exporter/postfix.sh
mode: "0755"
- src: prometheus-node-exporter-postfix.service
dest: /etc/systemd/system/prometheus-node-exporter-postfix.service
mode: "0644"
- src: prometheus-node-exporter-postfix.timer
dest: /etc/systemd/system/prometheus-node-exporter-postfix.timer
mode: "0644"
- name: Activate prometheus-node-exporter-postfix timer
systemd:
name: prometheus-node-exporter-postfix.timer
enabled: true
state: started

View File

@ -0,0 +1,5 @@
---
- name: systemctl restart prometheus-postfix-exporter.service
service:
name: prometheus-postfix-exporter
state: restarted

View File

@ -0,0 +1,22 @@
---
- name: apt install prometheus-postfix-exporter
apt:
update_cache: true
name: prometheus-postfix-exporter
install_recommends: false
register: apt_result
retries: 3
until: apt_result is succeeded
- name: edit /etc/default/prometheus-postfix-exporter
lineinfile:
path: /etc/default/prometheus-postfix-exporter
regexp: ^ARGS=
line: |
ARGS="--web.listen-address={{ prometheus_postfix_exporter.listen_addr }}:9154"
notify: systemctl restart prometheus-postfix-exporter.service
- name: rotate /var/lib/prometheus/postfix-exporter/
template:
src: logrotate.d/prometheus-postfix-exporter.j2
dest: /etc/logrotate.d/prometheus-postfix-exporter

View File

@ -0,0 +1,11 @@
/var/lib/prometheus/postfix-exporter/mail.log {
weekly
rotate 2
copytruncate
notifempty
missingok
create 0640 prometheus prometheus
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}