summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Haerry <haerry@puzzle.ch>2008-04-22 15:31:37 +0200
committerMarcel Haerry <haerry@puzzle.ch>2008-04-22 15:31:37 +0200
commitfd83ae45a94213366b069b1e0278868129430006 (patch)
tree1709401dfbc408073d6a0973e753730d31ccd8f3
parentc6f6cca89f7a89b5ba72b0bd65e469c93e3cf3ce (diff)
added nagios plugins
-rwxr-xr-xfiles/plugins/nagios_hosts28
-rwxr-xr-xfiles/plugins/nagios_perf_35
-rwxr-xr-xfiles/plugins/nagios_svc33
-rw-r--r--manifests/plugin.pp10
4 files changed, 101 insertions, 5 deletions
diff --git a/files/plugins/nagios_hosts b/files/plugins/nagios_hosts
new file mode 100755
index 0000000..04fe8ed
--- /dev/null
+++ b/files/plugins/nagios_hosts
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+if [ "$1" = "config" ]; then
+ echo 'graph_title Nagios host stats'
+ echo 'graph_args --base 1000 -l 0'
+ echo 'graph_vlabel hosts'
+ echo 'graph_category nagios'
+ echo 'graph_info The number of hosts checked by nagios'
+ echo 'up.label up'
+ echo 'up.draw AREA'
+ echo 'up.info number of hosts UP'
+ echo 'down.label down'
+ echo 'down.draw STACK'
+ echo 'down.info number of hosts DOWN'
+ echo 'unr.label unr'
+ echo 'unr.draw STACK'
+ echo 'unr.info number of hosts UNREACHABLE'
+
+ exit 0
+fi
+
+echo -n 'up.value '
+nagios2stats --mrtg --data NUMHSTUP
+echo -n 'down.value '
+nagios2stats --mrtg --data NUMHSTDOWN
+echo -n 'unr.value '
+nagios2stats --mrtg --data NUMHSTUNR
+
diff --git a/files/plugins/nagios_perf_ b/files/plugins/nagios_perf_
new file mode 100755
index 0000000..f819def
--- /dev/null
+++ b/files/plugins/nagios_perf_
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+NAME=$(basename $0)
+
+TYPE=${NAME##nagios_perf_}
+
+[ "x$TYPE" = 'xhosts' ] && TYPE_ABBR=HST
+[ "x$TYPE" = 'xsvc' ] && TYPE_ABBR=SVC
+[ -z "$TYPE_ABBR" ] && echo "unknown type $TYPE" >&2 && exit 1
+
+if [ "$1" = "config" ]; then
+ echo "graph_title Nagios $TYPE performance stats"
+ echo "graph_args --base 1000"
+ echo "graph_vlabel seconds"
+ echo "graph_category nagios"
+ echo "graph_info Check performance statistics"
+
+ echo "act_lat_$TYPE_ABBR.label act lat"
+ echo "act_lat_$TYPE_ABBR.type GAUGE"
+ echo "act_lat_$TYPE_ABBR.draw AREA"
+ echo "act_lat_$TYPE_ABBR.cdef act_lat_$TYPE_ABBR,1000,/"
+ echo "act_lat_$TYPE_ABBR.info average latency of active checks over the last 5 minutes"
+
+ echo "act_ext_$TYPE_ABBR.label act ext"
+ echo "act_ext_$TYPE_ABBR.type GAUGE"
+ echo "act_ext_$TYPE_ABBR.draw LINE1"
+ echo "act_ext_$TYPE_ABBR.cdef act_ext_$TYPE_ABBR,1000,/"
+ echo "act_ext_$TYPE_ABBR.info average execution time of active checks over the last 5 minutes"
+
+ exit 0
+fi
+
+echo "act_lat_$TYPE_ABBR.value " $(nagios2stats --mrtg --data AVGACT${TYPE_ABBR}LAT)
+echo "act_ext_$TYPE_ABBR.value " $(nagios2stats --mrtg --data AVGACT${TYPE_ABBR}EXT)
+
diff --git a/files/plugins/nagios_svc b/files/plugins/nagios_svc
new file mode 100755
index 0000000..3938999
--- /dev/null
+++ b/files/plugins/nagios_svc
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+if [ "$1" = "config" ]; then
+ echo 'graph_title Nagios service stats'
+ echo 'graph_args --base 1000 -l 0'
+ echo 'graph_vlabel services'
+ echo 'graph_category nagios'
+ echo 'graph_info The number of services checked by nagios'
+ echo 'ok.label ok'
+ echo 'ok.draw AREA'
+ echo 'ok.info number of services OK'
+ echo 'warn.label warn'
+ echo 'warn.draw STACK'
+ echo 'warn.info number of services WARNING'
+ echo 'crit.label crit'
+ echo 'crit.draw STACK'
+ echo 'crit.info number of services CRITICAL'
+ echo 'unkn.label unkn'
+ echo 'unkn.draw STACK'
+ echo 'unkn.info number of services UNKNOWN'
+
+ exit 0
+fi
+
+echo -n 'ok.value '
+nagios2stats --mrtg --data NUMSVCOK
+echo -n 'warn.value '
+nagios2stats --mrtg --data NUMSVCWARN
+echo -n 'crit.value '
+nagios2stats --mrtg --data NUMSVCCRIT
+echo -n 'unkn.value '
+nagios2stats --mrtg --data NUMSVCUNKN
+
diff --git a/manifests/plugin.pp b/manifests/plugin.pp
index 36773ee..40e7f47 100644
--- a/manifests/plugin.pp
+++ b/manifests/plugin.pp
@@ -230,10 +230,10 @@ class munin::plugins::postgres inherits munin::plugins::base {
munin::plugin::deploy { "pg__locks": ensure => false }
}
class munin::plugins::nagios inherits munin::plugins::base {
- munin::plugin {
- nagios_hosts: script_path => "/usr/local/bin", config => 'user root';
- nagios_svc: script_path => "/usr/local/bin", config => 'user root';
- nagios_perf_hosts: ensure => nagios_perf_, script_path => "/usr/local/bin", config => 'user root';
- nagios_perf_svc: ensure => nagios_perf_, script_path => "/usr/local/bin", config => 'user root';
+ munin::plugin::deploy {
+ nagios_hosts: config => 'user root';
+ nagios_svc: config => 'user root';
+ nagios_perf_hosts: ensure => nagios_perf_, config => 'user root';
+ nagios_perf_svc: ensure => nagios_perf_, config => 'user root';
}
}