Module: check_mk
Branch: master
Commit: b23d454c22c2f5e832828eaffacdd900b1646cbd
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b23d454c22c2f5…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Jan 21 10:32:26 2016 +0100
Renamed new check solaris_prtdiag to solaris_prtdiag_status and reworked it a bit
---
.werks/1322 | 2 +-
ChangeLog | 2 +-
agents/check_mk_agent.solaris | 5 +--
agents/plugins/mk_inventory.solaris | 11 +++++
checkman/solaris_prtdiag | 12 ------
checkman/solaris_prtdiag_status | 14 +++++++
checks/{solaris_prtdiag => solaris_prtdiag_status} | 44 ++++++++------------
7 files changed, 47 insertions(+), 43 deletions(-)
diff --git a/.werks/1322 b/.werks/1322
index 8f78dc6..0a07806 100644
--- a/.werks/1322
+++ b/.werks/1322
@@ -1,4 +1,4 @@
-Title: solaris_prtdiag: New Check for Solaris Hardware State based on prtdiag
+Title: solaris_prtdiag_status: New Check for Solaris Hardware State based on prtdiag
Level: 1
Component: checks
Compatible: compat
diff --git a/ChangeLog b/ChangeLog
index 01483da..5900b4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -83,7 +83,7 @@
* 2918 agent_jolokia: jolokia can now be monitored using a special agent
* 2919 hp_webmgmt_status: New check for health status of various Hewlett-Packard
devices...
* 2920 hr_cpu: this check can now also supports per-core features...
- * 1322 solaris_prtdiag: New Check for Solaris Hardware State based on prtdiag
+ * 1322 solaris_prtdiag_status: New Check for Solaris Hardware State based on prtdiag
* 2921 printer_supply_ricoh: check now tries to handle negative readings properly...
* 2922 check_mk_agent.linux: mrpe sections can now be cached...
* 2933 openhardwaremonitor, check_mk_agent.windows: added agent support and check for
monitoring hardware sensors through OpenHardwareMonitor...
diff --git a/agents/check_mk_agent.solaris b/agents/check_mk_agent.solaris
index ab79199..56d9c56 100755
--- a/agents/check_mk_agent.solaris
+++ b/agents/check_mk_agent.solaris
@@ -245,9 +245,8 @@ then
fi
if type prtdiag >/dev/null 2>&1
- then
- echo '<<<solaris_prtdiag:sep(10)>>>'
- run_cached prtdiag 300 '/usr/sbin/prtdiag -v;echo "SerialNumber: $(sneep
-t serial)";echo "PRTDIAG_OVERALL_STATE : $(echo $?)"'
+then
+ run_cached -s solaris_prtdiag_status 300 '/usr/sbin/prtdiag; echo $?'
fi
# TCP Connection stats
diff --git a/agents/plugins/mk_inventory.solaris b/agents/plugins/mk_inventory.solaris
index 222d8f4..eaece65 100755
--- a/agents/plugins/mk_inventory.solaris
+++ b/agents/plugins/mk_inventory.solaris
@@ -46,6 +46,17 @@ then
echo "<<<solaris_uname:sep(61):persist($UNTIL)>>>"
uname -X
+ if type prtdiag > /dev/null; then
+ echo "<<<solaris_prtdiag:sep(10):persist($UNTIL)>>>"
+ if type sneep >/dev/null 2>&1; then
+ SN=$(sneep -t serial)
+ else
+ SN=$(smbios -t SMB_TYPE_SYSTEM | grep 'Serial Number:' | awk
'{print $3}')
+ fi
+ echo "SerialNumber: $SN"
+ prtdiag -v
+ fi
+
if type psrinfo > /dev/null; then
echo "<<<solaris_psrinfo:persist($UNTIL)>>>"
psrinfo -p -v
diff --git a/checkman/solaris_prtdiag b/checkman/solaris_prtdiag
deleted file mode 100644
index 8db3ea9..0000000
--- a/checkman/solaris_prtdiag
+++ /dev/null
@@ -1,12 +0,0 @@
-title: Prtdiag based health check for solaris
-agents: solaris
-catalog: os/solaris
-license: GPL
-distribution: check_mk
-description:
- This check looks for the return value of the prtdiag -v command on solaris based
systems.
- A return value of 0 is interpreted as OK as documented in the prtdiag man page. Each
other return value
- results in a CRITICAL state.
- CAVEAT:
- The extend of the hardware that is considered in the prtdiag command varies from solaris
platform to platform (i.e. huge differences between e.g. M series and T series systems.)
- Please have a look at the documentation of prtdiag for your system.
diff --git a/checkman/solaris_prtdiag_status b/checkman/solaris_prtdiag_status
new file mode 100644
index 0000000..cd36ab3
--- /dev/null
+++ b/checkman/solaris_prtdiag_status
@@ -0,0 +1,14 @@
+title: Prtdiag based health check for solaris
+agents: solaris
+catalog: os/solaris
+license: GPL
+distribution: check_mk
+description:
+ This check looks for the return value of the prtdiag command on solaris based systems.
+ A return value of 0 is interpreted as OK as documented in the prtdiag man page.
+ Each other return value results in a CRITICAL state.
+
+ CAVEAT:
+ The extend of the hardware that is considered in the prtdiag command varies from
+ solaris platform to platform (i.e. huge differences between e.g. M series and T
+ series systems). Please have a look at the documentation of prtdiag for your system.
diff --git a/checks/solaris_prtdiag b/checks/solaris_prtdiag_status
similarity index 60%
rename from checks/solaris_prtdiag
rename to checks/solaris_prtdiag_status
index bb73b5a..95b1ca0 100644
--- a/checks/solaris_prtdiag
+++ b/checks/solaris_prtdiag_status
@@ -25,38 +25,30 @@
# Boston, MA 02110-1301 USA.
# Example output from agent:
-# .
-# .
-# .
-# SPARC64-VII mode
-#
-# PRTDIAG_OVERALL_STATE : 0
-# SerialNumber: BDF112567
+# <<<solaris_prtdiag_status>>>
+# 0
+def inventory_solaris_prtdiag_status(info):
+ if info:
+ return [(None, None)]
-def inventory_solaris_prtdiag(info):
- for line in info:
- # We have to search in the agent section if we find
- # that state
- if line[0].startswith("PRTDIAG_OVERALL_STATE"):
- return [(None, None)]
-def check_solaris_prtdiag(_no_item, _no_params, info):
- for line in info:
- if line[0].startswith("PRTDIAG_OVERALL_STATE"):
- # 0 No failures or errors are detected in the system.
- # 1 Failures or errors are detected in the system.
- state = int(info[-1][0].split(':')[1])
+def check_solaris_prtdiag_status(_no_item, _no_params, info):
+ if not info:
+ return
- # If we not find the status in the agent output, raise error
- if state == 0:
- return 0, "No failures or errors are detected in the system"
+ # 0 No failures or errors are detected in the system.
+ # 1 Failures or errors are detected in the system.
+ state = int(info[0][0])
+ if int(info[0][0]) == 0:
+ return 0, "No failures or errors are reported"
else:
- return 2, "Failures or errors are detected in the system, please check
details via prtdiag -v"
+ return 2, "Failures or errors are reported by the system. " \
+ "Please check the output of \"prtdiag -v\" for
details."
-check_info['solaris_prtdiag'] = {
- "inventory_function" : inventory_solaris_prtdiag,
- "check_function" : check_solaris_prtdiag,
+check_info['solaris_prtdiag_status'] = {
+ "inventory_function" : inventory_solaris_prtdiag_status,
+ "check_function" : check_solaris_prtdiag_status,
"service_description" : "Hardware Overall State"
}