BIND
を使用してリクエストをログに記録する場合rndc querylog
、ログはデフォルトで に記録されます/var/log/messages
。このログの保存先を変更して、独自のログ ファイルを指定することは可能ですか?
答え1
named.conf のマニュアル ページには、ログ記録に関するセクションがあります。
DNS サービスに chroot を使用している場合は、ログの保存先が適切に解釈されていることを確認してください。
具体的には、構文チャートは次のようになります。
logging { channel string { file log_file; syslog optional_facility; null; stderr; severity log_severity; print-time boolean; print-severity boolean; print-category boolean; }; category string { string; ... }; };
答え2
はい。syslog メッセージ ファイルに出力したくない場合は、クエリ ログ チャネルを定義して、その出力を選択した特定のログ ファイルの宛先に送信できます。
channel queries_log {
file "/var/named/log/queries" versions 600 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
category queries { queries_log; };
デバッグの問題に応じて、必要に応じて rndc を使用してクエリ ログを有効または無効にできることを覚えておいてください。これにより、操作が正常な場合に CPU サイクルとディスク I/O を節約できます。私が投稿したサンプルを調整して、ログに記録されたクエリを含む 20 MB のファイルが 600 個、ファイル システムに残らないようにします。
実践として、ログ専用のパーティションとファイル システムを用意して、いっぱいになっても他のシステム操作に悪影響が及ばないようにしてください。つまり、/var/log を専用のパーティション/スライスに配置します。最悪の場合、いっぱいになると一部のログ データが失われる可能性がありますが、システム機能は継続できます。