mrtgでbindのクエリー数の推移を表示する方法は、いくつかのサイトで見ることができます。
例えば →
実用 BIND 9で作るDNSサーバ(10):BIND 9の運用情報収集と分析方法 (2/2) - @IT
rndcコマンドで「rndc stats」としたときのsuccessとfailureをdnsstats.plを使って、グラフ化するものです。
CentOS5だとこの方法が使えるのですが、CentOS6はいつまでも0です。CentOS 5.11のBINDのバージョンが9.3.6、CentOS 6.6のBINDのバージョンが9.8.2です。どうやらBINDのバージョンが9.6移行の「rndc stats」の出力形式が異なるのが原因のようです。前のバージョンと同じ形式の出力にするために、いろいろ調べてみたのですが、設定ファイルの編集などでは対応できないようです。
BIND9.3.6の出力が
+++ Statistics Dump +++ (1423322807)
success 16524
referral 1
nxrrset 1690
nxdomain 3420
recursion 13345
failure 311
--- Statistics Dump --- (1423322807)
BIND9.8.2の出力が
+++ Statistics Dump +++ (1423221603)
++ Incoming Requests ++
2382 QUERY
++ Incoming Queries ++
567 A
1783 PTR
8 TXT
24 AAAA
++ Outgoing Queries ++
[View: default]
1190 A
68 NS
352 PTR
8 TXT
28 AAAA
[View: _bind]
++ Name Server Statistics ++
2382 IPv4 requests received
2358 responses sent
2170 queries resulted in successful answer
88 queries resulted in authoritative answer
2177 queries resulted in non authoritative answer
6 queries resulted in nxrrset
93 queries resulted in SERVFAIL
89 queries resulted in NXDOMAIN
559 queries caused recursion
24 duplicate queries received
と続いています。
そこで、下のサイトにあるbind96-stats-parse.plを利用します。
Monitoring BIND9 | packetmischief.ca
bind96-stats-parse.plを/root/mrtg/に置いたとします。
dnsstats.plの$newstatfileをこのあと変換するファイルを指定します。
my $newstatfile = "/root/mrtg/named_stats.txt";
system("$rndc", "stats");
の後ろに
system("/root/mrtg/bind96-stats-parse.pl < /var/named/data/named_stats.txt > /root/mrtg/named_stats.txt");
と追記します。
if (($foundsuccess == 0) && ($line =~ /^success (\d+)/)) {
を
if (($foundsuccess == 0) && ($line =~ /^name_server_statistics:queries_resulted_in_successful_answer=(\d+)/)) {
と変更。
if (($foundfailure == 0) && ($line =~ /^failure (\d+)/)) {
を
if (($foundfailure == 0) && ($line =~ /^name_server_statistics:queries_resulted_in_servfail=(\d+)/)) {
と変更。
このdnsstats.plを/etc/mrtg/mrtg.cfgに記述します。
### DNS Server monitor ###
Target[dns-server]: `/root/mrtg/dnsstats.pl`
Title[dns-server]: DNS Server monitor
PageTop[dns-server]: DNS Server monitor
Options[dns-server]: growright,noinfo,nopercent,unknaszero,perminute
#RouterUptime[dns-server]: public@192.168.0.1
MaxBytes[dns-server]: 32000
AbsMax[dns-server]: 64000
RRDRowCount[dns-server]: 3200
Colours[dns-server]: YELLOW #F9C000,RED #F90000,LIGHT YELLOW #FFFFBB,LIGHT RED #FF8080
ShortLegend[dns-server]:queries/m
YLegend[dns-server]: Qs per Minute
Legend1[dns-server]: Queries received over 1 minute
Legend2[dns-server]: Failed Queries received over 1 minute
Legend3[dns-server]: Maximal Queries over 5 minutes
Legend4[dns-server]: Maximal Failed Queries over 5 minutes
LegendI[dns-server]: Queries:
LegendO[dns-server]: Failures:
以上の設定で、無事にグラフの出力ができました。
コメント