mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
NetBSD support added
This commit is contained in:
parent
fc51c3a69e
commit
acb3839b40
170
plugins/other/pf
170
plugins/other/pf
@ -32,112 +32,114 @@
|
||||
#
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||
export PATH
|
||||
|
||||
pfctl='/sbin/pfctl'
|
||||
pfctl="/sbin/pfctl"
|
||||
|
||||
case $1 in
|
||||
config)
|
||||
cat <<EOF
|
||||
graph_title OpenBSD pf statistics
|
||||
graph_vlabel Entries per second
|
||||
graph_scale no
|
||||
graph_category network
|
||||
graph_args -l 0
|
||||
graph_info OpenBSD's pf usage statistics
|
||||
states.label States
|
||||
states.type GAUGE
|
||||
EOF
|
||||
${pfctl} -sm 2> /dev/null | awk '
|
||||
/states/ {print "states.warning "$4*0.9; print "states.critical "$4*0.95}
|
||||
'
|
||||
if [ "x${do_searches}" = "xyes" ]; then
|
||||
cat <<EOF
|
||||
searches.label Searches
|
||||
searches.min 0
|
||||
searches.type DERIVE
|
||||
EOF
|
||||
fi
|
||||
cat <<EOF
|
||||
matches.label Matches
|
||||
matches.min 0
|
||||
matches.type DERIVE
|
||||
mismatches.label State mismatches
|
||||
mismatches.min 0
|
||||
mismatches.type DERIVE
|
||||
blocks.label Blocked packets
|
||||
blocks.type DERIVE
|
||||
blocks.min 0
|
||||
EOF
|
||||
pfctl -sl | awk '
|
||||
{
|
||||
l="";
|
||||
for (i=1; i<NF-2; i=i+1) l=l" "$i;
|
||||
sub(/^ /, "", l);
|
||||
f=l;
|
||||
gsub(/[^a-z0-9A-Z]/, "_", f);
|
||||
print f".label L: "l;
|
||||
print f".type DERIVE"
|
||||
print f".min 0"}'
|
||||
echo "graph_title OpenBSD pf statistics"
|
||||
echo "graph_vlabel Entries per second"
|
||||
echo "graph_scale no"
|
||||
echo "graph_category network"
|
||||
echo "graph_args -l 0"
|
||||
echo "graph_info OpenBSD's pf usage statistics"
|
||||
echo "states.label States"
|
||||
echo "states.type GAUGE"
|
||||
${pfctl} -sm 2> /dev/null | awk '/states/ {print "states.warning "$4*0.9; print "states.critical "$4*0.95}'
|
||||
if [ "x${do_searches}" = "xyes" ]; then
|
||||
echo "searches.label Searches"
|
||||
echo "searches.min 0"
|
||||
echo "searches.type DERIVE"
|
||||
fi
|
||||
echo "matches.label Matches"
|
||||
echo "matches.min 0"
|
||||
echo "matches.type DERIVE"
|
||||
echo "mismatches.label State mismatches"
|
||||
echo "mismatches.min 0"
|
||||
echo "mismatches.type DERIVE"
|
||||
echo "blocks.label Blocked packets"
|
||||
echo "blocks.type DERIVE"
|
||||
echo "blocks.min 0"
|
||||
${pfctl} -sl 2>/dev/null | awk '{
|
||||
l="";
|
||||
for (i=1; i<NF-2; i=i+1) l=l" "$i;
|
||||
sub(/^ /, "", l);
|
||||
f=l;
|
||||
gsub(/[^a-z0-9A-Z]/, "_", f);
|
||||
print f".label L: "l;
|
||||
print f".type DERIVE"
|
||||
print f".min 0"}'
|
||||
exit 0
|
||||
;;
|
||||
|
||||
exit 0
|
||||
;;
|
||||
autoconf)
|
||||
# FreeBSD
|
||||
ostype=`uname -s`
|
||||
if [ ${ostype} = "FreeBSD" ]; then
|
||||
# enabled?
|
||||
if [ `pfctl -si 2>/dev/null | awk '/^Status:/{print $2}'` != "Enabled" ]; then
|
||||
echo "no (pf(4) is not enabled, consult pfctl(8)"
|
||||
exit 1
|
||||
fi
|
||||
# NetBSD
|
||||
if [ ${ostype} = "NetBSD" ]; then
|
||||
# enabled?
|
||||
if [ `${pfctl} -si 2>/dev/null | awk '/^Status:/{print $2}'` != "Enabled" ]; then
|
||||
echo "no (pf(4) is not enabled, consult pfctl(8))"
|
||||
exit 1
|
||||
fi
|
||||
# FreeBSD
|
||||
elif [ ${ostype} = "FreeBSD" ]; then
|
||||
# enabled?
|
||||
if [ `${pfctl} -si 2>/dev/null | awk '/^Status:/{print $2}'` != "Enabled" ]; then
|
||||
echo "no (pf(4) is not enabled, consult pfctl(8))"
|
||||
exit 1
|
||||
fi
|
||||
# OpenBSD
|
||||
elif [ ${ostype} = "OpenBSD" ]; then
|
||||
# pf(4) module loaded?
|
||||
if [ `kldstat -v | grep pf | wc -l` -eq 0 ]; then
|
||||
echo "no (pf(4) is not loaded)"
|
||||
exit 1
|
||||
fi
|
||||
# enabled?
|
||||
if [ `pfctl -si 2>/dev/null | awk '/^Status:/{print $2}'` != "Enabled" ]; then
|
||||
echo "no (pf(4) is not enabled, consult pfctl(8)"
|
||||
exit 1
|
||||
fi
|
||||
# pf(4) module loaded?
|
||||
if [ `kldstat -v | grep pf | wc -l` -eq 0 ]; then
|
||||
echo "no (pf(4) is not loaded)"
|
||||
exit 1
|
||||
fi
|
||||
# enabled?
|
||||
if [ `${pfctl} -si 2>/dev/null | awk '/^Status:/{print $2}'` != "Enabled" ]; then
|
||||
echo "no (pf(4) is not enabled, consult pfctl(8))"
|
||||
exit 1
|
||||
fi
|
||||
# Other OSes
|
||||
else
|
||||
echo "no (this plugin is not supported on your OS)"
|
||||
exit 1
|
||||
echo "no (this plugin is not supported on your OS)"
|
||||
exit 1
|
||||
fi
|
||||
echo "yes"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
suggest)
|
||||
exit 0;
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
#
|
||||
${pfctl} -si 2>/dev/null | awk '
|
||||
/current entries/{print "states.value",$3}
|
||||
/searches/{if ( "'${do_searches}'" == "yes" ) print "searches.value",$2}
|
||||
$1~/^match$/{print "matches.value",$2}
|
||||
/state-mismatch/{print "mismatches.value",$2}'
|
||||
/current entries/{print "states.value",$3}
|
||||
/searches/{if ( "'${do_searches}'" == "yes" ) print "searches.value",$2}
|
||||
$1~/^match$/{print "matches.value",$2}
|
||||
/state-mismatch/{print "mismatches.value",$2}'
|
||||
${pfctl} -vsr 2> /dev/null| grep -A 1 ^block | awk 'BEGIN {sum=0}/^[ \t]*\[/{sum=sum+$5} END {print "blocks.value",sum}'
|
||||
|
||||
# the labeled ones
|
||||
pfctl -sl | awk '
|
||||
BEGIN {
|
||||
total=0
|
||||
}
|
||||
{
|
||||
l="";
|
||||
for (i=1; i<NF-2; i=i+1) l=l" "$i;
|
||||
sub(/^ /, "", l);
|
||||
f=l;
|
||||
gsub(/[^a-z0-9A-Z]/, "_", f);
|
||||
total=total+1;
|
||||
fields[f]=fields[f]+$(NF-i+2);
|
||||
}
|
||||
END {
|
||||
if ( total == 0 ) exit 0;
|
||||
for ( k in fields ) print k".value "fields[k]
|
||||
}'
|
||||
${pfctl} -sl 2>/dev/null | awk '
|
||||
BEGIN {
|
||||
total=0
|
||||
}
|
||||
{
|
||||
l="";
|
||||
for (i=1; i<NF-2; i=i+1) l=l" "$i;
|
||||
sub(/^ /, "", l);
|
||||
f=l;
|
||||
gsub(/[^a-z0-9A-Z]/, "_", f);
|
||||
total=total+1;
|
||||
fields[f]=fields[f]+$(NF-i+2);
|
||||
}
|
||||
END {
|
||||
if ( total == 0 ) exit 0;
|
||||
for ( k in fields ) print k".value "fields[k]
|
||||
}'
|
||||
|
Loading…
Reference in New Issue
Block a user