Jelajahi Sumber

Add 'plugins/edirectory_monitor/agent_based/edirectory_monitor.py'

Michael Honkoop 4 bulan lalu
induk
melakukan
83ab1a8bc6

+ 46 - 0
plugins/edirectory_monitor/agent_based/edirectory_monitor.py

@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+
+# License: GNU General Public License v2
+
+from typing import Dict
+from cmk.agent_based.v2 import (
+    AgentSection,
+    CheckPlugin,
+    CheckResult,
+    DiscoveryResult,
+    Result,
+    Service,
+    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]
+        parsed.setdefault(item, {})
+        for _count, data in enumerate(line[1:]):
+            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():
+        yield Service(item=key)
+
+agent_section_edirectory_monitor = AgentSection(
+    name="edirectory_monitor",
+    parse_function=parse_ldap_data,
+    )
+
+check_plugin_edirectory_monitor = CheckPlugin(
+    name="edirectory_monitor",
+    service_name="%s",
+    discovery_function=discover_edirectory_items,
+    check_function=discover_edirectory_items,
+)