diff options
author | 2024-08-26 17:49:22 +0200 | |
---|---|---|
committer | 2024-08-26 17:33:31 +0100 | |
commit | efb9fa9194ff5f70fe027b945787cbc34293db05 (patch) | |
tree | e7534ba9898b5b524199b526068a6a126f967e85 | |
parent | Stop installing libsasl2-modules-ldap (diff) |
Install prometheus-postfix-exporter
As a data-obsessed administrator I want to have more data such that I
can widen my sense of power.
This also installs rsyslog, because prometheus-postfix-exporter doesn't
work with journald's binary log format.
-rw-r--r-- | ansible/host_vars/lovelace/prometheus.yml | 7 | ||||
-rw-r--r-- | ansible/playbook.yml | 1 | ||||
-rw-r--r-- | ansible/roles/prometheus-postfix-exporter/meta/main.yml | 3 | ||||
-rw-r--r-- | ansible/roles/prometheus-postfix-exporter/tasks/main.yml | 7 | ||||
-rw-r--r-- | kubernetes/namespaces/monitoring/alerts/alerts.d/mail.yaml | 22 |
5 files changed, 40 insertions, 0 deletions
diff --git a/ansible/host_vars/lovelace/prometheus.yml b/ansible/host_vars/lovelace/prometheus.yml index 6dc92e2..68709f0 100644 --- a/ansible/host_vars/lovelace/prometheus.yml +++ b/ansible/host_vars/lovelace/prometheus.yml @@ -55,6 +55,13 @@ prometheus_configuration: | - {{ hostvars[host]['ansible_wg0']['ipv4']['address'] }}:9187 {%- endfor %} + - job_name: postfix + static_configs: + - targets: + {%- for host in groups['mail'] %} + - {{ hostvars[host]['ansible_wg0']['ipv4']['address'] }}:9154 + {%- endfor %} + - job_name: blackbox-ssh metrics_path: /probe params: diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 1ac0c05..dd1e18d 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -26,6 +26,7 @@ - dovecot - spamassassin - postfix + - prometheus-postfix-exporter - name: Deploy our monitoring stack hosts: monitoring diff --git a/ansible/roles/prometheus-postfix-exporter/meta/main.yml b/ansible/roles/prometheus-postfix-exporter/meta/main.yml new file mode 100644 index 0000000..23db107 --- /dev/null +++ b/ansible/roles/prometheus-postfix-exporter/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - postfix diff --git a/ansible/roles/prometheus-postfix-exporter/tasks/main.yml b/ansible/roles/prometheus-postfix-exporter/tasks/main.yml new file mode 100644 index 0000000..f2ad903 --- /dev/null +++ b/ansible/roles/prometheus-postfix-exporter/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- name: Install prometheus-postfix-exporter + package: + name: prometheus-postfix-exporter + state: present + tags: + - role::prometheus-postfix-exporter diff --git a/kubernetes/namespaces/monitoring/alerts/alerts.d/mail.yaml b/kubernetes/namespaces/monitoring/alerts/alerts.d/mail.yaml new file mode 100644 index 0000000..39f6a3e --- /dev/null +++ b/kubernetes/namespaces/monitoring/alerts/alerts.d/mail.yaml @@ -0,0 +1,22 @@ +groups: + - name: postfix + rules: + - alert: postfix/down + expr: postfix_up != 1 + for: 5m + labels: + severity: warning + annotations: + summary: Postfix is down (instance {{ $labels.instance }}) + - alert: postfix/smtp-temporary-errors + expr: rate(postfix_smtpd_messages_rejected_total{code=~"^4.*"}[15m]) > 0 + for: 0m + labels: + severity: warning + annotations: + summary: Postfix is rejecting messages due to errors (instance {{ $labels.instance }}) + description: Postfix has seen code {{ $labels.code }} errors recently + and temporarily rejected emails. + https://en.wikipedia.org/wiki/List_of_SMTP_server_return_codes and + `sudo journalctl -xeu postfix@-` may provide more information on + the current issue. |