(1/2)BINDが正常に動作しているように見えても、実は高負荷で悲鳴をあげているかもしれない。BINDのロギング機能やデバッグ情報出力、MRTGなどを活用して、BINDの状態を把握できるようにしておこう。にわか管理者のらく印を押されることになります。9の情報収集と分析方法について解説します。9独自のロギングを備えています。第9回では簡単に紹介しただけでしたが、今回はsecurity/client以外のログカテゴリも見ていきましょう。9のロギング制御は、named.confで行います。channelでログの出力方法、categoryで出力するログの種類を指定します。};};/etc/named.confもう少し詳しく説明しましょう。ログの出力方法は、loggingセクション中のchannelで定義します(2〜8行目)。ローカルファイルにログを出力する場合、出力ファイルをフルパスで指定し、ログローテーションで保存する世代数とローテーションする際の上限ファイルサイズを続けて記述します。「世代数」は0〜2147483647の整数またはunlimitedを指定します。unlimitedを指定した場合、99世代までローテーションします。「サイズ」にはK/k、M/m、G/gを単位に添えることができます。ログメッセージの保存先はローカルファイル以外に、syslogデーモンに送信したり破棄することができます。注:syslogのファシリティは「facilityで指定できるキーワード」参照。null;」を使うよりも、デフォルトで定義されているnullチャネルを使用するのが便利です。{null;};同様に、syslogデーモンや標準エラーに出力させる場合もデフォルトで定義されているdefault_syslogとdefault_stderrチャネルの使用が可能です。info;};標準エラーへ出力する場合このほかに、namedのデバッグモードのためのdefault_debugチャネルが定義されています。namedのデバッグモードについては後述します。←デバッグレベルの変更に合わせて変更可能};named.runファイルへ出力する場合channelの説明に戻ります。print-time、print-severity、print-categoryはログファイル中の日時、ログレベル、ログカテゴリの表示・非表示を切り替えます。42例:print-time、print-severity、print-categoryをyesにした場合。13:34:35.878:日時表示general:カテゴリ表示info:ファシリティ表示カテゴリの定義channelだけ定義しても、ロギングそのものは行われません。channel定義は出力方法を規定するだけで、どのようなログを出力するかはcategoryで定義します(10行目)。多くの場合、defaultと特別に記録したいもの(マスター/セカンダリサーバであればxfer-in/xfer-out、DDNSを使用している場合はupdateなど)を指定します。使用できるカテゴリは、表1から用途に合わせて1つだけ記述します。指定できるカテゴリチャネル名には先ほどchannelで定義したチャネル名や、default_syslog、default_stderr、default_debugを指定します。複数指定することも可能です。前回、攻撃元を特定するため、問い合わせクエリーをすべて記録する手法としてクエリーログを紹介しました。};(省略)};named.confこの方法はサーバのリソースを多く消費します。そこで、欲しいときに、それもnamedの再起動を伴わずにクエリーログを取得する方法がrndcコマンドで提供されています。rndcコマンドにquerylogを指定すると、いままでクエリーログが無効であれば有効に、有効であれば無効に変わります。←OFFへデバッグ出力BINDには、より詳細な動作検証を行うため、デバッグ情報を段階的に出力できます。本来、デバッグ情報はnamedなど特定ソフトウェアのバグ取り作業に用いられますが、メッセージをうまくくみ取ることでBINDの動作検証に活用できます。デバッグメッセージを出力させるには、named起動時にオプションを指定するか、rndcコマンドで出力を制御します。注:rndcのインストールについては第5回参照。デバッグメッセージは/var/named/named.runファイル(注)に出力されます。注:named.confでワークディレクトリ(/var/named)を変更している場合は、指定されたディレクトリ下のnamed.run。デバッグレベルには0〜99の整数を指定します。デバッグレベルが大きい(高い)ほど、表示されるメッセージが詳細になります。デバッグレベルを付加せずにtraceとだけすると、デバッグレベルが1段上がります。出力先は、前述したチャネル定義「default_debug」が使用されます。ファイル名やファイルサイズなど、出力方法を変更する場合はloggingセクション中のchannel文でdefault_debug定義を上書きします。runningデバッグレベル1起動時のメッセージ(print-time、print-severity、print-categoryをyesにした場合)注:本来ソフトウェアのバグ取りのための機能ですが、ある程度は解読可能です。キャッシュデータのダンプサーバの正しいIPアドレスが得られない場合はdigやhostコマンドで確認しますが、キャッシュされているメモリ内のデータを出力させることもできます。C.ROOT-SERVERS.NET.(省略)/var/named/named_dump.dbデフォルトの出力先は、ワークディレクトリ(/var/named)のnamed_dump.dbファイルです。出力先を変更したい場合は、named.confで新しい出力先を指定します。ファイル名;(省略)};named_dump.dbファイルに出力されるキャッシュ情報には、glueauthanswerauthauthorityansweradditionalなどの見出しが付加されます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。