#!/bin/sh : << =cut =head1 NAME nsd - Plugin to monitor nsd DNS server =head1 CONFIGURATION No configuration =head1 AUTHOR Kim Heino =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}" )