Build precise queries to find exactly what you need
Press ESC to close
Your review has been submitted and is pending approval.
Check disk status with smartmontools.
Current Version
Last Release Date
June 17, 2009
Owner
Nagios Exchange
Website
http://sourceforge.net/projects/smartmontools/
Download URL
http://sourceforge.net/apps/trac/smartmontools/wiki/Download
Plugin file
License
Readme
Use smartmontools (http://smartmontools.sourceforge.net/) to check disk health status and temperature.
I needed to run this as an unprivileged user, so I added a c wrapper that can use setuid root. I also applied the patch below, fixed a few minor bugs and attempted to improve readability. The result can be found here: https://github.com/nihlaeth/Nagios_check_smartmon
As disks with defective sectors are still reported as a healthy disk by Smart, i added checking the Smart IDs 5,196,197,198. An critical error will be reported if any > 0. I have not much clue about python but the patch is working: http://pastebin.com/yB0w0Px9
if temperature > criticalThreshold: return (2, "CRITICAL: device temperature (%d) exceeds critical temperature threshold (%s)|temperature= %d;%s;%s;" % (temperature, criticalThreshold, temperature, warningThreshold, criticalThreshold)) elif temperature > warningThreshold: return (1, "WARNING: device temperature (%d) exceeds warning temperature threshold (%s)|temperature= %d;%s;%s;" % (temperature, warningThreshold, temperature, warningThreshold, criticalThreshold)) else: return (0, "OK: device is functional and stable (temperature: %d)|temperature= %d;%s;%s;" % (temperature, temperature, warningThreshold, criticalThreshold))
To get rid of the deprecation warnings: --- check_smartmon.py.orig 2011-03-15 15:28:50.000000000 +0200 +++ check_smartmon.py 2011-03-15 15:40:48.000000000 +0200 @@ -28,6 +28,7 @@ import os.path import sys +import warnings from optparse import OptionParser @@ -111,6 +112,8 @@ # get health status cmd = "%s -H %s" % (path, device) vprint(3, "Get device health status: %s" % cmd) + # filter out deprecation warnings + warnings.filterwarnings('ignore', category=DeprecationWarning, message=r'os.popen3') (child_stdin, child_stdout, child_stderr) = os.popen3(cmd) line = child_stderr.readline() if len(line):
Running Ubuntu 10.10 64-bit and I receive the following Python errors: /usr/local/nagios/libexec/check_smartmon:114: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module. (child_stdin, child_stdout, child_stderr) = os.popen3(cmd) /usr/local/nagios/libexec/check_smartmon:127: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module. (child_stdin, child_stdout, child_stderr) = os.popen3(cmd) OK: device is functional and stable (temperature: 40) Probably needs to check for what version of Python is being used at top of script and apply commands accordingly later in script.
You must be logged in to submit a review.
To:
From: