diff --git a/munin/files/plugins/cpu b/munin/files/plugins/cpu new file mode 100755 index 0000000..6cf70cb --- /dev/null +++ b/munin/files/plugins/cpu @@ -0,0 +1,132 @@ +#!/bin/sh +# +# Plugin to monitor CPU usage. +# +# Usage: Place in /etc/munin/node.d/ (or link it there using ln -s) +# +# Parameters understood: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# $Log$ +# Revision 1.8.2.3 2005/02/03 13:28:50 lupe +# correct field.info +# +# Revision 1.8.2.2 2005/01/28 14:51:22 lupe +# Add graph_info and some filed.info +# +# Revision 1.10 2005/01/28 14:47:31 lupe +# Add graph_info and some filed.info +# +# Revision 1.9 2005/01/25 08:48:28 lupe +# Correct multi-CPU bugs +# +# Revision 1.8.2.1 2005/01/25 09:22:52 lupe +# Correct multi-CPU bugs +# +# Revision 1.8 2004/12/09 22:12:55 jimmyo +# Added "graph_period" option, to make "graph_sums" usable. +# +# Revision 1.7 2004/11/28 09:43:54 lupe +# 6-CURRENT support +# +# Revision 1.6 2004/11/21 00:16:56 jimmyo +# Changed a lot of plugins so they use DERIVE instead of COUNTER. +# +# Revision 1.5 2004/05/20 19:02:36 jimmyo +# Set categories on a bunch of plugins +# +# Revision 1.4 2004/05/09 19:18:35 jimmyo +# Added support for scaleto100-parameter (patch from Lupe Christoph). +# +# Revision 1.3 2004/02/18 16:39:36 jimmyo +# Turned off scaling of values for cpu-graphs (no more nano-percentages). +# +# Revision 1.2 2004/02/01 18:59:54 lupe +# FreeBSD 5 compatibility. +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.3 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magic markers - optional - used by installation scripts and +# munin-config: +# +#%# family=auto +#%# capabilities=autoconf + + + +if [ "$1" = "autoconf" ]; then + if [ -x /sbin/sysctl ]; then + /sbin/sysctl kern.cp_time > /dev/null + if [ $? = "0" ]; then + echo yes + exit 0 + else + echo no + exit 1 + fi + else + echo no + exit 1 + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title CPU usage' + echo 'graph_order system interrupt user nice idle' + echo "graph_args --base 1000 -r --lower-limit 0 --upper-limit 100 " + echo 'graph_vlabel %' + echo 'graph_scale no' + echo 'graph_info This graph shows how CPU time is spent.' + echo 'graph_category system' + echo 'graph_period second' + echo 'system.label system' + echo 'system.draw AREA' + echo 'system.max 5000' + echo 'system.type DERIVE' + echo 'system.min 0' +# echo "system.warning $SYSWARNING" +# echo "system.critical $SYSCRITICAL" + echo 'system.info CPU time spent by the kernel in system activities' + echo 'interrupt.label interrupt' + echo 'interrupt.draw STACK' + echo 'interrupt.max 5000' +# echo "interrupt.warning $INTWARNING" + echo 'interrupt.type DERIVE' + echo 'interrupt.min 0' + echo 'interrupt.info CPU time spent by the kernel processing interrupts' + echo 'user.label user' + echo 'user.draw STACK' + echo 'user.max 5000' +# echo "user.warning $USRWARNING" + echo 'user.type DERIVE' + echo 'user.info CPU time spent by normal programs and daemons' + echo 'user.min 0' + echo 'nice.label nice' + echo 'nice.draw STACK' + echo 'nice.max 5000' + echo 'nice.type DERIVE' + echo 'nice.info CPU time spent by nice(1)d programs' + echo 'nice.min 0' + echo 'idle.label idle' + echo 'idle.draw STACK' + echo 'idle.max 5000' + echo 'idle.type DERIVE' + echo 'idle.info Idle CPU time' + echo 'idle.min 0' + exit 0 +fi + +/sbin/sysctl -n kern.cp_time | awk -F ',' '{ print "user.value " $1 "\nnice.value " $2 "\nsystem.value " $3 "\ninterrupt.value " $4 "\nidle.value " $5 }' + diff --git a/munin/files/plugins/df b/munin/files/plugins/df new file mode 100755 index 0000000..4cdde67 --- /dev/null +++ b/munin/files/plugins/df @@ -0,0 +1,78 @@ +#!/bin/sh +# +# Script to monitor disk usage. +# +# Parameters understood: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# $Log$ +# Revision 1.5 2004/12/09 20:27:45 jimmyo +# Sort fields in df*-plugins alphabetically. +# +# Revision 1.4 2004/05/18 22:04:29 jimmyo +# Use "sed 1d" instead of "tail +2" in df plugins (patch by Olivier Delhomme). +# +# Revision 1.3 2004/01/29 19:39:00 jimmyo +# Generic plugins now use printf instead of echo -n, as this is more portable (SF#885564) +# +# Revision 1.2 2004/01/29 18:57:39 jimmyo +# Disabled plugins df and df_inode on Solaris (SF#882274). +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.6 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magic markers (optional - used by munin-config and installation +# scripts): +# +#%# family=auto +#%# capabilities=autoconf + +MAXLABEL=20 + +if [ "$1" = "autoconf" ]; then + if [ `uname -s` = SunOS ]; then + echo no + exit 1 + else + echo yes + exit 0 + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title Filesystem usage (in %)' + echo 'graph_category disk' + echo 'graph_args --upper-limit 100 -l 0' + echo 'graph_vlabel %' + df -l | sed 1d | grep -v "//" | sort | while read i; do + name=`echo $i | sed 's/[\/.-]/_/g'| awk '{ print $1 }'` + printf "$name.label " + echo $i | awk "{ + dir=\$6 + if (length(dir) <= $MAXLABEL) + print dir + else + printf (\"...%s\n\", substr (dir, length(dir)-$MAXLABEL+4, $MAXLABEL-3)) + }" + echo "$name.warning 92" + echo "$name.critical 98" + done + exit 0 +fi + +df -P -l | sed 1d | grep -v "//" | while read i; do + name=`echo $i | sed 's/[\/.-]/_/g'| awk '{ print $1 ".value " }'` + printf "$name " + echo $i | awk '{ print $5 }' | cut -f1 -d% +done diff --git a/munin/files/plugins/df_inode b/munin/files/plugins/df_inode new file mode 100755 index 0000000..709d189 --- /dev/null +++ b/munin/files/plugins/df_inode @@ -0,0 +1,94 @@ +#!/bin/sh +# +# Plugin to monitor inode-usage. +# +# Parameters understood: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# $Log$ +# Revision 1.5 2004/12/09 20:27:45 jimmyo +# Sort fields in df*-plugins alphabetically. +# +# Revision 1.4 2004/05/18 22:04:29 jimmyo +# Use "sed 1d" instead of "tail +2" in df plugins (patch by Olivier Delhomme). +# +# Revision 1.3 2004/01/29 19:39:00 jimmyo +# Generic plugins now use printf instead of echo -n, as this is more portable (SF#885564) +# +# Revision 1.2 2004/01/29 18:57:39 jimmyo +# Disabled plugins df and df_inode on Solaris (SF#882274). +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.6 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magic markers (optional - used by munin-config and installation +# scripts): +# +#%# family=auto +#%# capabilities=autoconf + +MAXLABEL=20 + +fs() { + local escaped_mntpt=`echo "$*" | awk '{ print $NF }' | sed 's|/|\\\\/|g'` +} + +print_values() { + df -l -i | sed 1d | grep -v "//" | while read i; do + if [ "`fs $i`" = "reiserfs" ] ; then continue ; fi + name=`echo $i | sed 's/[\/.]/_/g'| awk '{ print $1 ".value " }'` + printf "$name " + echo $i | awk '{ print $8 }' | cut -f1 -d% + done +} + +if [ "$1" = "autoconf" ]; then + if [ "`print_values`" = "" ] ; then + echo no + exit 1 + else + if [ `uname -s` = SunOS ]; then + echo no + exit 1 + else + echo yes + exit 0 + fi + fi + exit 0 +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title Inode usage (in %)' + echo 'graph_category disk' + echo 'graph_args --upper-limit 100 -l 0' + echo 'graph_vlabel %' + df -l -i | sed 1d | grep -v "//" | sort | while read i; do + if [ "`fs $i`" = "reiserfs" ] ; then continue ; fi + name=`echo $i | sed 's/[\/.]/_/g'| awk '{ print $1 }'` + printf "$name.label " + echo $i | awk "{ + dir=\$9 + if (length(dir) <= $MAXLABEL) + print dir + else + printf (\"...%s\n\", substr (dir, length(dir)-$MAXLABEL+4, $MAXLABEL-3)) + }" + echo "$name.warning 92" + echo "$name.critical 98" + done + exit 0 +fi + +print_values diff --git a/munin/files/plugins/interfaces b/munin/files/plugins/interfaces new file mode 100755 index 0000000..7feb359 --- /dev/null +++ b/munin/files/plugins/interfaces @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w +# +# Plugin to monitor individual interrupts +# +# $Log$ +# Revision 1.7.2.1 2005/02/24 17:33:22 jimmyo +# linux/irqstats should no longer fail on some systems (Deb#296452). +# +#%# family=auto +#%# capabilities=autoconf +use strict; + +if (defined $ARGV[0] && $ARGV[0] eq 'autoconf') { + if(-e '/usr/bin/netstat') { + print "yes\n"; + exit(0); + } else { + print "no\n"; + exit(1); + } +} +open my $in, "/usr/bin/netstat -bin |" + or die "Can't run netstat -bin: $!\n"; + +my @ifstats; + +while (my $line = <$in>) { + if ($line =~ //) { + my @values = split(' ', $line); + my $ifname = $values[0]; + $ifname =~ s/\*/_/g; + my ($ibytes, $obytes); + if ($values[3] =~ /\:/) { + $ibytes = $values[4]; + $obytes = $values[5]; + } else { + $ibytes = $values[3]; + $obytes = $values[4]; + } + push @ifstats, { + ifname => $ifname, + ibytes => $ibytes, + obytes => $obytes + }; + } +} +close $in; + +if (defined $ARGV[0] && $ARGV[0] eq 'config') { + print "graph_title interface traffic (bytes) \n"; + print <{ifname}."_in ".$_->{ifname}."_out"} @ifstats), "\n"; + for my $if (@ifstats) { + print $if->{ifname}, '_in.label ', $if->{ifname}, "\n"; + print $if->{ifname}, '_out.label ', $if->{ifname}, "\n"; + print $if->{ifname}, '_in.info bytes in on: ', $if->{ifname}, "\n"; + print $if->{ifname}, '_out.info bytes out on: ', $if->{ifname}, "\n"; + print $if->{ifname}, "_in.type COUNTER\n"; + print $if->{ifname}, "_out.type COUNTER\n"; + print $if->{ifname}, "_in.min 0\n"; + print $if->{ifname}, "_out.min 0\n"; + print $if->{ifname}, "_in.graph no\n"; + print $if->{ifname}, "_out.negative ", $if->{ifname}, "_in\n"; + } +} else { + print $_->{ifname}, '_in.value ', $_->{ibytes}, "\n" for @ifstats; + print $_->{ifname}, '_out.value ', $_->{obytes}, "\n" for @ifstats; +} + diff --git a/munin/files/plugins/irqstats b/munin/files/plugins/irqstats new file mode 100755 index 0000000..34b88d9 --- /dev/null +++ b/munin/files/plugins/irqstats @@ -0,0 +1,58 @@ +#!/usr/bin/perl -w +# +# Plugin to monitor individual interrupts +# +# $Log$ +# Revision 1.7.2.1 2005/02/24 17:33:22 jimmyo +# linux/irqstats should no longer fail on some systems (Deb#296452). +# +#%# family=auto +#%# capabilities=autoconf +use strict; + +if (defined $ARGV[0] && $ARGV[0] eq 'autoconf') { + if(-e '/usr/bin/vmstat -zi') { + print "yes\n"; + exit(0); + } else { + print "no\n"; + exit(1); + } +} +open my $in, "/usr/bin/vmstat -zi |" + or die "Can't run vmstat -zi: $!\n"; + +my $header = <$in>; # throw away header line +my @irqs; + +while (my $line = <$in>) { + my ($irq, $total, $rate) = split(' ', $line); + chomp $irq; + $irq =~ s/\//_/g; + chomp $total; + push @irqs, { + irq => $irq, + total => $total, + }; +} +close $in; + +if (defined $ARGV[0] && $ARGV[0] eq 'config') { + print "graph_title Individual interrupts \n"; + print <{irq}} @irqs), "\n"; + for my $irq (@irqs) { + my $f = ($irq->{irq} || $irq->{total}); + print "i", $irq->{irq}, '.label ', $f, "\n"; + print "i", $irq->{irq}, '.info Interrupt for device(s): ', $irq->{irq}, "\n"; + print "i", $irq->{irq}, ".type DERIVE\n"; + print "i", $irq->{irq}, ".min 0\n"; + } +} else { + print "i", $_->{irq}, '.value ', $_->{total}, "\n" for @irqs; +} + diff --git a/munin/files/plugins/load b/munin/files/plugins/load new file mode 100755 index 0000000..28a56e1 --- /dev/null +++ b/munin/files/plugins/load @@ -0,0 +1,127 @@ +#!/bin/sh +# +# Plugin to monitor the load average on a system. +# +# Usage: Link or copy into /etc/munin/node.d/ +# +# Magic markers (optional - only used by munin-config and some +# installation scripts): +# +# $Log$ +# Revision 1.3.2.1 2005/01/28 14:51:22 lupe +# Add graph_info and some filed.info +# +# Revision 1.4 2005/01/28 14:47:31 lupe +# Add graph_info and some filed.info +# +# Revision 1.3 2004/05/20 19:02:36 jimmyo +# Set categories on a bunch of plugins +# +# Revision 1.2 2004/01/15 16:58:10 jimmyo +# FreeBSD-plugin load bugfix from Robert Lindgren (SF#865928). +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.3 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +#%# family=auto +#%# capabilities=autoconf + + + +# If run with the "autoconf"-parameter, give our opinion on wether we +# should be run on this system or not. This is optinal, and only used by +# munin-config. In the case of this plugin, we should most probably +# always be included. + +if [ "$1" = "autoconf" ]; then + if [ -x /sbin/sysctl ]; then + /sbin/sysctl vm.loadavg > /dev/null + if [ $? = "0" ]; then + echo yes + exit 0 + else + echo no + exit 1 + fi + else + echo no + exit 1 + fi +fi + +# If run with the "config"-parameter, give out information on how the +# graphs should look. + +if [ "$1" = "config" ]; then + # The host name this plugin is for. (Can be overridden to have + # one machine answer for several) + + # The title of the graph + echo 'graph_title Load average' + # Arguments to "rrdtool graph". In this case, tell it that the + # lower limit of the graph is '0', and that 1k=1000 (not 1024) + echo 'graph_args --base 1000 -l 0' + # The Y-axis label + echo 'graph_vlabel load' + # We want Cur/Min/Avg/Max unscaled (i.e. 0.42 load instead of + # 420 milliload) + echo 'graph_noscale true' + # The category of the plugin. Defaults to "other". + echo 'graph_category system' + # The fields. "label" is used in the legend. "label" is the only + # required subfield. + echo 'load.label load' + # These two are optional. They are only used if you have + # configured your munin to tell a Nagios-server about any + # problems + echo 'load.warning 10' + echo 'load.critical 120' + # This one is purely to add an explanation to the web page. The first + # one is for the graph itself, while the second one is for the field + # "load". + echo 'graph_info The load average of the machine describes how many processes are in the run-queue (scheduled to run "immediately").' + echo 'load.info Average load for the five minutes.' + + # Last, if run with the "config"-parameter, quit here (don't + # display any data) + exit 0 +fi + +# If not run with any parameters at all (or only unknown ones), do the +# real work - i.e. display the data. Almost always this will be +# "value" subfield for every data field. + +echo -n "load.value " +/sbin/sysctl vm.loadavg | cut -f3 -d' ' + +# How could this plugin have been written in its simplest form? +# Something like this: +# +# --------------------- +# #!/bin/sh + +# +# if [ "$1" = "config" ]; then + +# echo "graph_title Load average" +# echo 'graph_args --base 1000 -l 0' +# echo 'graph_vlabel load' +# echo "load.label load" +# exit 0 +# fi +# echo -n "load.value " +# cut -f1 -d' ' < /proc/loadavg +# --------------------- +# +# Except for the Nagios-warnings (which most people don't have any need +# for) and things used by installation scripts and munin-config (which +# you don't need if you don't plan on submitting your plugin to the +# pacakge), the two versions will work identically. diff --git a/munin/files/plugins/netstat b/munin/files/plugins/netstat new file mode 100755 index 0000000..5ad7e63 --- /dev/null +++ b/munin/files/plugins/netstat @@ -0,0 +1,100 @@ +#!/bin/sh +# +# Plugin to monitor network connections. +# +# Parameters: +# +# config (required) +# autoconf (optional - only used by munin-config) +# +# $Log$ +# Revision 1.5.2.1 2005/01/28 14:51:22 lupe +# Add graph_info and some filed.info +# +# Revision 1.6 2005/01/28 14:47:31 lupe +# Add graph_info and some filed.info +# +# Revision 1.5 2004/12/10 10:47:49 jimmyo +# Change name from ${scale} to ${graph_period}, to be more consistent. +# +# Revision 1.4 2004/12/09 22:12:55 jimmyo +# Added "graph_period" option, to make "graph_sums" usable. +# +# Revision 1.3 2004/11/21 00:16:56 jimmyo +# Changed a lot of plugins so they use DERIVE instead of COUNTER. +# +# Revision 1.2 2004/05/20 19:02:36 jimmyo +# Set categories on a bunch of plugins +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.3 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magic markers (optional - used by munin-config and some installation +# scripts): +#%# family=auto +#%# capabilities=autoconf + + + +if [ "$1" = "autoconf" ]; then + if ( netstat -s 2>/dev/null >/dev/null ); then + echo yes + exit 0 + else + if [ $? -eq 127 ] + then + echo "no (netstat program not found)" + exit 1 + else + echo no + exit 1 + fi + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title Netstat' + echo 'graph_args -l 0 --base 1000' + echo 'graph_vlabel active connections per ${graph_period}' + echo 'graph_category network' + echo 'graph_period second' + echo 'graph_info This graph shows the TCP activity of all the network interfaces combined.' + echo 'active.label active' + echo 'active.type DERIVE' + echo 'active.min 0' + echo 'active.max 50000' + echo 'active.info The number of active TCP openings per second.' + echo 'passive.label passive' + echo 'passive.type DERIVE' + echo 'passive.min 0' + echo 'passive.max 50000' + echo 'passive.info The number of passive TCP openings per second.' + echo 'failed.label failed' + echo 'failed.type DERIVE' + echo 'failed.min 0' + echo 'failed.max 50000' + echo 'failed.info The number of failed TCP connection attempts per second.' + echo 'resets.label resets' + echo 'resets.type DERIVE' + echo 'resets.min 0' + echo 'resets.max 50000' + echo 'resets.info The number of TCP connection resets.' + echo 'established.label established' + echo 'established.type DERIVE' + echo 'established.min 0' + echo 'established.max 50000' + echo 'established.info The number of currently open connections.' + exit 0 +fi + +netstat -s | awk '/connection requests/ { print "active.value " $1 } /connection accepts/ { print "passive.value " $1 } /bad connection/ { print "failed.value " $1 } /reset/ { print "resets.value " $1 } /connections established/ { print "established.value " $1 }' + diff --git a/munin/files/plugins/open_files b/munin/files/plugins/open_files new file mode 100755 index 0000000..71d3a5d --- /dev/null +++ b/munin/files/plugins/open_files @@ -0,0 +1,74 @@ +#!/bin/sh +# +# Plugin to monitor the number of open files in the system. +# +# Parameters: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# $Log$ +# Revision 1.2.2.1 2005/01/28 14:51:22 lupe +# Add graph_info and some filed.info +# +# Revision 1.3 2005/01/28 14:47:31 lupe +# Add graph_info and some filed.info +# +# Revision 1.2 2004/05/20 19:02:36 jimmyo +# Set categories on a bunch of plugins +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.3 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magic markers (Used by munin-config and some installation scripts. +# Optional): +# +#%# family=auto +#%# capabilities=autoconf + + + +if [ "$1" = "autoconf" ]; then + if [ -x /sbin/sysctl ]; then + /sbin/sysctl kern.openfiles > /dev/null + if [ $? = "0" ]; then + echo yes + exit 0 + else + echo no + exit 1 + fi + else + echo no + exit 1 + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title File table usage' + echo 'graph_args --base 1000 -l 0' + echo 'graph_vlabel number of open files' + echo 'graph_category system' + echo 'graph_info This graph monitors the Linux open files table.' + echo 'used.label open files' + echo 'used.info The number of currently open files.' + echo 'max.label max open files' + echo 'max.info The maximum supported number of open files.' + /sbin/sysctl -n kern.maxfiles | awk '{printf "used.warning %d\nused.critical %d\n",$1*0.92,$1*0.98}' + exit 0 +fi + +#awk '{print "used.value " $1-$2 "\nmax.value " $3}' < /proc/sys/fs/file-nr +echo -n 'max.value ' +/sbin/sysctl -n kern.maxfiles +echo -n 'used.value ' +/sbin/sysctl -n kern.nfiles diff --git a/munin/files/plugins/sensors_temp b/munin/files/plugins/sensors_temp new file mode 100755 index 0000000..1a1f56a --- /dev/null +++ b/munin/files/plugins/sensors_temp @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Plugin to monitor temperature readings +# +# Parameters: +# +# config (required) +# autoconf (optional - only used by munin-config) +# +# Magic markers (optional - used by munin-config and some installation +# scripts): +#%# family=auto +#%# capabilities=autoconf + + + +if [ "$1" = "autoconf" ]; then + if ( sysctl -a hw.sensors 2>/dev/null >/dev/null ); then + echo yes + exit 0 + else + if [ $? -eq 127 ] + then + echo "no (sysctl program not found)" + exit 1 + else + echo no + exit 1 + fi + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title temperature readings' + echo 'graph_args -l 0 --base 1000' + echo 'graph_vlabel degC ${graph_period}' + echo 'graph_category sensors' + echo 'graph_period second' + echo 'graph_info Temperature readings on mainboard and CPU' + echo 'mb.label mainboard' + echo 'mb.type GAUGE' + echo 'mb.min 15' + echo 'mb.max 150' + echo 'mb.info mainboard temperature (TSENS1).' + echo 'cpu.label CPU' + echo 'cpu.type GAUGE' + echo 'cpu.min 15' + echo 'cpu.max 150' + echo 'cpu.info CPU temperature (TSENS2).' + exit 0 +fi + +sysctl -a | awk '/TSENS1/ { print "mb.value " $4 } /TSENS2/ { print "cpu.value " $4 }' + diff --git a/munin/files/plugins/vmstat b/munin/files/plugins/vmstat new file mode 100755 index 0000000..0bcaa9a --- /dev/null +++ b/munin/files/plugins/vmstat @@ -0,0 +1,79 @@ +#!/bin/sh +# +# Plugin to monitor the number of procs in io-sleep and other wait +# states. Uses `vmstat`. +# +# Parameters: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# $Log$ +# Revision 1.4 2004/05/20 13:57:12 jimmyo +# Set categories to some of the plugins. +# +# Revision 1.3 2004/01/30 14:40:08 jimmyo +# Added max value to generic/vmstat plugin (Deb#225489). +# +# Revision 1.2 2004/01/29 19:00:42 jimmyo +# Make vmstat plugin more portable (SF#882352). +# +# Revision 1.1 2004/01/02 18:50:00 jimmyo +# Renamed occurrances of lrrd -> munin +# +# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo +# Import of LRRD CVS tree after renaming to Munin +# +# Revision 1.3 2003/12/06 16:32:29 jimmyo +# Better names. Idea from Mike Fedyk. +# +# Revision 1.2 2003/11/07 17:43:16 jimmyo +# Cleanups and log entries +# +# +# +# Magick markers (optional): +#%# family=auto +#%# capabilities=autoconf + + + +if [ "$1" = "autoconf" ]; then + if ( vmstat 1 1 >/dev/null 2>&1 ); then + echo yes + exit 0 + else + if [ $? -eq 127 ]; then + echo "no (could not run \"vmstat\")" + exit 1 + else + echo no + exit 1 + fi + fi +fi + +if [ "$1" = "config" ]; then + + echo 'graph_title VMstat' + echo 'graph_args --base 1000 -l 0' + echo 'graph_vlabel process states' + echo 'graph_category processes' + echo 'total.label total' + echo 'total.type GAUGE' + echo 'total.max 500000' + echo 'run.label runq' + echo 'run.type GAUGE' + echo 'run.max 500000' + echo 'iowait.label iowait' + echo 'iowait.type GAUGE' + echo 'iowait.max 500000' + echo 'sleep.label sleep/swapped' + echo 'sleep.type GAUGE' + echo 'sleep.max 500000' + exit 0 +fi + +echo "total.value `sysctl -n kern.nprocs`" +vmstat 1 2 | awk '{run = $1; iowait = $2; sleep = $3} END { print "run.value " run "\niowait.value " iowait "\nsleep.value " sleep }' + diff --git a/munin/manifests/init.pp b/munin/manifests/init.pp index ae06c5b..a820f5e 100644 --- a/munin/manifests/init.pp +++ b/munin/manifests/init.pp @@ -55,6 +55,21 @@ class munin::node { munin::plugin { "vmware_vms": config => "vmware" } + case $operatingsystem { + OpenBSD: { + munin::plugin { "cpu": } + munin::plugin { "df": } + munin::plugin { "df_inode": } + munin::plugin { "interfaces": } + munin::plugin { "irqstats": } + munin::plugin { "load": } + munin::plugin { "netstat": } + munin::plugin { "open_files": } + munin::plugin { "sensors_temp": } + munin::plugin { "vmstat": } + } + } + }