BIND 9の運用情報収集と分析方法:実用 BIND 9で作るDNSサーバ(10)(2/2 ページ)
BINDが正常に動作しているように見えても、実は高負荷で悲鳴をあげているかもしれない。BINDのロギング機能やデバッグ情報出力、MRTGなどを活用して、BINDの状態を把握できるようにしておこう。(編集局)
MRTGによるクエリー数の統計表示
前回、rndcコマンドを使った統計情報の出力方法を紹介しました。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
出力される情報を一見しただけでは、DNSの動作を的確にとらえることはできません。等間隔で「rndc stats」を実行し、単位時間当たりのクエリー数を計算するような統計作業が必要です。cronなどの自動実行ルーチンとPerlなどのスクリプトを組み合わせる手法が考えられますが、ここではもう少し踏み込んで、視覚的にモニタできるようにMRTG(注)を組み合わせます。
dnsstats.plによるデータ加工
MRTGは、SNMPに対応した機器をはじめ、CPUやディスクの使用状況など、およそ管理者が必要とする情報を集積してグラフ化します。MRTGのログフォーマットは比較的簡易であるため、ツールを使った効率的なログ分析術のような非SNMP情報もMRTGデータにインポート可能です。そこで、「rndc stats」で出力されるnamed.statsの情報をMRTGに表示できるように加工します。加工にはdnsstats.pl(http://statusreport.sourceforge.net/)(注)を使用します。
dnsstas.plは、named.stats中のsuccess/failureの値からクエリーの総数を抜き出すので、サーバに問い合わせのあったクエリー数の変動を確認できるようになります。
「rndc stats」の出力をMRTG化するには、ワーキングディレクトリ下にmrtgディレクトリを用意し、DNSクエリーモニタのために必要なMRTGのコンフィグファイルやdnsstats.plファイルを配置します(注)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
次にdnsstas.plをhttp://prdownloads.sourceforge.net/statusreport/dnsstats.pl?download からダウンロードし、/var/named/mrtg/dnsstats.plとして保存します。このファイルに実行権を加え、ファイル中の各値を修正します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
MRTGコンフィグファイルの作成
dnsstats.plファイルが準備できたら、MRTGのコンフィグファイルを作成します。通常のMRTGであればcfgmakerコマンドで自動生成しますが、今回はSNMPポーリングを使用しないため手動で作成する必要があります。作成に当たってはdnsstas.pl中の先頭コメント文が参考になるでしょう。また、MRTGのバージョンによってはほかにも付け加える必要があるものもあります。多くの場合は以下のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
「[xxx]」には、識別子を指定します。コンフィグファイル固有であれば、自由に設定可能です。例では「dns-server」とします。
1〜5行目はdnsstats.plファイル中では説明されていませんが、追加が必要です。1行目には、表示するMRTGグラフのHTMLや画像ファイルを収めるディレクトリを指定します。Apacheのドキュメントディレクトリ下でなければなりません。2行目でContent-Typeの指定とともに、Languageに「eucjp」を指定してHTML中のメッセージを日本語にします。3行目はApacheのデフォルトアイコンを収めるパス指定です。4行目と5行目はそれぞれ、HTMLファイル中の<TITLE>および<H1>タグに埋め込む文字列を指定します。例ではシンプルに、「DNS Server monitor」としています。
6行目でdnsstas.plをフルパスで指定します。8行目はサーバのアップタイムをSNMPを通して取得するよう、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
で指定しています。そのためDNSサーバでsnmpdが起動している必要がありますが、不要であれば「#」でコメントアウトします。11行目はRRDtool(http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/)を使用する場合に必要になるのですが、使用するMRTGのバージョンによってはエラーになるため、例ではコメントアウトしています。
そのほかについてはdnsstas.plで指定されているとおりにしていますが、グラフの表示色や閾値などをカスタマイズしたい場合は、MRTGによるサーバ監視システムの構築を参照してください。
MRTGグラフの出力
MRTGのコンフィグファイルが用意できたら、Apacheのドキュメントディレクトリ中に「DNS Server monitor」が展開できるように、先ほどWorkDirで指定したディレクトリを作成してhttpdを起動します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
最後に、mrtg.cfgを基にグラフ生成のためのMRTGログやHTMLコンテンツをmrtgコマンドで作成します。MRTGの定石作業として、mrtgコマンドを続けて2回発行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Webブラウザで、今回作成したURL(http://サーバ名/dnsstats)に接続し、動作を確認してみましょう。
継続して集計されるように、mrtgコマンドをcrontabに登録します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
MRTGを併用することで、過度の問い合わせ(バースト)の発生や応答クエリー数の上限を超えた要求が継続的に発生していないかを確認するのが、より容易になります。
DNSの働きはネットワークトラフィックに比例しているため、ネットワークに異常が起きている場合はDNSにも何らかの信号が出ているはずです。普段からクエリー数の変動を把握することで、DNS以外のネットワークの異常検知にも役立ちます。
- BIND 9を徹底活用するためのTips集
- DNSの拡張仕様、SRVレコードとENUM
- 次世代のセキュリティ拡張DNSSECをBIND 9で実現
- IPv6対応DNSサーバの実現
- BIND 9のチューニングと大規模運用
- BIND 9の運用情報収集と分析方法
- BIND 9のセキュリティ対策
- DHCPとDynamic DNSの連携システム
- Dynamic DNSの基礎とnsupdateコマンド
- サブドメインの運用と委任
- スレーブ・サーバのゾーン転送とセキュリティ
- キャッシュ/逆引きDNSの構築と運用
- メール/Webサーバを効率的に動かすゾーン設定
- すべての基礎、マスター・ゾーンサーバの設定
- BIND 9の改ざんチェックとインストール
Copyright © ITmedia, Inc. All Rights Reserved.