#!/bin/bash # # Script to monitor PowerDNS performance # # Parameters understood: # # config (required) # autoconf (optional - used by munin-config) #%# family=auto #%# capabilities=autoconf pdns_control="/usr/bin/pdns_control" command="$pdns_control list" if [ "$1" = "autoconf" ]; then if [ -e "$pdns_control" ]; then echo yes exit 0 else echo "no (missing $pdns_control)" exit 0 fi fi if [ "$1" = "config" ]; then echo 'graph_title Power DNS errors' echo 'graph_args -l 0 --base 1000' echo 'graph_vlabel numbers of' echo 'graph_category dns' echo 'graph_info This graph shows Power DNS performance on the machine.' echo 'corrupt_packets.label corrupt packets' echo 'corrupt_packets.type DERIVE' echo 'corrupt_packets.min 0' echo 'corrupt_packets.info Number of corrupt packets received' echo 'servfail_packets.label servfail packets' echo 'servfail_packets.type DERIVE' echo 'servfail_packets.min 0' echo 'servfail_packets.info Number of times a server-failed packet was sent out' echo 'timedout_packets.label timedout packets' echo 'timedout_packets.type DERIVE' echo 'timedout_packets.min 0' echo 'timedout_packets.info Number of packets which weren not answered within timeout set' exit 0 fi $command | sed 's/=\([0-9]\+\),/.value \1\n/g' | egrep "corrupt|servfail|timedout" | sed 's/-/_/g'