128 lines
3.0 KiB
Bash
Executable File
128 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
: << =cut
|
|
|
|
=head1 NAME
|
|
|
|
nsd - Plugin to monitor nsd DNS server
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
No configuration
|
|
|
|
=head1 AUTHOR
|
|
|
|
Kim Heino <b@bbbs.net>
|
|
|
|
=head1 LICENSE
|
|
|
|
GPLv2
|
|
|
|
=head1 MAGIC MARKERS
|
|
|
|
#%# family=auto
|
|
#%# capabilities=autoconf
|
|
|
|
=cut
|
|
|
|
if [ "$1" = "autoconf" ]; then
|
|
if [ -x /usr/sbin/nsd-control ]; then
|
|
echo "yes"
|
|
exit 0
|
|
else
|
|
echo "no (no /usr/sbin/nsd-control)"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = "config" ]; then
|
|
echo 'graph_title NSD queries'
|
|
echo 'graph_vlabel queries / second'
|
|
echo 'graph_category dns'
|
|
echo 'graph_info Queries per second, by query type'
|
|
echo 'a.label A'
|
|
echo 'a.type DERIVE'
|
|
echo 'a.min 0'
|
|
echo 'aaaa.label AAAA'
|
|
echo 'aaaa.type DERIVE'
|
|
echo 'aaaa.min 0'
|
|
echo 'ptr.label PTR'
|
|
echo 'ptr.type DERIVE'
|
|
echo 'ptr.min 0'
|
|
echo 'cname.label CNAME'
|
|
echo 'cname.type DERIVE'
|
|
echo 'cname.min 0'
|
|
echo 'mx.label MX'
|
|
echo 'mx.type DERIVE'
|
|
echo 'mx.min 0'
|
|
echo 'txt.label TXT'
|
|
echo 'txt.type DERIVE'
|
|
echo 'txt.min 0'
|
|
echo 'soa.label SOA'
|
|
echo 'soa.type DERIVE'
|
|
echo 'soa.min 0'
|
|
echo 'ns.label NS'
|
|
echo 'ns.type DERIVE'
|
|
echo 'ns.min 0'
|
|
echo 'srv.label SRV'
|
|
echo 'srv.type DERIVE'
|
|
echo 'srv.min 0'
|
|
echo 'dnskey.label DNSKEY'
|
|
echo 'dnskey.type DERIVE'
|
|
echo 'dnskey.min 0'
|
|
echo 'axfr.label AXFR'
|
|
echo 'axfr.type DERIVE'
|
|
echo 'axfr.min 0'
|
|
echo 'snxd.label NXDOMAIN'
|
|
echo 'snxd.type DERIVE'
|
|
echo 'snxd.min 0'
|
|
echo 'rq.label Total Successful'
|
|
echo 'rq.type DERIVE'
|
|
echo 'rq.min 0'
|
|
exit 0
|
|
fi
|
|
|
|
/usr/sbin/nsd-control stats_noreset | sed 's/=/ /; s/\.//g' | (
|
|
numtypeA=0
|
|
numtypeAAAA=0
|
|
numtypePTR=0
|
|
numtypeCNAME=0
|
|
numtypeMX=0
|
|
numtypeTXT=0
|
|
numtypeSOA=0
|
|
numtypeNS=0
|
|
numtypeSRV=0
|
|
numtypeDNSKEY=0
|
|
numraxfr=0
|
|
numrcodeNXDOMAIN=0
|
|
numqueries=0
|
|
while read -r key value rest; do
|
|
[ "${key}" = "numtypeA" ] && numtypeA=${value}
|
|
[ "${key}" = "numtypeAAAA" ] && numtypeAAAA=${value}
|
|
[ "${key}" = "numtypePTR" ] && numtypePTR=${value}
|
|
[ "${key}" = "numtypeCNAME" ] && numtypeCNAME=${value}
|
|
[ "${key}" = "numtypeMX" ] && numtypeMX=${value}
|
|
[ "${key}" = "numtypeTXT" ] && numtypeTXT=${value}
|
|
[ "${key}" = "numtypeSOA" ] && numtypeSOA=${value}
|
|
[ "${key}" = "numtypeNS" ] && numtypeNS=${value}
|
|
[ "${key}" = "numtypeSRV" ] && numtypeSRV=${value}
|
|
[ "${key}" = "numtypeDNSKEY" ] && numtypeDNSKEY=${value}
|
|
[ "${key}" = "numraxfr" ] && numraxfr=${value}
|
|
[ "${key}" = "numrcodeNXDOMAIN" ] && numrcodeNXDOMAIN=${value}
|
|
[ "${key}" = "numqueries" ] && numqueries=${value}
|
|
done
|
|
echo "a.value ${numtypeA}"
|
|
echo "aaaa.value ${numtypeAAAA}"
|
|
echo "ptr.value ${numtypePTR}"
|
|
echo "cname.value ${numtypeCNAME}"
|
|
echo "mx.value ${numtypeMX}"
|
|
echo "txt.value ${numtypeTXT}"
|
|
echo "soa.value ${numtypeSOA}"
|
|
echo "ns.value ${numtypeNS}"
|
|
echo "srv.value ${numtypeSRV}"
|
|
echo "dnskey.value ${numtypeDNSKEY}"
|
|
echo "axfr.value ${numraxfr}"
|
|
echo "snxd.value ${numrcodeNXDOMAIN}"
|
|
echo "rq.value ${numqueries}"
|
|
)
|