openbsd-ports/net/munin/files/bgpd

59 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
# $OpenBSD: bgpd,v 1.2 2010/10/23 15:52:22 sthen Exp $
#
# Script to monitor OpenBGPD peers
# (c) 2007 Michael Knudsen <mk@openbsd.org>
# client-conf.d/-options:
#
# env.rsock - path to bgpd control socket
# defaults to /var/www/logs/bgpd.rsock
#
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
# Magic markers (optional - used by munin-config and installation
# scripts):
#
#%# family=auto
#%# capabilities=autoconf
RSOCK=${rsock}
RSOCK=${RSOCK:-/var/www/logs/bgpd.rsock}
if [ "$1" = "autoconf" ]; then
if [ -x "/usr/sbin/bgpctl" -a -S "${RSOCK}" ]; then
echo yes
exit 0
else
echo "no ($RSOCK not a socket)"
exit 0
fi
fi
if [ "$1" = "config" ]; then
echo 'graph_args --base 1000'
echo 'graph_title BGP peering overview'
echo 'graph_vlabel prefixes'
echo 'graph_category network'
echo 'graph_info This graph shows the number of prefixes (routes) received from the currently used BGP peers.'
/usr/sbin/bgpctl -s $RSOCK sh | sed -n '2,$p' | while read p; do
peername=$(echo $p | cut -d ' ' -f1 | sed 's/[\.\-]/_/g')
echo "$peername.label $peername"
done
exit 0
fi
/usr/sbin/bgpctl -s $RSOCK sh | sed -n '2,$p'| while read p; do
peername=$(echo $p | cut -d ' ' -f1 | sed 's/[\.\-]/_/g')
value=$(echo $p | awk '{ split($7,outp,"/"); print outp[1]; }')
echo "$peername.value ${value}"
done