Module: check_mk
Branch: master
Commit: f7e482b3983f7344bd9acc7b22d684ee7db8274a
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f7e482b3983f73…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Jun 22 19:41:12 2012 +0200
Check wut_webio_io: Fixed and tuned SNMP scan function to correctly detect the W&T Web-IO. Rewrite inner workings to look much nicer.
---
checks/wut_webio_io | 62 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 45 insertions(+), 17 deletions(-)
diff --git a/checks/wut_webio_io b/checks/wut_webio_io
index 5668dfc..a4a166d 100644
--- a/checks/wut_webio_io
+++ b/checks/wut_webio_io
@@ -8,31 +8,54 @@ webio_state_names = {
}
-def parse_webio_io_inputs(inputdesc):
- if inputdesc.startswith("Input"):
- inputdesc = inputdesc.split(" ")[1]
- return inputdesc
+# Parser for the snmp data, hands back a dict with fugded
+# item name and the state of all ports.
+def parse_webio_io_inputs(info):
+ wut_info = {}
+ for line in info:
+ input_index, input_desc, state = line
+ state = int(state)
+ # fix the port index. it is off by one.
+ input_index = str(int(input_index) - 1)
+ # Do padding with 0, this means we need to handle it as "str"
+ # tbh, there is a way in if.include but it is beyond me how that works.
+ if len(input_index) < 2:
+ input_index = "0" + input_index
+
+ if input_desc.startswith("Input"):
+ input_desc = input_index
+ else:
+ input_desc = input_index + " " + input_desc
+ wut_info.update({ input_index : (input_desc, state) })
+
+ return wut_info
def inventory_wut_webio_io_inputs(info):
inventory = []
- for line in info:
- inputdesc, state = line
- inventory.append((parse_webio_io_inputs(inputdesc), int(state)))
+ wut_info = parse_webio_io_inputs(info)
+ # inventorize the err, things.
+ for index in wut_info.keys():
+ inventory.append((wut_info[index][0], wut_info[index][1]))
return inventory
def check_wut_webio_io_inputs(item, params, info):
- for line in info:
- inputdesc, state = line
- if parse_webio_io_inputs(inputdesc) == item:
- state = saveint(state)
+ wut_info = parse_webio_io_inputs(info)
+ for index in wut_info.keys():
+ descr = wut_info[index][0]
+ if wut_info[index][0] == item:
+ oldstate = params
+ state = wut_info[index][1]
+
+ # Compare to the last state of the IO port.
if state != params:
- return (2, "CRITICAL - state should be %s but is %s (!!)" % (webio_state_names[params], webio_state_names[state]))
+ return (2, "CRITICAL - state should be %s but is %s (!!)" % (
+ webio_state_names[params],
+ webio_state_names[state]))
else:
return (0, "OK - state is %s" % webio_state_names[state])
- return (3, "UNKNOWN - Check not implemented")
return (3, "UNKNOWN - Item not found in agent output")
@@ -40,12 +63,17 @@ def check_wut_webio_io_inputs(item, params, info):
check_info['wut_webio_io.inputs'] = {
"check_function" : check_wut_webio_io_inputs,
"inventory_function" : inventory_wut_webio_io_inputs,
- "service_description": "IO INPUT %s",
+ "service_description": "INPUT %s",
"has_perfdata" : False,
# "group" : "",
# "default_levels_variable" : "services_default_levels",
- "snmp_scan_function" : lambda oid: oid(".1.3.6.1.4.1.5040.1.2.4.3.3.5").lower().startswith("web-io"),
+ # first check we have a vendor mib from W&T, then check for the model in their MIB.
+ "snmp_scan_function" : lambda oid: \
+ ".1.3.6.1.4.1.5040" in oid("1.3.6.1.2.1.1.2.0") and
+ oid(".1.3.6.1.4.1.5040.1.2.4.3.3.5.0").lower().startswith("web-io"),
"snmp_info" : (".1.3.6.1.4.1.5040.1.2.4", [
- "3.2.1.1.1",
- "1.3.1.4", ]),
+ "3.1.5.2.1.1", # io port index. (bugged)
+ "3.2.1.1.1", # user defined description.
+ "1.3.1.4", # the low/high state.
+ ]),
}
Module: check_mk
Branch: master
Commit: b704f4c2fa515dbb1c551874ee344abd7fe0b406
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b704f4c2fa515d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jun 22 15:07:36 2012 +0200
Improved handling of mssql server instances
---
agents/windows/plugins/mssql.vbs | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/agents/windows/plugins/mssql.vbs b/agents/windows/plugins/mssql.vbs
index f90261d..c2dc35c 100644
--- a/agents/windows/plugins/mssql.vbs
+++ b/agents/windows/plugins/mssql.vbs
@@ -61,7 +61,11 @@ CONN.Properties("Integrated Security").Value = "SSPI"
' Loop all found server instances and connect to them
' In my tests only the connect using the "named instance" string worked
For Each instId In instIds.Keys
- instName = Split(instId, "_")(1)
+ If InStr(instId, "_") <> 0 Then
+ instName = Split(instId, "_")(1)
+ Else
+ instName = instId
+ End If
CONN.Properties("Data Source").Value = hostname & "\" & instName
CONN.Open