Exim4 mit Zabbix überwachen

von Thomas, assono GmbH, Standort Kiel, 27.05.2024

Wir nutzen auf Linux-Server häufig einen lokalen Exim, um zum Beispiel Fehler-E-Mails von Programmen zu verschicken. Wenn es dabei zu Problemen kommt, merkt man das daran, dass die Mail-Queue immer länger wird bzw. die Anzahl von "gefrorenen" (frozen) E-Mails größer als 0 ist. Aber in diesem Fall, also wenn es Probleme mit dem E-Mail-Server gibt, kann man sich leider nicht zuverlässig per E-Mail benachrichtigen lassen. 😉

Aber da wir Zabbix als Monitoring-System nutzen, liegt es natürlich nahe, auch damit die Länge der Queue bzw. die Anzahl der gefrorenen E-Mails zu beobachten.

Genau dafür gibt es in Zabbix, genauer beim Zabbix Agent, die "User Parameter".

Schritt 1: Daten ermitteln

Um die Anzahl von E-Mails in der Queue von Exim zu ermitteln, gibt es das Kommando

exim4 -bpc

exipick macht es auch einfach, die Anzahl der "frozen mails" zu bekommen:

exipick -zi | wc -l

Schritt 2: Dem Zabbix Agent neue Tricks beibringen

Wenn der Zabbix Agent etwas ausführt, passiert es als Benutzer zabbix, also müssen die obigen Kommandos mit sudo ausgeführt werden.

Damit das ohne Passworteingabe läuft, habe ich eine neue Datei /etc/sudoers.d/zabbix angelegt (ich verwende Debian in diesem Beispiel):

zabbix ALL=(ALL) NOPASSWD: /usr/sbin/exim4,/usr/sbin/exipick

Damit die Kommandos vom Zabbix Agent aus genutzt werden können, muss man sie in der Konfiguration hinterlegen zusammen mit einem Namen (Key), unter dem man sie dann aufrufen kann.

Zur besseren Übersicht erzeuge ich dafür die neue Datei /etc/zabbix/zabbix_agent2.d/exim-monitoring.conf (bei Zabbix Agent 2).

### Option: UserParameter
#       User-defined parameter to monitor. There can be several user-defined parameters.
#       Format: UserParameter=<key>,<shell command>
#       See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=exim.queuelength,sudo /usr/sbin/exim4 -bpc
UserParameter=exim.frozenmails,sudo /usr/sbin/exipick -zi | /usr/bin/wc -l

Man muss anschließend entweder den Zabbix Agent neustarten oder zumindest die UserParameter aktualisieren mit (bei Zabbix Agent 2):

zabbix_agent2 -R userparameter_reload

Man kann sie dann auch direkt testen:

zabbix_agent2 -t exim.queuelength
exim.queuelength                              [s|0]

zabbix_agent2 -t exim.frozenmails
exim.frozenmails                              [s|0]

Schritt 3: Auf dem Zabbix-Server

Jetzt kann man auf Zabbix-Server-Seite einem Host ein Item hinzufügen. Oder man macht es gleich richtig und erstellt dafür ein Template. Ich nenne es "Exim Monitoring"

Template "Exim Monitoring"
Template "Exim Monitoring"

Darin erstelle ich die zwei Items "Queue Length" und "Frozen mails"

Template "Exim Monitoring" - Item "Queue Length"
Template "Exim Monitoring" - Item "Queue Length"
Template "Exim Monitoring" - Item "Frozen mails"
Template "Exim Monitoring" - Item "Frozen mails"

Für beide Items noch jeweils ein Trigger, damit man z. B. benachrichtigt werden kann:

Template "Exim Monitoring" - Trigger "Exim's queue is getting to long"
Template "Exim Monitoring" - Trigger "Exim's queue is getting to long"
Template "Exim Monitoring" - Trigger "Exim's queue contains frozen mails"
Template "Exim Monitoring" - Trigger "Exim's queue contains frozen mails"

Jetzt kann man das neue Template einem oder mehreren Hosts zuweisen.

Link Template "Exim Monitoring" to Host
Link Template "Exim Monitoring" to Host

Kurz danach sollten die ersten Werte eintrudeln, die man sich unter "Monitoring - Latest Data" anzeigen lassen kann.

Thomas Bahn

Thomas Bahn

Diplom-Mathematiker, IT-Spezialist & Speaker auf Fachkonferenzen

Thomas Bahn ist Mitgründer und Geschäftsführer der assono GmbH. Seit mehr als 20 Jahren berät er erfolgreich Unternehmen aus ganz Deutschland rund um das Thema Software und Digitalisierung. Insbesondere in den Bereichen HCL Notes und Domino (ehemals IBM) als auch bei aktuellen, unternehmensrelevanten KI-Themen wie Chatbots kennt er die neusten Entwicklungen und weiß, wie diese sich gewinnbringend für Unternehmen einsetzen lassen. Aufgrund seines Expertenwissens ist Thomas Bahn regelmäßiger Sprecher auf nationalen und internationalen Fachkonferenzen.

Fachbeitrag Administration Linux Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel