検索
連載

BIND 9の運用情報収集と分析方法実用 BIND 9で作るDNSサーバ(10)(2/2 ページ)

BINDが正常に動作しているように見えても、実は高負荷で悲鳴をあげているかもしれない。BINDのロギング機能やデバッグ情報出力、MRTGなどを活用して、BINDの状態を把握できるようにしておこう。(編集局)

Share
Tweet
LINE
Hatena
前のページへ |       

MRTGによるクエリー数の統計表示

 前回、rndcコマンドを使った統計情報の出力方法を紹介しました。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 出力される情報を一見しただけでは、DNSの動作を的確にとらえることはできません。等間隔で「rndc stats」を実行し、単位時間当たりのクエリー数を計算するような統計作業が必要です。cronなどの自動実行ルーチンとPerlなどのスクリプトを組み合わせる手法が考えられますが、ここではもう少し踏み込んで、視覚的にモニタできるようにMRTG()を組み合わせます。

注:MRTGについては、MRTGによるサーバ監視システムの構築でインストール方法や簡単な使用方法を紹介しています。

dnsstats.plによるデータ加工

 MRTGは、SNMPに対応した機器をはじめ、CPUやディスクの使用状況など、およそ管理者が必要とする情報を集積してグラフ化します。MRTGのログフォーマットは比較的簡易であるため、ツールを使った効率的なログ分析術のような非SNMP情報もMRTGデータにインポート可能です。そこで、「rndc stats」で出力されるnamed.statsの情報をMRTGに表示できるように加工します。加工にはdnsstats.pl(http://statusreport.sourceforge.net/)()を使用します。

注:2003年10月時点ではブランクページです。

 dnsstas.plは、named.stats中のsuccess/failureの値からクエリーの総数を抜き出すので、サーバに問い合わせのあったクエリー数の変動を確認できるようになります。

 「rndc stats」の出力をMRTG化するには、ワーキングディレクトリ下にmrtgディレクトリを用意し、DNSクエリーモニタのために必要なMRTGのコンフィグファイルやdnsstats.plファイルを配置します()。

注:httpdとしてApacheがすでにインストールされている必要があります。

*** 一部省略されたコンテンツがあります。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以外のネットワークの異常検知にも役立ちます。


前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る