diff --git a/plugins/other/pf_bytes b/plugins/other/pf_bytes new file mode 100755 index 00000000..6cca4172 --- /dev/null +++ b/plugins/other/pf_bytes @@ -0,0 +1,85 @@ +#!/bin/sh +# +# OpenBSD's pf(4) monitoring for OpenBSD +# 2007, Originally by Gergely Czuczy +# for FreeBSD systems. Ported and splitted by the +# immerda admin team admin(at)immerda.ch +# this version is adapted for openbsd and is only tested on +# openbsd systems. +# +# Needs to run as root. +# Add "user root" for the [pf] into plugins.conf. +# +#%# family=auto +#%# capabilities=autoconf + +pfctl='/sbin/pfctl' + +case $1 in + config) + cat </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 + fi + echo "yes" + exit 0 + ;; + suggest) + exit 0; + ;; +esac + +sudo pfctl -sl | awk ' +BEGIN { + total=0 +} +{ + l=$1; + f_bytes=l; + gsub(/[^a-z0-9A-Z]/, "_", f_bytes); + total=total+1; + fields[f_bytes]=fields[f_bytes]+$4; +} +END { + if ( total == 0 ) exit 0; + for ( k in fields ) print k".value "fields[k] +}' + +