Projet

Général

Profil

Révision ed49d346

IDed49d346e3c8042e40a7026a2ddb83930f1ca4dd
Parent b1251d0c
Enfant 301d13b1

Ajouté par Kim B. Heino il y a plus de 4 ans

nsd: new plugin to monitor nsd DNS server

Voir les différences:

plugins/nsd/nsd
1
#!/bin/sh
2

  
3
: << =cut
4

  
5
=head1 NAME
6

  
7
nsd - Plugin to monitor nsd DNS server
8

  
9
=head1 CONFIGURATION
10

  
11
No configuration
12

  
13
=head1 AUTHOR
14

  
15
Kim Heino <b@bbbs.net>
16

  
17
=head1 LICENSE
18

  
19
GPLv2
20

  
21
=head1 MAGIC MARKERS
22

  
23
 #%# family=auto
24
 #%# capabilities=autoconf
25

  
26
=cut
27

  
28
if [ "$1" = "autoconf" ]; then
29
    if [ -x /usr/sbin/nsd-control ]; then
30
        echo "yes"
31
        exit 0
32
    else
33
        echo "no (no /usr/sbin/nsd-control)"
34
        exit 0
35
    fi
36
fi
37

  
38
if [ "$1" = "config" ]; then
39
    echo 'graph_title NSD queries'
40
    echo 'graph_vlabel queries / second'
41
    echo 'graph_category dns'
42
    echo 'graph_info Queries per second, by query type'
43
    echo 'a.label A'
44
    echo 'a.type DERIVE'
45
    echo 'a.min 0'
46
    echo 'aaaa.label AAAA'
47
    echo 'aaaa.type DERIVE'
48
    echo 'aaaa.min 0'
49
    echo 'ptr.label PTR'
50
    echo 'ptr.type DERIVE'
51
    echo 'ptr.min 0'
52
    echo 'cname.label CNAME'
53
    echo 'cname.type DERIVE'
54
    echo 'cname.min 0'
55
    echo 'mx.label MX'
56
    echo 'mx.type DERIVE'
57
    echo 'mx.min 0'
58
    echo 'txt.label TXT'
59
    echo 'txt.type DERIVE'
60
    echo 'txt.min 0'
61
    echo 'soa.label SOA'
62
    echo 'soa.type DERIVE'
63
    echo 'soa.min 0'
64
    echo 'ns.label NS'
65
    echo 'ns.type DERIVE'
66
    echo 'ns.min 0'
67
    echo 'srv.label SRV'
68
    echo 'srv.type DERIVE'
69
    echo 'srv.min 0'
70
    echo 'dnskey.label DNSKEY'
71
    echo 'dnskey.type DERIVE'
72
    echo 'dnskey.min 0'
73
    echo 'axfr.label AXFR'
74
    echo 'axfr.type DERIVE'
75
    echo 'axfr.min 0'
76
    echo 'snxd.label NXDOMAIN'
77
    echo 'snxd.type DERIVE'
78
    echo 'snxd.min 0'
79
    echo 'rq.label Total Successful'
80
    echo 'rq.type DERIVE'
81
    echo 'rq.min 0'
82
    exit 0
83
fi
84

  
85
/usr/sbin/nsd-control stats_noreset | sed 's/=/ /; s/\.//g' | (
86
    numtypeA=0
87
    numtypeAAAA=0
88
    numtypePTR=0
89
    numtypeCNAME=0
90
    numtypeMX=0
91
    numtypeTXT=0
92
    numtypeSOA=0
93
    numtypeNS=0
94
    numtypeSRV=0
95
    numtypeDNSKEY=0
96
    numraxfr=0
97
    numrcodeNXDOMAIN=0
98
    numqueries=0
99
    while read -r key value rest; do
100
	[ "${key}" = "numtypeA" ] && numtypeA=${value}
101
	[ "${key}" = "numtypeAAAA" ] && numtypeAAAA=${value}
102
	[ "${key}" = "numtypePTR" ] && numtypePTR=${value}
103
	[ "${key}" = "numtypeCNAME" ] && numtypeCNAME=${value}
104
	[ "${key}" = "numtypeMX" ] && numtypeMX=${value}
105
	[ "${key}" = "numtypeTXT" ] && numtypeTXT=${value}
106
	[ "${key}" = "numtypeSOA" ] && numtypeSOA=${value}
107
	[ "${key}" = "numtypeNS" ] && numtypeNS=${value}
108
	[ "${key}" = "numtypeSRV" ] && numtypeSRV=${value}
109
	[ "${key}" = "numtypeDNSKEY" ] && numtypeDNSKEY=${value}
110
	[ "${key}" = "numraxfr" ] && numraxfr=${value}
111
	[ "${key}" = "numrcodeNXDOMAIN" ] && numrcodeNXDOMAIN=${value}
112
	[ "${key}" = "numqueries" ] && numqueries=${value}
113
    done
114
    echo "a.value ${numtypeA}"
115
    echo "aaaa.value ${numtypeAAAA}"
116
    echo "ptr.value ${numtypePTR}"
117
    echo "cname.value ${numtypeCNAME}"
118
    echo "mx.value ${numtypeMX}"
119
    echo "txt.value ${numtypeTXT}"
120
    echo "soa.value ${numtypeSOA}"
121
    echo "ns.value ${numtypeNS}"
122
    echo "srv.value ${numtypeSRV}"
123
    echo "dnskey.value ${numtypeDNSKEY}"
124
    echo "axfr.value ${numraxfr}"
125
    echo "snxd.value ${numrcodeNXDOMAIN}"
126
    echo "rq.value ${numqueries}"
127
)

Formats disponibles : Unified diff