chroot された BIND のログ記録句を設定するにはどうすればよいでしょうか?

chroot された BIND のログ記録句を設定するにはどうすればよいでしょうか?

この質問は、これですしかし、最も役立つと思われる回答は Ubuntu 固有のものであり、これは OSX 10.6.8 で実行されています。

このログ記録句を使用すると、

logging {
         category default {
                 _default_log;
         };

         channel _default_log  {
                 file "/var/chroot/named/var/log/query.log";
                 severity info;
                 print-time yes;
         };
 };

system.log に次のエラーが表示されます:

isc_log_open '/var/chroot/named/var/log/query.log' が失敗しました: ファイルが見つかりません

confファイル内のbind9のログ記録句に関するこの記事言う:

ファイル 'path_name' は、ログ ファイルへの絶対パスを定義する引用符で囲まれた文字列です (例: "/var/log/named/namedlog.log")。

しかし、conf は jail 内の にあり、ログはjail 内の か、 jail 外の (chroot 前にログが指していた場所)/var/chroot/named/etc/named.confのいずれかに書き込まれるようにしたいと思います。どちらでも動作すれば問題ありません。/var/chroot/named/var/log/query.log/Library/Logs/named.log

どのような助けでも大歓迎です!

答え1

バインドは jail chroot 内で実行されるため、パスはそれに相対的である必要があります。

chroot された bind の場合、/ディレクトリは で始まる/var/chroot/namedため、ファイル名を に変更し/var/log/query.log、bind に への書き込み権限があることを確認する必要があります/var/log

また、ログを両方のファイルに書き込むこともできます。上記の変更がうまくいけば、chroot の外で次のコマンドを使用して、 2 つのファイル (/var/chroot/named/var/log/query.logおよび) を 1 つのファイルにリンクできます。/Library/Logs/named.log

$ ln /var/chroot/named/var/log/query.log /Library/Logs/named.log

こうすることで、両方の場所に同じコンテンツが提供されます。ただし、1 つのファイルを削除しても他のファイルは削除されませんが、ファイルを空にすると両方のファイルが削除されることに注意してください。そのため、、logrotateまたは同様のプログラムを使用する場合は、両方のファイルをローテーションして、リンクが毎回再作成されるようにする必要があります。

答え2

ディレクティブ内のファイル名を /var/log/query.log に変更します。ルートとして /var/chroot/named を持つ chroot された領域にいます。

関連情報