Nicht ganz. Dein Check sollte schon einen eigenständigen, eindeutigen Namen haben.
register.check_plugin() hat für Deinen Zweck noch den Parameter sections, mit dem eine Liste von Daten-Sektionen übergeben werden können, wenn der Checkname nicht der Sektionsname ist.
In der alten Check-API von checkmk 1.6 musste ein Subcheck gebaut werden, also in dem Fall mem.dein_check_name. Dieser hat dann auch die Daten erhalten.
Der Subcheck musste aber in der gleichen Datei implementiert werden, sonst hatte zumindest die Raw-Edition ein Problem.
Wenn du einen Check so definierst, dann wird die check-Funktion nicht nur mit dem Rückgabewert der (eigenen) parse-Funktion aufgerufen, sondern mit einem Tupel von Rückgabewerten der beteiligten Parse-Funktionen:
def check_this_check(item, params, parsed):
parsed_this, parsed_that, parsed_other = parsed
if not parsed_this:
return None
...
Die Inventory-Funktion wird ebenfalls mit einem Tupel aufgerufen und sollte dann nur parsed[0] (also die eigenen Daten) bearbeiten.
Wie sich das ganze verhält, wenn die “extra-Checks” keine Parse-Funktion haben bzw. allgemein im “Mischbetrieb”, weiß ich leider nicht mehr. Ich habe dieses Verfahren bisher nur für eigene Checks verwendet, und die haben alle immer eine Parse-Funktion.
Könnte aber gut sein, dass die Check-Funktion dann mit sowas wie (parsed_this, info_that, info_other) aufgerufen wird, d.h. “gemischten” Parametern. Das musst Du im Zweifel ausprobieren oder im checkmk-Code nachgucken.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.