Hallo,
ich versuche gerade ein Checkmk-Plugin für die Abfrage des externen Temperatursensors bei APC NMC9641 zu schreiben. Die externen UIO-Sensoren werden leider standardmäßig nicht (mehr) erkannt. Ich habe mich bei der Entwicklung an der Doku und dem darin befindlichen “Flintstone”-Beispiel orientiert. Leider stoße ich aktuell auf zwei Probleme:
- das “print(string_table)” Statement in der parse-Funktion liefert keine Ausgabe
- ich habe keine Ahnung, wie ich auf den ausgelesenen Temperaturwert in der Check-Funktion zugreifen kann, um diesen weiter auszuwerten und darzustellen.
from .agent_based_api.v1 import register, Result, Service, startswith, contains, SNMPTree, State
def parse_ap9641_temp(string_table):
print(string_table)
return {}
def discover_ap9641_temp(section):
yield Service()
def check_ap9641_temp(section):
yield Result(state=State.OK, summary="Temperatur: {section[0]}")
register.snmp_section(
name = "ap9641_temp_config",
parse_function = parse_ap9641_temp,
detect = contains(".1.3.6.1.2.1.1.1.0", "AP9641"),
fetch = SNMPTree(base='.1.3.6.1.4.1.318.1.1.25.1.2.1.6', oids=['1.1'])
)
register.check_plugin(
name = "ap9641_temp_setup_check",
sections = ["ap9641_temp_config"],
service_name = "AP9641 Sensortemperatur",
discovery_function = discover_ap9641_temp,
check_function = check_ap9641_temp
)
Vielleicht kann mich jemand auf die geeignete Lösung stoßen. Vorab Danke für die Unterstützung.
MfG