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

Compare commits

...

18 Commits

Author SHA1 Message Date
Pall Sigurdsson
156459046c Automatic commit of package [nagios-okplugin-check_msa_hardware] release [1.0.4-1]. 2014-01-30 16:04:50 +00:00
Your Name
a93d887721 README.md added 2014-01-30 15:53:12 +00:00
Your Name
2dbec06282 nrpe.d added to check_msa 2014-01-30 15:47:04 +00:00
Your Name
734e7d5596 rename check_msa_hardware-pl 2014-01-30 15:33:30 +00:00
Pall Sigurdsson
623c1d5159 Automatic commit of package [nagios-okplugin-check_msa_hardware] release [1.0.3-1]. 2014-01-30 11:32:35 +00:00
Pall Sigurdsson
19312f9b55 msa packaging 2014-01-30 11:32:31 +00:00
Pall Sigurdsson
c1005cb911 Merge branch 'master' of github.com:opinkerfi/nagios-plugins 2014-01-27 09:42:48 +00:00
Pall Sigurdsson
f5d4cde8b5 spec file for check_msa_hardware-pl added 2014-01-27 09:42:40 +00:00
Tomas Edwardsson
067f58f52e Added returning of a 5 second sample in perfdata 2014-01-20 17:51:04 +00:00
Tomas Edwardsson
5d0df0bfe9 Check would fail on first run 2014-01-20 11:41:11 +00:00
Tomas Edwardsson
735b2795d8 Removed unneeded directory for state 2014-01-20 11:05:52 +00:00
Tomas Edwardsson
5593391a3b Automatic commit of package [nagios-okplugin-check_cpu] release [1.1-1]. 2014-01-20 11:05:13 +00:00
Tomas Edwardsson
ee4b10b291 Added nagios-okplugin-check_cpu 2014-01-20 11:05:01 +00:00
Tomas Edwardsson
b10d555e52 Invalid directory fixed 2014-01-20 10:14:52 +00:00
Tomas Edwardsson
971afc97f7 Automatic commit of package [nagios-okplugin-common] release [1.2-1]. 2014-01-20 09:27:39 +00:00
Tomas Edwardsson
fcf90cae3e Removed invalid file reference 2014-01-20 09:26:36 +00:00
Tomas Edwardsson
73b632a828 Automatic commit of package [nagios-okplugin-common] release [1.1-1]. 2014-01-20 09:20:43 +00:00
Tomas Edwardsson
b375ae66ee Added nagios-okplugin-common 2014-01-20 09:20:16 +00:00
11 changed files with 307 additions and 0 deletions

View 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

View File

@@ -0,0 +1 @@
command[okplugin_check_cpu]=/usr/lib/nagios/plugins/okplugin_check_cpu

View 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

View File

@@ -0,0 +1 @@
Checks hardware status of MSA disk arrays also known as HP P2000

View File

@@ -0,0 +1,64 @@
%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.4
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.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

View File

@@ -0,0 +1 @@
command[check_msa_hardware]=/usr/lib64/nagios/plugins/check_msa_hardware

View 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

View File

@@ -0,0 +1 @@
1.1-1 check_cpu.py/

View File

@@ -0,0 +1 @@
1.0.4-1 check_msa_hardware-pl/

View File

@@ -0,0 +1 @@
1.2-1 nagios-okplugin-common/