|
@@ -15,24 +15,35 @@ from cmk.agent_based.v2 import (
|
|
|
State,
|
|
|
)
|
|
|
|
|
|
-monitor_data= Dict[str, object]
|
|
|
-
|
|
|
def parse_ldap_data(string_table):
|
|
|
"""parse one lines of data to dictionary"""
|
|
|
parsed = {}
|
|
|
for line in string_table:
|
|
|
item = line[0]
|
|
|
+ #print(line[1:])
|
|
|
parsed.setdefault(item, {})
|
|
|
for _count, data in enumerate(line[1:]):
|
|
|
- key, value = data.split("=")
|
|
|
+ if item == "Agent Partition":
|
|
|
+ continue
|
|
|
+ key, value=data.split("=")
|
|
|
parsed[item].setdefault(key, value)
|
|
|
return parsed
|
|
|
|
|
|
def discover_edirectory_items(section) -> DiscoveryResult:
|
|
|
'''discover one item per key'''
|
|
|
for key, data in section.items():
|
|
|
+ #print(data)
|
|
|
yield Service(item=key)
|
|
|
|
|
|
+def check_edirectory_items(item: str, section) -> CheckResult:
|
|
|
+ data = section.get(item)
|
|
|
+ if not data:
|
|
|
+ return
|
|
|
+ for key, value in data.items:
|
|
|
+ yield Result(state=State("0"), summary=f"{key}: {value}")
|
|
|
+
|
|
|
+ #yield Result(state=0, notice="empty", details="data")
|
|
|
+
|
|
|
agent_section_edirectory_monitor = AgentSection(
|
|
|
name="edirectory_monitor",
|
|
|
parse_function=parse_ldap_data,
|
|
@@ -42,5 +53,5 @@ check_plugin_edirectory_monitor = CheckPlugin(
|
|
|
name="edirectory_monitor",
|
|
|
service_name="%s",
|
|
|
discovery_function=discover_edirectory_items,
|
|
|
- check_function=discover_edirectory_items,
|
|
|
+ check_function=check_edirectory_items,
|
|
|
)
|