Moin Zusammen
ich probiere gerade einen SNMP Check zur Überwachung von Lancom WLC zu schreiben. Gleichzeitig ist es für mich das erste Mal mit python…
Inventory und Parse läuft in meinen Augen fein. Im Check ist noch etwas fault, ich bekomme nämlich immer o.g. Fehler und stehe etwas auf dem Schlauch. Vielleicht kann mur jemand einen Schubs in die richtige Richtung geben…
Inventory Function:
def inventory_lancom_wlc_ap_status(parsed):
return [(None, None)]
Parse:
def parse_lancom_wlc_ap_status(info):
parsed = {
"expected": int(info[0][0]),
"connectedExpected": int(info[0][1]),
"connectedManaged": int(info[0][2]),
"connectedNew": int(info[0][3])
}
return parsed
Check:
d
ef check_lancom_wlc_ap_status(item, params, parsed):
perf = [("Expected AP",parsed['expected'], parsed['expected'] + ":" + parsed['expected'] )]
statustext = "Accesspoints expected: %d; Accespoints connected %d; Accespoints connected and managed: %d; new Accespoints: %d;" % (parsed['expected'], parsed['connectedExpected'], parsed['connectedManaged'], parsed['connectedNew'])
if parsed['expected'] == parsed['connectedExpected']:
status = 0
elif parsed['connectedNew'] >= 0:
status = 1
else:
status = 2
return status, statustext, perf
Config:
check_info["lancomwlc"] = {
"inventory_function": inventory_lancom_wlc_ap_status,
#"inventory_function": discover(),
"parse_function": parse_lancom_wlc_ap_status,
"check_function": check_lancom_wlc_ap_status,
"service_description": "LANCOM WLC AP Status",
"snmp_scan_function": lambda oid: "WLC-1000" in oid(".1.3.6.1.4.1.2356.11.1.47.6.0"),
"snmp_info": ( ".1.3.6.1.4.1.2356.11.1.73",
[
"5", # lcsStatusWlanMngmtExpectedAp
"6", # lcsStatusWlanMngmtConnectedExpectedAp
"7", # lcsStatusWlanMngmtConnectedManagedAp
"8" # lcsStatusWlanMngmtConnectedNewAp
]),
"has_perfdata": True,
"group": "lancomwlc",
}
Die Parse Funktion gibt wie gewollt folgendes zurück:
{'expected': 37, 'connectedManaged': 35, 'connectedExpected': 35, 'connectedNew': 0}
Mir fehlt irgendwie der Ansatz…