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 | |
|---|---|---|---|
|
|
e9222eb215 | ||
|
|
e64d51ebc3 | ||
|
|
5d94c9d3a2 | ||
|
|
22e4293db7 | ||
|
|
9b89a3d998 | ||
|
|
553a182dd1 | ||
|
|
9501bef37b | ||
|
|
b672f6f508 | ||
|
|
04d25281e3 | ||
|
|
9b2474fb49 | ||
|
|
156459046c | ||
|
|
a93d887721 | ||
|
|
2dbec06282 | ||
|
|
734e7d5596 | ||
|
|
623c1d5159 | ||
|
|
19312f9b55 | ||
|
|
c1005cb911 | ||
|
|
f5d4cde8b5 | ||
|
|
067f58f52e | ||
|
|
5d0df0bfe9 | ||
|
|
735b2795d8 | ||
|
|
5593391a3b | ||
|
|
ee4b10b291 | ||
|
|
b10d555e52 | ||
|
|
971afc97f7 | ||
|
|
fcf90cae3e | ||
|
|
73b632a828 | ||
|
|
b375ae66ee |
@@ -2,7 +2,7 @@
|
||||
|
||||
Summary: A Nagios plugin to check SMTP blacklists
|
||||
Name: nagios-okplugin-mailblacklist
|
||||
Version: 1.0
|
||||
Version: 1.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/System
|
||||
@@ -38,6 +38,9 @@ rm -rf %{buildroot}
|
||||
%{_libdir}/nagios/plugins/*
|
||||
|
||||
%changelog
|
||||
* Thu Feb 20 2014 Pall Sigurdsson <palli@opensource.is> 1.1-1
|
||||
-
|
||||
|
||||
* Thu Aug 23 2012 Pall Sigurdsson <palli@opensource.is> 1.0-1
|
||||
- Updated buildarch to noarch (tommi@tommi.org)
|
||||
|
||||
|
||||
59
check_cpu.py/nagios-okplugin-check_cpu.spec
Normal file
59
check_cpu.py/nagios-okplugin-check_cpu.spec
Normal file
@@ -0,0 +1,59 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: A Nagios plugin to check CPU on Linux servers
|
||||
Name: nagios-okplugin-check_cpu
|
||||
Version: 1.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/System
|
||||
URL: https://github.com/opinkerfi/nagios-plugins/
|
||||
Source0: https://github.com/opinkerfi/nagios-plugins/archive/%{name}-%{version}-%{release}.tar.gz
|
||||
Requires: nagios-okplugin-common
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Packager: Tomas Edwardsson <tommi@tommi.org>
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
Check cpu states on line machines
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
install -D -p -m 0755 okplugin_check_cpu %{buildroot}%{_libdir}/nagios/plugins/okplugin_check_cpu
|
||||
install -D -p -m 0755 nrpe.d/okplugin_check_cpu.cfg %{buildroot}/etc/nrpe.d/okplugin_check_cpu.cfg
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%post
|
||||
/sbin/service nrpe reload
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/nagios/plugins/*
|
||||
%{_sysconfdir}/nrpe.d/*
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 20 2014 Tomas Edwardsson <tommi@tommi.org> 1.1-1
|
||||
- new package built with tito
|
||||
|
||||
* Thu Aug 23 2012 Pall Sigurdsson <palli@opensource.is> 1.0-1
|
||||
- Version number bumped
|
||||
- Updates buildarch to noarch (tommi@tommi.org)
|
||||
|
||||
* Mon Mar 12 2012 Pall Sigurdsson <palli@opensource.is> 0.3-1
|
||||
- new package built with tito
|
||||
|
||||
* Thu Nov 25 2010 Pall Sigurdsson <palli@opensource.is> 0.1-2
|
||||
- Nrpe config now ships with plugin by default
|
||||
* Mon Mar 1 2010 Tomas Edwardsson <tommi@ok.is> 0.1-1
|
||||
- Initial packaging
|
||||
|
||||
1
check_cpu.py/nrpe.d/okplugin_check_cpu.cfg
Normal file
1
check_cpu.py/nrpe.d/okplugin_check_cpu.cfg
Normal file
@@ -0,0 +1 @@
|
||||
command[okplugin_check_cpu]=/usr/lib/nagios/plugins/okplugin_check_cpu
|
||||
132
check_cpu.py/okplugin_check_cpu
Normal file
132
check_cpu.py/okplugin_check_cpu
Normal file
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2014, Tomas Edwardsson
|
||||
#
|
||||
# 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, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# 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, see <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
Gathers information on cpu usage on a linux machine
|
||||
|
||||
It returns performance data for both the last 5 seconds and from last run.
|
||||
"""
|
||||
|
||||
from pynag.Plugins import PluginHelper, ok, unknown
|
||||
import os
|
||||
import time
|
||||
|
||||
|
||||
def main():
|
||||
"""The main logic of the program"""
|
||||
|
||||
# See man proc and search for /proc/stat
|
||||
stat_fields = ['cpu', 'user', 'nice', 'system', 'idle', 'iowait', 'irq',
|
||||
'softirq', 'steal', 'guest', 'guest_nice']
|
||||
|
||||
pyplug = PluginHelper()
|
||||
|
||||
# Get the statistics from last run
|
||||
old_stat = get_saved_stat()
|
||||
|
||||
# Get current state
|
||||
stat = get_stat()
|
||||
|
||||
# Resample
|
||||
time.sleep(5)
|
||||
stat2 = get_stat()
|
||||
|
||||
try:
|
||||
save_stat(stat)
|
||||
except IOError, err:
|
||||
pyplug.exit(unknown, "Unable to save cpu statistics: %s" % err)
|
||||
|
||||
|
||||
# Calculate averages for the last few seconds
|
||||
current_averages = diff_stats(stat2, stat)
|
||||
for pos in range(len(current_averages)):
|
||||
pyplug.add_metric(label=stat_fields[pos+1],
|
||||
value=current_averages[pos],
|
||||
uom="%")
|
||||
|
||||
# Calculate averages from last run
|
||||
if old_stat:
|
||||
last_run_avg = diff_stats(old_stat, stat)
|
||||
for pos in range(len(current_averages)):
|
||||
pyplug.add_metric(label=stat_fields[pos+1]+"_avg",
|
||||
value=last_run_avg[pos],
|
||||
uom="%")
|
||||
|
||||
pyplug.add_status(ok)
|
||||
pyplug.add_summary("CPU load %.2f%%" % (100.0 - current_averages[3]))
|
||||
pyplug.exit()
|
||||
|
||||
def diff_stats(older, newer):
|
||||
"""Calculates the percentage between two stat arrays"""
|
||||
if older:
|
||||
diff = []
|
||||
for pos in range(len(newer)):
|
||||
diff.append(newer[pos] - older[pos])
|
||||
averages = calc_avg(diff)
|
||||
else:
|
||||
averages = calc_avg(newer)
|
||||
|
||||
return averages
|
||||
|
||||
|
||||
def remove_stale_state():
|
||||
"""Removes the last state file if we have rebooted"""
|
||||
|
||||
try:
|
||||
state_mtime = os.stat("/var/lib/nagios-okplugin/check_cpu").st_mtime
|
||||
boot_time = os.stat("/proc/1").st_mtime
|
||||
if state_mtime < boot_time:
|
||||
print "unlinking"
|
||||
os.unlink("/var/lib/nagios-okplugin/check_cpu")
|
||||
except OSError:
|
||||
return None
|
||||
|
||||
return state_mtime
|
||||
|
||||
def calc_avg(stat):
|
||||
"""Calculates the average of each int in array"""
|
||||
stat_sum = sum(stat)
|
||||
avg = []
|
||||
for pos in range(len(stat)):
|
||||
avg.append(float(stat[pos]) / stat_sum * 100)
|
||||
return avg
|
||||
|
||||
def get_stat():
|
||||
"""Fetches the first line from /proc/stat and returns the numbers"""
|
||||
stat_fh = open("/proc/stat")
|
||||
return [int(pos) for pos in stat_fh.readline().split()[1:]]
|
||||
|
||||
def get_saved_stat():
|
||||
"""Fetches information about the last run to be able to do averages"""
|
||||
|
||||
remove_stale_state()
|
||||
try:
|
||||
stat_fh = open("/var/lib/nagios-okplugin/check_cpu")
|
||||
except IOError:
|
||||
return None
|
||||
return [int(pos) for pos in stat_fh.readline().split()[1:]]
|
||||
|
||||
def save_stat(stat):
|
||||
"""Save statistics to compare to in next run"""
|
||||
stat_fh = open("/var/lib/nagios-okplugin/check_cpu", "w")
|
||||
|
||||
stat_fh.write("cpu " + " ".join([str(pos) for pos in stat]) + "\n")
|
||||
stat_fh.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
# vim: sts=4 expandtab
|
||||
@@ -49,7 +49,7 @@ timeout = 0 # 0 means no timeout
|
||||
server_side_troubleshooting = False
|
||||
|
||||
# No real need to change anything below here
|
||||
version = "1.0"
|
||||
version = "1.0.1"
|
||||
ok = 0
|
||||
warning = 1
|
||||
critical = 2
|
||||
@@ -239,15 +239,15 @@ def run_sssu(system=None, command="ls system full"):
|
||||
if output.pop(0).strip() != '':
|
||||
error = 1
|
||||
if output.pop(0).strip() != '':
|
||||
error = 1
|
||||
if output.pop(0).strip() != 'SSSU for HP StorageWorks Command View EVA':
|
||||
error = 1
|
||||
error = 2
|
||||
if output.pop(0).strip().find('SSSU for HP') != 0:
|
||||
error = 3
|
||||
if output.pop(0).strip().find('Version:') != 0:
|
||||
error = 1
|
||||
error = 4
|
||||
if output.pop(0).strip().find('Build:') != 0:
|
||||
error = 1
|
||||
error = 5
|
||||
if output.pop(0).strip().find('NoSystemSelected> ') != 0:
|
||||
error = 1
|
||||
error = 6
|
||||
#if output.pop(0).strip() != '': error = 1
|
||||
#if output.pop(0).strip().find('NoSystemSelected> ') != 0: error=1
|
||||
#if output.pop(0).strip() != '': error = 1
|
||||
@@ -260,7 +260,7 @@ def run_sssu(system=None, command="ls system full"):
|
||||
if i.find('information:') > 0:
|
||||
break
|
||||
if error > 0:
|
||||
print "Error running the sssu command"
|
||||
print "Error running the sssu command: " + str(error)
|
||||
print commandstring
|
||||
print str_buffer
|
||||
exit(unknown)
|
||||
@@ -572,7 +572,7 @@ def check_generic(command="ls disk full", namefield="objectname", perfdata_field
|
||||
if i.has_key(x):
|
||||
longoutput("- %s = %s\n" % (x, i[x]))
|
||||
|
||||
end(summary, perfdata, longserviceoutput, nagios_state)
|
||||
end(summary, perfdata, longserviceoutput, nagios_state)
|
||||
|
||||
|
||||
def check_multiple_objects(my_object, name):
|
||||
|
||||
1
check_msa_hardware-pl/README.md
Normal file
1
check_msa_hardware-pl/README.md
Normal file
@@ -0,0 +1 @@
|
||||
Checks hardware status of MSA disk arrays also known as HP P2000
|
||||
0
check_msa_hardware-pl/check_msa_hardware-pl → check_msa_hardware-pl/check_msa_hardware
Normal file → Executable file
0
check_msa_hardware-pl/check_msa_hardware-pl → check_msa_hardware-pl/check_msa_hardware
Normal file → Executable file
67
check_msa_hardware-pl/nagios-okplugin-check_msa.spec
Normal file
67
check_msa_hardware-pl/nagios-okplugin-check_msa.spec
Normal file
@@ -0,0 +1,67 @@
|
||||
%define debug_package %{nil}
|
||||
%define plugin check_msa_hardware
|
||||
%define packager Pall Sigurdsson <palli@opensource.is>
|
||||
|
||||
Summary: A Nagios plugin to check status of an MSA (HP P2000) disk array
|
||||
Name: nagios-okplugin-%{plugin}
|
||||
Version: 1.0.5
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Applications/System
|
||||
URL: https://github.com/opinkerfi/nagios-plugins/tree/master/%{plugin}
|
||||
Source0: https://github.com/opinkerfi/nagios-plugins/tree/master/%{plugin}/releases/%{name}-%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Packager: %{packager}
|
||||
BuildArch: noarch
|
||||
Requires: pynag
|
||||
|
||||
|
||||
%description
|
||||
Checks status of a remote MSA disk array, also known as HP P2000
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
|
||||
|
||||
%install
|
||||
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
|
||||
%{_libdir}/nagios/plugins/*
|
||||
%config(noreplace) %{_sysconfdir}/nrpe.d/%{plugin}.cfg
|
||||
|
||||
%changelog
|
||||
* Thu Jan 30 2014 Pall Sigurdsson <palli@opensource.is> 1.0.5-1
|
||||
-
|
||||
|
||||
* Thu Jan 30 2014 Pall Sigurdsson <palli@opensource.is> 1.0.4-1
|
||||
- README.md added (you@example.com)
|
||||
- nrpe.d added to check_msa (you@example.com)
|
||||
- rename check_msa_hardware-pl (you@example.com)
|
||||
|
||||
* Thu Jan 30 2014 Pall Sigurdsson <palli@opensource.is> 1.0.3-1
|
||||
- new package built with tito
|
||||
|
||||
* Thu Jan 30 2014 Pall Sigurdsson <palli@opensource.is> 1.0.2-1
|
||||
- new package built with tito
|
||||
|
||||
* Thu Jan 30 2014 Unknown name 1.0.1-1
|
||||
- new package built with tito
|
||||
|
||||
* Fri Jan 27 2014 Pall Sigurdsson 1.0.0-1
|
||||
- Initial Packaging
|
||||
1
check_msa_hardware-pl/nrpe.d/check_msa_hardware.cfg
Normal file
1
check_msa_hardware-pl/nrpe.d/check_msa_hardware.cfg
Normal file
@@ -0,0 +1 @@
|
||||
command[check_msa_hardware]=/usr/lib64/nagios/plugins/check_msa_hardware
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Summary: A Nagios plugin to check SELinux status on Linux servers
|
||||
Name: nagios-plugins-check_selinux
|
||||
Version: 1.1
|
||||
Version: 1.3
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Applications/System
|
||||
@@ -35,6 +35,12 @@ rm -rf %{buildroot}
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Feb 20 2014 Pall Sigurdsson <palli@opensource.is> 1.3-1
|
||||
-
|
||||
|
||||
* Thu Feb 20 2014 Pall Sigurdsson
|
||||
-
|
||||
|
||||
* Wed May 22 2013 Tomas Edwardsson <tommi@tommi.org> 1.1-1
|
||||
- new package built with tito
|
||||
|
||||
|
||||
46
nagios-okplugin-common/nagios-okplugin-common.spec
Normal file
46
nagios-okplugin-common/nagios-okplugin-common.spec
Normal file
@@ -0,0 +1,46 @@
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: A common package for the okplugin suite
|
||||
Name: nagios-okplugin-common
|
||||
Version: 1.2
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/System
|
||||
URL: https://github.com/opinkerfi/nagios-plugins/
|
||||
Source0: https://github.com/opinkerfi/nagios-plugins/archive/%{name}-%{version}-%{release}.tar.gz
|
||||
Requires: nrpe
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Packager: Tomas Edwardsson <tommi@ok.is>
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
Common utilities for okplugins
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
mkdir -m 0770 -p %{buildroot}%{_sharedstatedir}/nagios-okplugin
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%post
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%dir %attr(0770, nrpe, nrpe) %{_sharedstatedir}/nagios-okplugin
|
||||
|
||||
%changelog
|
||||
* Mon Jan 20 2014 Tomas Edwardsson <tommi@tommi.org> 1.2-1
|
||||
-
|
||||
|
||||
* Mon Jan 20 2014 Tomas Edwardsson <tommi@tommi.org> 1.1-1
|
||||
- new package built with tito
|
||||
|
||||
* Mon Jan 20 2014 Tomas Edwardsson <tommi@tommi.org> 1.0-1
|
||||
- Initial build
|
||||
1
rel-eng/packages/nagios-okplugin-check_msa_hardware
Normal file
1
rel-eng/packages/nagios-okplugin-check_msa_hardware
Normal file
@@ -0,0 +1 @@
|
||||
1.0.5-1 check_msa_hardware-pl/
|
||||
@@ -1 +1 @@
|
||||
1.0-1 check_bl/
|
||||
1.1-1 check_bl/
|
||||
|
||||
@@ -1 +1 @@
|
||||
1.1-1 check_selinux/
|
||||
1.3-1 check_selinux/
|
||||
|
||||
@@ -6,61 +6,7 @@ builder.mock = fedora-20-x86_64
|
||||
builder.test = 1
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/testing/fedora20/x86_64/
|
||||
|
||||
|
||||
[production-fc20-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-20-x86_64
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/fedora20/x86_64/
|
||||
|
||||
# Fedora FC19
|
||||
[test-fc19-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-19-x86_64
|
||||
builder.test = 1
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/testing/fedora19/x86_64/
|
||||
|
||||
|
||||
[production-fc19-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-19-x86_64
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/fedora19/x86_64/
|
||||
|
||||
# Fedora FC18
|
||||
[test-fc18-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-18-x86_64
|
||||
builder.test = 1
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/testing/fedora18/x86_64/
|
||||
|
||||
|
||||
[production-fc18-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-18-x86_64
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/fedora18/x86_64/
|
||||
|
||||
# Fedora FC17
|
||||
[test-fc17-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-17-x86_64
|
||||
builder.test = 1
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/testing/fedora17/x86_64/
|
||||
|
||||
|
||||
[production-fc17-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
builder.mock = fedora-17-x86_64
|
||||
rsync = tito@opensource.is:/var/www/sites/opensource.ok.is/repo/fedora17/x86_64/
|
||||
|
||||
|
||||
|
||||
# RHEL 6
|
||||
# RHEL 6 Production
|
||||
[production-el6-x86_64]
|
||||
releaser = tito.release.YumRepoReleaser
|
||||
builder = tito.builder.MockBuilder
|
||||
|
||||
Reference in New Issue
Block a user