Aktionen

Trigger in Zabbix nicht sofort auslösen sondern erst nach mehrmaliger Prüfung

Aus znilwiki

Problem:

Da habe ich mir so ein schönes Template gebastelt welches mir automatisch alle Windows Dienste erfasst und mir einen Triger dazu baut ... und nun bekomme ich nach jeden Neustart des Servers ein duzend Emails dazu weil Dienst XY nochnicht gestartet ist.



Lösung 1

Zunächst dachte ich daran die Trigger-Prüfung einfach mit der System-Laufzeit (Item system.uptime) zu verbinden. So nach dem Motto "Erst wenn der Server mindestens 15 Minuten läuft und dann der Dienst nicht gestartet ist, dann melde dich bei mir".

Hat leider den Haken das das Template dann nicht eigenständig ist sondern mit dem z.B. von "Windows OS" verknüpft ist ... und ein zweites Item mit 'system.uptime' darf es ja nicht geben (jeder Begriff nur einmal pro Host).
Kann man also so machen, muss man aber nicht.



Lösung 2

Nun , bei mir wird das Item ob ein Dienst läuft alle z.B. 180 Sekunden abgefragt. Das Item sieht aus wie folgt:

service_state[BackupExecAgentBrowser]

Der Trigger dazu sah so aus:

{znil Template BackupExec 2010 Server Dienste ACTIVE AGENT:service_state[BackupExecAgentBrowser].last(0)}>0

Wenn also der letzte Rückgabewert ('.last(0)') größer als 0 ('>0') ist, dann schlage Alarm!
Zur Erinnerung: 0 bei einem Dienst heist der Dienst läuft.


Nun ändern wir das wie folgt:

{znil Template BackupExec 2010 Server Dienste ACTIVE AGENT:service_state[BackupExecAgentBrowser].min(#4)}#0

Übersetzung: Wenn die letzten 4 Werte alle nicht 0 waren, dann schlage Alarm.
Es müssen also 4 Prüfungen hintereinander Fehlgeschlagen sein bevor er Alarm schlägt.
Bei 180 Sekunden / 3 Minuten Prüfrythmus kommt der Alarm also erst nach 12 Minuten - genug Zeit nach einem Neustart und bei Updates zwischendurch.

Nachteil ist, das wenn der Dienst zwischendurch immer nur kurz ausfiele man dies nicht mekren würde.



--Bernhard Linz 17:36, 18. Nov. 2013 (CET)


Loading comments...