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:
We’ve completely redesigned the world’s largest repository of Nagios plugins and monitoring tools. Join thousands of users sharing monitoring solutions for servers, applications, and everything in between.
Due to our redesign, all existing accounts require a password reset to access your account again.
Ready to explore 6,100+ projects and contribute to the community?
Reset Password Create Account
Happy Monitoring!