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]: <H1>DNS Server monitor</H1> 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:
以上の設定で、無事にグラフの出力ができました。