Monitoring Zabbix flapping hysteresis in den Griff bekommen
Kleine Anleitung/Hinweis für Neulinge bei/mit Zabbix
Wer kennt es nicht, ein Host oder Serverraum wird überwacht und löst in regelmäßigen Abständen einen
Alarm (mit Email Notification) aus, beim nächsten Prüflauf ist alles wieder okay und beim folgenden Prüflauf
wird der Schwellenwert überschritten und das Spiel fängt von vorne an.
Toppen kann man das Ganze noch, wenn man zusätzlich dazu eine Clear Email Notification definiert, die feuert, wenn alles wieder ok ist.
Wie kann ich das in den Griff bekommen?
Grundsätzlich sollte die Ursache behoben werden, im Fall einer Klimaanlage bspw. durch eine Wartung.
Oder:
Indem ich zur Problem Expression im Trigger eine zusätzliche Recovery Expression definiere!
Einfaches Beispiel:
Ein Temperatur Sensor soll ab 30 Grad auslösen.
Bei Messwerten von 31, 29, 31, 29 etc. kommt es zum Flapping.
Mit einer zusätzlichen Recovery Expression, kann ich definieren, wann der Trigger wieder zurückgestellt wird.
In diesem Fall, wenn die letzten 12 Messwerte unter 30 Grad liegen.
Je nach dem wie oft eine Messung durchgeführt wird, kann hier der Zeitraum verlängert oder verkürzt werden.
Und dadurch eine Flapping Pause von X Minuten konfigurieren.
Das kann über einen Zeitraum oder auch auf die Anzahl der Werte angewendet werden:
count(/host/key,10m,"gt",12) #the number of values for the last 10 minutes until now that are over '12'
count(/host/key,#10,"gt",12) #the number of values within the last 10 values until now that are over '12'
So kann man auch definieren, dass ab 30 Grad gewarnt wird, aber erst ab 22 Grad entwarnt wird:
Problem Expression: last(/Sensor/Temperatur)>29
Recovery Expression: last(/Sensor/Temperatur)<23
Siehe auch hier:
www.zabbix.com/documentation/6.4/en/manual/appendix/functions/history?hl=count#count
Wichtig ist natürlich, dass die Messwerte für den Zeitraum verfügbar sind, wenn ich die Werte nicht vorhalte, wird's schwer mit dem Verarbeiten.
Zur Sicherheit kann ein weiterer Temperaturanstieg mit einem zusätzlichen Trigger abgefangen werden, der bspw. auslöst wenn der Wert über 35 liegt. Damit kann verhindert werden, dass der Temperaturanstieg nicht bemerkt wird.
Noch ein paar Beispiele vom Erfinder direkt:
blog.zabbix.com/no-more-flapping-define-triggers-the-smart-way/1488/
Wer kennt es nicht, ein Host oder Serverraum wird überwacht und löst in regelmäßigen Abständen einen
Alarm (mit Email Notification) aus, beim nächsten Prüflauf ist alles wieder okay und beim folgenden Prüflauf
wird der Schwellenwert überschritten und das Spiel fängt von vorne an.
Toppen kann man das Ganze noch, wenn man zusätzlich dazu eine Clear Email Notification definiert, die feuert, wenn alles wieder ok ist.
Wie kann ich das in den Griff bekommen?
Grundsätzlich sollte die Ursache behoben werden, im Fall einer Klimaanlage bspw. durch eine Wartung.
Oder:
Indem ich zur Problem Expression im Trigger eine zusätzliche Recovery Expression definiere!
Einfaches Beispiel:
Ein Temperatur Sensor soll ab 30 Grad auslösen.
Bei Messwerten von 31, 29, 31, 29 etc. kommt es zum Flapping.
Mit einer zusätzlichen Recovery Expression, kann ich definieren, wann der Trigger wieder zurückgestellt wird.
In diesem Fall, wenn die letzten 12 Messwerte unter 30 Grad liegen.
Je nach dem wie oft eine Messung durchgeführt wird, kann hier der Zeitraum verlängert oder verkürzt werden.
Und dadurch eine Flapping Pause von X Minuten konfigurieren.
Das kann über einen Zeitraum oder auch auf die Anzahl der Werte angewendet werden:
count(/host/key,10m,"gt",12) #the number of values for the last 10 minutes until now that are over '12'
count(/host/key,#10,"gt",12) #the number of values within the last 10 values until now that are over '12'
So kann man auch definieren, dass ab 30 Grad gewarnt wird, aber erst ab 22 Grad entwarnt wird:
Problem Expression: last(/Sensor/Temperatur)>29
Recovery Expression: last(/Sensor/Temperatur)<23
Siehe auch hier:
www.zabbix.com/documentation/6.4/en/manual/appendix/functions/history?hl=count#count
Wichtig ist natürlich, dass die Messwerte für den Zeitraum verfügbar sind, wenn ich die Werte nicht vorhalte, wird's schwer mit dem Verarbeiten.
Zur Sicherheit kann ein weiterer Temperaturanstieg mit einem zusätzlichen Trigger abgefangen werden, der bspw. auslöst wenn der Wert über 35 liegt. Damit kann verhindert werden, dass der Temperaturanstieg nicht bemerkt wird.
Noch ein paar Beispiele vom Erfinder direkt:
blog.zabbix.com/no-more-flapping-define-triggers-the-smart-way/1488/
Please also mark the comments that contributed to the solution of the article
Content-ID: 668381
Url: https://administrator.de/contentid/668381
Printed on: October 15, 2024 at 07:10 o'clock
1 Comment
Hallo,
kurze Ergänzung meinerseits, da wir dies erst beim Zabbix Sepcialist Training behandelt haben:
Ich würde die Werte nicht statisch eintragen, sondern mit Template Macros arbeiten. Dies hat den Vorteilen,dass du pro Host das Macro überschreiben kannst und somit pro Host die werte manuell anpassbar sind, wenn es die örtlichen Gegebenheiten erforderlich machen.
Bei uns in 2 Serverräumen haben wir bauartbedingt bis zu 3 Grad unterschieldiche Temperaturen ... ohne Macros müsste ich 2 Templates erstellen oder pro Hosts die Trigger manuell erstellen.
Gruß
kurze Ergänzung meinerseits, da wir dies erst beim Zabbix Sepcialist Training behandelt haben:
Ich würde die Werte nicht statisch eintragen, sondern mit Template Macros arbeiten. Dies hat den Vorteilen,dass du pro Host das Macro überschreiben kannst und somit pro Host die werte manuell anpassbar sind, wenn es die örtlichen Gegebenheiten erforderlich machen.
Bei uns in 2 Serverräumen haben wir bauartbedingt bis zu 3 Grad unterschieldiche Temperaturen ... ohne Macros müsste ich 2 Templates erstellen oder pro Hosts die Trigger manuell erstellen.
Gruß