Stale Services wenn ein Host down ist

Hallo

Im Moment werden Services als stale angezeigt (bis auf ping und hoststatus) wenn ein Host down ist. Die stale Services behalten dabei ja den Zustand “ok”. Kann ich dieses Verhalten ändern? Wenn ein Host down ist sollen auch die Services critical sein.

Das Problem im Moment ist, dass wir BI’s für die Alarmierung verwenden. Wenn jetzt Services in einem BI nicht auf “critical” gehen wird nicht alarmiert.

Danke

Hallo,
wenn ein Host down ist, sind die Services Stale und zeige ihren letzten Zustand, was aus meiner Sicht auch richtig ist, da kein aktueller Zustand gemessen werden kann. Für deine BI würde ich mit dem HostStatus zusätzlich aggregieren, dann sollte es doch passen.

Viele Grüße,
Christian

2 Likes

Das wäre eine Möglichkeit.

Man kann es aber auch so sehen, dass wenn ein host nicht erreichbar ist (hoststatus oder ping) auch die Services nicht erreichbar sind. Meiner Meinung nach sollten die Services dann critical sein. Ich weiß, dass man das unterschiedlich sehen kann.

Meine Frage wäre ob man dieses Verhalten irgendwo beeinflussen kann?

Das wäre nur richtig, wenn die Services aktiv geprüft werden. Hier handelt es sich aber um passive Services.

Hallo @JoJo,

genau dafür gibt es in checkmk den Status stale. Wenn ein Host down ist ist es die logische Schlussfolfgerung, dass auch kein Service darauf laufen kann. Wenn alle Services auch CRIT gehen würden hätte man wieder das Problem, dass jeder einzelne Service auch alarmiert wird und man zugespammt wird.

Wenn es um die Benachrichtigung geht, hast du die Möglichkeit den Statuswechsel zu Stale auch zu alarmieren. Bei der Anzeige im BI ist der Vorschlag von @ChristianM in meinen Augen sehr charmant. Für die Darstellung in den anderen Views kannst du explizit auch den Status Stale mit einschließen, durch die ausgegraute Darstellung sollte man solche Services auch gut erkennen können.

3 Likes

Hallo zusammen,

ich habe eine ähnliche Problematik, brauche aber für die BI explizit die Umwandlung von “Stale” auf “CRIT”, bzw. “WARN”, da dies in Zusammenhang mit einigen anderen Komponenten geprüft wird.
Sollten 2 von 3 “CRIT” sein, die letzte aber “STALE”, weil der Host eben nicht mehr erreichbar, so müssen wir dennoch diesen “STALE”-Service irgendwie melden.

Die Umleitung über den Host-Status klappt bei uns nicht, da aus internen Gründen der Status auf die BI gemünzt ist. Das schließt sich also aus ^^

Bin aktuell in der “bi.py” am schauen, ob ich irgendwie aus den Painters die Funktion “is_stale” implementieren kann, allerdings tu ich mich schwer an die Daten aus der Variable “row” zu kommen, die den Painters übergeben wird.

Falls einer für eines von beiden eine Idee hat, wäre ich sehr dankbar :smiley:
1.5.0p24.cee

Möchte ungern einen Workaround über einen active_custom-Check machen, der via livestatus den Service State überprüft.

Stale ist ein Problem da es hier eigentlich keinen direkten Status gibt. Das Webinterface rechnet dies normal anhand des definierten Staleness Wertes und dem letzten Checkzeitpunkt + dem Checkintervall aus.

Stale ist ein Service / Host dann wenn der Checkintervall * Staleness Wert + letztem Checkzeitpunkt in der Vergangenheit liegt.

Wenn du dies im BI abbilden willst sollte deine Funktion diese Rechnung machen und danach entscheiden was es mit dem Ergebnis macht.

Immer im Hinterkopf behalten - jedes Webinterface was auf die Monitoring Daten zugreift kann eine andere Staleness Konfiguration haben und damit auch verschiedene Daten anzeigen.

Wie Stale funktioniert und berechnet wird, weiß ich, aber danke dennoch nochmal fürs Erklären.

Die Frage für mich wäre, wie ich an den Stale-Value ran komme innerhalb der “bi.py” oder ob es irgendwo eine Variable gibt, auf die ich Zugreifen könnte, die irgendwo global rumfliegt
und die ich gerade nicht auf dem Schirm habe.

Ist etwas komplizierter denke ich.

In wie weit die folgenden Aussagen schon auf 1.5 zutreffen kann ich nicht sagen.
Aber Host und Service haben jeweils einen Wert “host/service_staleness” diesen Wert kann man vergleichen mit der Globalen Variable “config.staleness_threshold” diese sollte entweder 1.5 sein oder halt der in den Global Settings eingestellte Wert.

Ja, dass ist mir bekannt, allerdings weiß ich nicht wie ich an diese Werte innerhalb der “~/share/check_mk/web/htdocs/bi.py” dran komme!!!
Wie heißt die Variable, die den Staleness-Wert beinhaltet?

Das sind im livestatus jeweils “host_staleness” und “service_staleness”.
Hier ein Beispiel mit der Ausgabe.

GET services
Filter: host_name = HOST
Columns: service_description service_staleness


APT Updates;0.796847                 Cached Check
Check_MK Discovery;0.419769          Active Check
Check_MK;0.883333                    Active Check
CPU load;0.883333                    Passive Check mit gleichem Wert wie der aktive CMK Service
CPU utilization;0.883333
Disk IO SUMMARY;0.883333
ESX CPU;0.4                          Piggyback Checks
ESX Datastores;0.4
ESX Guest Tools;0.4
ESX Heartbeat;0.4

In dem Beispiel sind eigentlich alle möglichen Sachen vorhanden anhand welcher man die unterschiedlichen Staleness Werte betrachten muss.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact @fayepal if you think this should be re-opened.