In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

Exim4 mit Zabbix überwachen

von Thomas,
assono GmbH, Standort Kiel,

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"

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

Template "Exim Monitoring" - Item "Queue Length"
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 contains frozen mails"

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

Link Template "Exim Monitoring" to Host

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

Quellen:

Fachbeitrag Linux Administration 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

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 416
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de