1
0
mirror of https://github.com/opinkerfi/nagios-plugins.git synced 2026-02-13 02:20:57 +01:00

Compare commits

..

11 Commits

6 changed files with 149 additions and 30 deletions

View File

@@ -288,7 +288,7 @@ sub check_disk {
}
close (NAVICLIOUT);
if ($disk_ok_count eq 0) {
print "No disk were founded !\n";
print "No disk were found !\n";
$state = 'UNKNOWN';
} elsif ($crit_count > 0) {
$state='CRITICAL';

View File

@@ -207,7 +207,7 @@ def run_sssu(system=None, command="ls system full"):
commands.append(command)
commandstring = "sssu "
for i in commands: commandstring = commandstring + "'%s' " % i
for i in commands: commandstring = commandstring + '"%s" ' % i
global server_side_troubleshooting
if server_side_troubleshooting == True:
commandstring = 'cat "debug/%s"' % command

View File

@@ -22,7 +22,7 @@
# No real need to change anything below here
version="1.0"
version="1.1.0"
ok=0
warning=1
critical=2
@@ -226,20 +226,24 @@ def check_powermodules():
status = 3
details = 4
num_ok = 0
num_no = 0
for i in powermodules.values():
myIndex = i[index]
myStatus = i[status]
myDetails = i[details]
myExists = i[exists]
if myIndex == opts.exclude: continue
if myStatus != "1":
nagios_status(warning)
add_summary( 'Powermodule "%s" status "%s". %s. ' % (myIndex,myStatus,myDetails) )
if myExists == "0":
num_no = num_no + 1
else:
num_ok = num_ok + 1
if myStatus != "1":
nagios_status(warning)
add_summary( 'Powermodule "%s" status "%s". %s. ' % (myIndex,myStatus,myDetails) )
else:
num_ok = num_ok + 1
add_long('Powersupply "%s" status "%s". %s. ' % (myIndex,myStatus,myDetails) )
add_summary( "%s out of %s powermodules are healthy" % (num_ok, len(powermodules) ) )
add_perfdata( "'Number of powermodules'=%s" % (len(powermodules) ) )
add_perfdata( "'Number of powermodules'=%s" % (len(powermodules) - num_no ) )
nagios_status(ok)
@@ -267,10 +271,12 @@ def check_switchmodules():
add_long("Module%s health bad(%s).\n post=%s" % (myIndex, healthstate,resultvalue) )
add_summary("Problem with Module %s. " % (myIndex))
if len(extrainfo) > int(myIndex):
myExtraInfo = extrainfo[int(myIndex)-1]
module_type = myExtraInfo[22]
module_ip = myExtraInfo[6]
add_long( " type=%s ip=%s" % (module_type,module_ip) )
try:
myExtraInfo = extrainfo[int(myIndex)-1]
module_type = myExtraInfo[22]
module_ip = myExtraInfo[6]
add_long( " type=%s ip=%s" % (module_type,module_ip) )
except: pass
if exit_status == ok:
add_summary("All switchmodules healthy")

View File

@@ -0,0 +1,45 @@
%define debug_package %{nil}
Summary: A Nagios plugin to check IBM Bladecenters
Name: nagios-okplugin-check_ibm_bladecenter
Version: 1.1.2
Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
URL: http://opensource.ok.is/trac/wiki/Nagios-OKPlugin-check_ibm_bladecenter
Source0: http://opensource.ok.is/trac/browser/nagios-plugins/check_ibm_bladecenter/releases/%{name}-%{version}.tar.gz
Requires: nagios-plugins
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Packager: Pall Sigurdsson <palli@opensource.is>
BuildArch: noarch
Requires: nrpe
%description
Checks the health status of an IBM Bladecenter via SNMP
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
install -D -p -m 0755 check_ibm_bladecenter.py %{buildroot}%{_libdir}/nagios/plugins/check_ibm_bladecenter.py
#mkdir -p %{buildroot}%{_sysconfdir}/nrpe.d
#sed "s^/usr/lib64^%{_libdir}^g" nrpe.d/check_bond.cfg > %{buildroot}%{_sysconfdir}/nrpe.d/check_bond.cfg
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc README
%{_libdir}/nagios/plugins/*
#%config(noreplace) %{_sysconfdir}/nrpe.d/check_bond.cfg
%changelog
* Tue Jul 17 2012 Pall Sigurdsson 1.0.0-1
- Initial packaging

View File

@@ -0,0 +1,46 @@
%define debug_package %{nil}
Summary: A Nagios plugin to check Cisco Ironport
Name: nagios-okplugin-check_ironport
Version: 1.1.3
Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
URL: http://opensource.ok.is/trac/wiki/
Source0: http://opensource.ok.is/trac/browser/nagios-plugins/check_ironport/releases/%{name}-%{version}.tar.gz
Requires: nagios-plugins
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Packager: Pall Sigurdsson <palli@opensource.is>
BuildArch: noarch
Requires: nrpe
%description
Checks the health status of a Cisco Ironport
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
install -D -p -m 0755 check_ironport.py %{buildroot}%{_libdir}/nagios/plugins/check_ironport.py
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc README
%{_libdir}/nagios/plugins/*
#%config(noreplace) %{_sysconfdir}/nrpe.d/check_bond.cfg
%changelog
* Tue Jul 31 2012 Pall Sigurdsson <palli@opensource.is> 1.1.3-1
- new package built with tito
* Tue Jul 31 2012 Pall Sigurdsson 1.0.0-1
- Initial packaging

View File

@@ -1,15 +1,36 @@
#!/usr/bin/env python
#!/usr/bin/python
# coding=utf-8
"""Nagios plugin to test for Yum updates on RedHat/CentOS Linux.
#Copyright © 2008-2012, Hari Sekhon <harisekhon@gmail.com>.
#Copyright © 2012, Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>.
#All rights reserved.
#
#
#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; version 2
#of the License.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"""Nagios plugin to check the YUM package management system for package updates.
Can optionally alert on any available updates as well as just
security related updates"""
__author__ = "Hari Sekhon"
__title__ = "Nagios Plugin for Yum updates on RedHat/CentOS systems"
__version__ = "0.7.2"
__title__ = "Nagios plugin to check the YUM package management system for package updates."
__version__ = "0.7.3"
# Changes:
# 0.7.2 added support for rhel6-style yum output
# 0.7.2 Addes support for rhel6-style output (palli@opensource.is)
# 0.7.3 Maintenance taken over by Christoph Anton Mitterer
# Standard Nagios return codes
@@ -163,7 +184,7 @@ class YumTester:
def check_returncode(self, returncode, output):
"""Takes the returncode and output (as an array of lines)
of the yum program execution and tests for failures, exits
of the YUM program execution and tests for failures, exits
with an appropriate message if any are found"""
if returncode == 0:
@@ -174,7 +195,7 @@ class YumTester:
elif returncode == 200:
if "lock" in output[-2] or "another copy is running" in output[-2]:
msg = "Cannot check for updates, " \
+ "another instance of yum is running"
+ "another instance of YUM is running"
if self.no_warn_on_lock:
end(OK, msg)
else:
@@ -185,7 +206,7 @@ class YumTester:
else:
if not 'Loading "security" plugin' in output \
or "Command line error: no such option: --security" in output:
end(UNKNOWN, "Security plugin for yum is required. Try to " \
end(UNKNOWN, "Security plugin for YUM is required. Try to " \
+ "'yum install yum-security' and then re-run " \
+ "this plugin. Alternatively, to just alert on " \
+ "any update which does not require the security " \
@@ -282,7 +303,7 @@ class YumTester:
raise ValueError
except ValueError:
end(UNKNOWN, "Error parsing package information, invalid package " \
+ "number, yum output may have changed. Please make " \
+ "number, YUM output may have changed. Please make " \
+ "sure you have upgraded to the latest version of " \
+ "this plugin. If the problem persists, then please " \
+ "contact the author for a fix")
@@ -293,7 +314,7 @@ class YumTester:
count = 0
re_package_format = \
re.compile("^.+\.(i[3456]86|x86_64|noarch)\s+.+\s+.+$")
# This is to work around a yum truncation issue effectively changing
# This is to work around a YUM truncation issue effectively changing
# the package output format. Currently only very long kmod lines
# are seen to have caused this so we stick to what we know for safety
# and raise an unknown error on anything else for maximum security
@@ -349,7 +370,7 @@ class YumTester:
break
if not summary_line_found:
end(WARNING, "Cannot find summary line in yum output. Please " \
end(WARNING, "Cannot find summary line in YUM output. Please " \
+ "make sure you have upgraded to the latest version " \
+ "of this plugin. If the problem persists, please " \
+ "contact the author for a fix")
@@ -358,7 +379,7 @@ class YumTester:
number_security_updates = int(number_security_updates)
number_total_updates = int(number_total_updates)
except ValueError:
end(WARNING, "Error parsing package information, yum output " \
end(WARNING, "Error parsing package information, YUM output " \
+ "may have changed. Please make sure you have " \
+ "upgraded to the latest version of this plugin. " \
+ "If the problem persists, the please contact the " \
@@ -464,7 +485,7 @@ def main():
help="Does not distinguish between security and " \
+ "non-security updates, but returns critical for " \
+ "any available update. This may be used if the " \
+ "yum security plugin is absent or you want to " \
+ "YUM security plugin is absent or you want to " \
+ "maintain every single package at the latest " \
+ "version. You may want to use " \
+ "--warn-on-any-update instead of this option")
@@ -486,7 +507,7 @@ def main():
action="store_true",
dest="no_cache_update",
help="Run entirely from cache and do not update the " \
+ "cache when running yum. Useful if you have " \
+ "cache when running YUM. Useful if you have " \
+ "'yum makecache' cronned so that the nagios " \
+ "check itself doesn't have to do it, possibly " \
+ "speeding up execution (by 1-2 seconds in tests)")
@@ -494,22 +515,22 @@ def main():
parser.add_option( "--no-warn-on-lock",
action="store_true",
dest="no_warn_on_lock",
help="Return OK instead of WARNING when yum is locked " \
help="Return OK instead of WARNING when YUM is locked " \
+ "and fails to check for updates due to another " \
+ "instance running. This is not recommended from " \
+ "the security standpoint, but may be wanted to " \
+ "reduce the number of alerts that may " \
+ "intermittently pop up when someone is running " \
+ "yum interactively for package management")
+ "YUM interactively for package management")
parser.add_option( "--enablerepo",
dest="repository_to_enable",
help="Explicitly enables a reposity when calling yum. "
help="Explicitly enables a reposity when calling YUM. "
+ "Can take a comma separated list of repositories")
parser.add_option( "--disablerepo",
dest="repository_to_disable",
help="Explicitly disables a repository when calling yum "
help="Explicitly disables a repository when calling YUM "
+ "Can take a comma separated list of repositories")
parser.add_option( "-t",
@@ -564,3 +585,4 @@ if __name__ == "__main__":
except KeyboardInterrupt:
print "Caught Control-C..."
sys.exit(CRITICAL)