mirror of
https://github.com/opinkerfi/nagios-plugins.git
synced 2026-02-13 02:20:57 +01:00
Compare commits
28 Commits
nagios-okp
...
nagios-okp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
814426a5a8 | ||
|
|
2f69dd02cb | ||
|
|
25b04e822e | ||
|
|
f3909a08f6 | ||
|
|
53ec813478 | ||
|
|
46024baa26 | ||
|
|
3d867d84c0 | ||
|
|
6562732a91 | ||
|
|
c524ee0046 | ||
|
|
9907356c39 | ||
|
|
39f2413957 | ||
|
|
840ef78a7b | ||
|
|
c6cb2b634d | ||
|
|
92a6643a4b | ||
|
|
a21b3adf43 | ||
|
|
39b7d6a7d9 | ||
|
|
598a525ac8 | ||
|
|
ceb039eb45 | ||
|
|
5ab6e198ec | ||
|
|
b0663e0495 | ||
|
|
a01af47d86 | ||
|
|
30c4b15700 | ||
|
|
1099ad9c02 | ||
|
|
677ec90e3e | ||
|
|
a5dbf632f2 | ||
|
|
5af347c3df | ||
|
|
7ad46b2f68 | ||
|
|
5a8cad9783 |
File diff suppressed because it is too large
Load Diff
14
check_other/README
Normal file
14
check_other/README
Normal file
@@ -0,0 +1,14 @@
|
||||
check_other
|
||||
===========
|
||||
|
||||
This plugin is designed to execute another plugin that is given as an argument.
|
||||
|
||||
Usually you want this to use the perfdata parsing of pynag and you want to alert on specific thresholds in the other plugin.
|
||||
|
||||
Usage:
|
||||
```
|
||||
check_other -- check_nrpe -H localhost -c check_load
|
||||
|
||||
# Same as above, but alert on performance metric load1
|
||||
check_other --threshold metric=load1,warn=2..inf -- check_nrpe -H localhost -c check_load
|
||||
```
|
||||
50
check_other/check_other
Normal file
50
check_other/check_other
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python
|
||||
# This script runs whatever command is printed on the command line
|
||||
# Usage:
|
||||
# ./check_other -- someotherplugin --arguments-for-the-other-plugin
|
||||
#
|
||||
# Example:
|
||||
# ./check_other -- check_nrpe -H localhost
|
||||
#
|
||||
# If you want to provide options to check_other (for example to enforce a threshold:
|
||||
# ./check_other --threshold=load1,warn=5..inf -- check_nrpe -H localhost check_load
|
||||
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from pynag.Plugins import PluginHelper
|
||||
from pynag.Utils import runCommand, PluginOutput, PerfData
|
||||
|
||||
p = PluginHelper()
|
||||
|
||||
p.parser.add_option('--string', dest='string', help='run this command (will be shell expanded, use quotes)')
|
||||
p.parse_arguments()
|
||||
|
||||
|
||||
# --string was provided
|
||||
if p.options.string:
|
||||
return_code, stdout, stderr = runCommand(p.options.string)
|
||||
# No --string, and no arguments on the command line
|
||||
elif not p.arguments:
|
||||
p.parser.error("You need to provide an external command as an argument. Try: %s ls" % sys.argv[0])
|
||||
# some arguments were provided
|
||||
else:
|
||||
try:
|
||||
proc = subprocess.Popen(p.arguments, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE,)
|
||||
stdout, stderr = proc.communicate('through stdin to stdout')
|
||||
return_code = proc.returncode
|
||||
except Exception, e:
|
||||
p.set_summary("Failed to execute '%s': %s " % (p.arguments[0], e))
|
||||
p.status(3)
|
||||
p.exit()
|
||||
|
||||
p.status(return_code)
|
||||
other = PluginOutput(stdout)
|
||||
|
||||
p.set_summary(other.summary)
|
||||
p.set_long_output(other.long_output)
|
||||
p._perfdata = PerfData(other.perfdata)
|
||||
|
||||
p.check_all_metrics()
|
||||
p.exit()
|
||||
@@ -4,10 +4,6 @@ About
|
||||
This Nagios plugin checks for available updates using PackageKit
|
||||
http://packagekit.org/ on Linux systems
|
||||
|
||||
Draft
|
||||
=====
|
||||
The implementation isn't finished yet.
|
||||
|
||||
Why a new plugin?
|
||||
=================
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
from subprocess import Popen, PIPE
|
||||
from pynag.Plugins import PluginHelper, unknown, ok
|
||||
|
||||
from collections import defaultdict
|
||||
known_types = ['Enhancement', 'Normal', 'Bug fix', 'Security']
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@ def main():
|
||||
", ".join(["%s: %i" % (x, len(pkg_updates[x])) for x in pkg_updates.keys()]))
|
||||
p.add_metric("total", total_updates)
|
||||
for update_type in pkg_updates:
|
||||
p.add_metric(update_type.lower(), len(pkg_updates[update_type]))
|
||||
if len(pkg_updates[update_type]):
|
||||
p.add_long_output(update_type)
|
||||
p.add_metric(update_type.lower(), len(pkg_updates[update_type]))
|
||||
for pkg in pkg_updates[update_type]:
|
||||
p.add_long_output(" %s" % pkg)
|
||||
|
||||
@@ -57,7 +57,9 @@ def pkcon_get_updates():
|
||||
|
||||
:return: { "Bug fix": [ "pkg-1.0.1", "anthr-pkg-3.1.4" ], "Security": [ "pkg2-2.1.1" ],
|
||||
"""
|
||||
update_types = {}
|
||||
update_types = defaultdict(list)
|
||||
for t in known_types:
|
||||
update_types[t] = []
|
||||
|
||||
stdout = ""
|
||||
stderr = ""
|
||||
@@ -72,17 +74,17 @@ def pkcon_get_updates():
|
||||
|
||||
total_updates = 0
|
||||
results_section = False
|
||||
for line in stdout.split("\n"):
|
||||
for line in stdout.splitlines():
|
||||
if not line:
|
||||
continue
|
||||
if line.startswith("There are no updates"):
|
||||
continue
|
||||
if results_section is False and line == "Results:":
|
||||
results_section = True
|
||||
elif results_section:
|
||||
update_type = line[:13].strip()
|
||||
update_package = line[13:].strip()
|
||||
|
||||
if update_type not in update_types:
|
||||
update_types[update_type] = []
|
||||
update_types[update_type].append(update_package)
|
||||
total_updates += 1
|
||||
|
||||
@@ -92,9 +94,6 @@ def pkcon_get_updates():
|
||||
if results_section is False:
|
||||
raise Exception("pkcon returned no 'Results:' section. Output of pkcon command:\n" + stdout)
|
||||
|
||||
for t in known_types:
|
||||
if t not in update_types:
|
||||
update_types[t] = []
|
||||
return total_updates, update_types
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
Summary: A Nagios plugin to check operating system updates
|
||||
Name: nagios-okplugin-%{plugin}
|
||||
Version: 0.0.4
|
||||
Version: 0.0.7
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Applications/System
|
||||
@@ -15,7 +15,6 @@ BuildArch: noarch
|
||||
Requires: nrpe
|
||||
Requires: pynag
|
||||
Requires: PackageKit
|
||||
Obsoletes: nagios-okplugin-check_yum
|
||||
|
||||
|
||||
%description
|
||||
@@ -32,10 +31,15 @@ rm -rf %{buildroot}
|
||||
install -D -p -m 0755 %{plugin} %{buildroot}%{_libdir}/nagios/plugins/%{plugin}
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/nrpe.d
|
||||
sed "s^/usr/lib64^%{_libdir}^g" nrpe.d/%{plugin}.cfg > %{buildroot}%{_sysconfdir}/nrpe.d/%{plugin}.cfg
|
||||
# Temporary fix for selinux
|
||||
chcon system_u:object_r:nagios_unconfined_plugin_exec_t:s0 %{plugin} %{buildroot}%{_libdir}/nagios/plugins/%{plugin}
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%post
|
||||
/sbin/service nrpe status &> /dev/null && /sbin/service nrpe reload || :
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.md
|
||||
@@ -43,6 +47,21 @@ rm -rf %{buildroot}
|
||||
%config(noreplace) %{_sysconfdir}/nrpe.d/%{plugin}.cfg
|
||||
|
||||
%changelog
|
||||
* Fri Sep 13 2013 Tomas Edwardsson <tommi@tommi.org> 0.0.7-1
|
||||
- check_package_updates - minor refactor (palli@opensource.is)
|
||||
- check_package_updates - fix inconsistent tab/space (palli@opensource.is)
|
||||
- Removed obsoletes and thresholds (tommi@tommi.org)
|
||||
- Removed Draft, should be working pretty good (tommi@tommi.org)
|
||||
- Added --legacy to default since that is the default format (tommi@tommi.org)
|
||||
- Added nrpe reload since moving from check_yum needs it (tommi@tommi.org)
|
||||
- Added obsolete for okplugin check_updates (tommi@tommi.org)
|
||||
|
||||
* Tue Jul 16 2013 Tomas Edwardsson <tommi@tommi.org> 0.0.6-1
|
||||
- Fix failure on a fully patched system (tommi@tommi.org)
|
||||
|
||||
* Tue Jul 16 2013 Tomas Edwardsson <tommi@tommi.org> 0.0.5-1
|
||||
- Known types always have a metric, even if 0 (tommi@tommi.org)
|
||||
|
||||
* Tue Jul 16 2013 Tomas Edwardsson <tommi@tommi.org> 0.0.4-1
|
||||
- new package built with tito
|
||||
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
# Critical on security updates, warning if 40 or more total updates
|
||||
command[check_updates]=/usr/lib64/nagios/plugins/check_package_updates --th "metric=security,critical=1..inf" --th "metric=total,warning=40..inf"
|
||||
command[check_package_updates]=/usr/lib64/nagios/plugins/check_package_updates --legacy
|
||||
|
||||
# Critical on security updates
|
||||
command[check_package_updates_security]=/usr/lib64/nagios/plugins/check_package_updates --th "metric=security,critical=1..inf" --legacy
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.0.4-1 check_package_updates/
|
||||
0.0.7-1 check_package_updates/
|
||||
|
||||
Reference in New Issue
Block a user