Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > e5dacb39141c2088e2c30e21fa0b2b06 > files > 30

nagios-check_mk-doc-1.2.3i1-3.mga4.noarch.rpm

Manche der globalen Einstellungen wären schön, wenn man sie pro Host
einstellen könnte. Dazu gehört z.B. das if_inventory_uses_description. Aber
auch Dinge wie agent_min_version, agent_simulator, simulation_mode,
inventory_max_cachefile_age, inventory_check_interval, inventory_check_severity
und andere könnte man gut pro Host gebrauchen.

Folgende Idee könnte das elegant lösen: Wir führen eine neue
generische Regelkette global_setting_per_host[] ein. Diese
ist eigentlich ein dict von Ketten. Beispiel:

global_setting_per_host["inventory_check_interval"] = [
  ( 120, [ "linux", "prod" ], ALL_HOSTS ),
  ( 1440, [ "linux", "test" ], ALL_HOSTS ),
]

Die Umsetzung ist denkbar einfach: Nach dem Laden der Konfig
wird die Variable einmal ausgewertet und die entsprechenden
globalen Varialen gesetzt. Beim precompile muss man garnix
ändern, weil diese Variablen dann ja schon gesetzt sind
und korrekt einkodiert werden.

In Fällen, in denen es um mehrere Host geht (z.B. cmk -I),
muss die Funktion, die die globalen Variablen setzt, immer
dann aufgerufen werden, wenn auf einen neuen Host umgeschaltet
wird. Hier kann man evtl. noch ein Caching einführen, wenn
das zulange dauert.

Im WATO können wir dann etliche Variablen aus den global
settings umziehen. Frage ist, ob wir dann auch automatisch
eine Migration machen. Die könnte so gehen: Bei jeder globalen
Variable, die vom Default abweicht und bei der eine Regelkette
in der neuen Form existiert, wird - wenn diese Kette leer ist -
eine Regeln eingefügt mit ALL_HOSTS, die genau den geänderten
Wert einsetzt. Gleichzeitig setzen wir den Wert dann wieder
auf den Default zurück.

Dumm noch: der Benutzer sieht jetzt den Defaultwert nicht
mehr. Aber das Problem haben wir bei allen Regelketten.
Hier müsste man sowieso mal den Defaultwert anzeigen, der
dann gilt, wenn keine Regel greift.