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. | 
