Linux

check_smartmon

Description:

Check disk status with smartmontools.

Current Version

Last Release Date

June 17, 2009

Compatible With


Project Files
Project Notes
Use smartmontools (http://smartmontools.sourceforge.net/) to check disk health status and temperature.
Reviews (5) Add a Review
Running this as unprivileged user
by Nihlaeth, January 31, 2016

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



add support for check bad sectors
by xrated, December 31, 2013

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



performance data
by kohly, March 31, 2011

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))



deprecation warnings
by atrox, March 31, 2011

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):



Python errors
by bobbydale, December 31, 2010

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.



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
3.3 (8)
Favorites
2
Views
194,755