Ubuntu

Ubuntu 12.04 bindに細かなログを出力させる

半年ぶりですご無沙汰しています。
この半年の間、サーバーはほぼ安定稼働。メモリが貧弱な割にサービスをたくさん提供したのでモノによってはレスポンスが悪いこともあるけれど、ほとんど問題は起きない。安定しているというのはありがたい。

広告


7/9に何かが気になった私はbindに詳細なログを出力させようと思い立った模様。そして、今頃になって以下のエラーが出たりしているので、解決できるまでフォローしてみようかと思った。ただし、過去に行った設定はうろ覚え・・・。

 


bindに詳細なログを出力させるために、以下の設定を追加している。

/etc/bind/named.conf.options

logging {
        channel chosa {
                file "/var/log/named/bind.chosa.log" versions 10 size 10m;
                print-category yes;
                print-time yes;
        };

        category xfer-in  { chosa; };
        category xfer-out { chosa; };
        category notify   { chosa; };
        category config   { chosa; };
        category security { chosa; };
        category update   { chosa; };
        category default  { chosa; };
        category queries  { null; };
        category client   { chosa; };
};

 

出力先ディレクトリはどこでも良い、というわけではなくて、

/var/log/named/

 

にしている。

それはAppArmorという機構が働いていて、bind君はログの吐き出し先が限定されているから。

/etc/apparmor.d/usr.sbin.named

  # some people like to put logs in /var/log/named/ instead of having
  # syslog do the heavy lifting.
  /var/log/named/** rw,
  /var/log/named/ rw,

 

よって、以下の通りディレクトリを作ってログが出力できるようにすればよい。

$ sudo mkdir /var/log/named
$ sudo chown bind:bind /var/log/named
$ sudo chmod 755 /var/log/named

 

もしかすると、bind.chosa.log ファイルをtouchで作っておく必要があるかも。
当時はそんなファイルを作った記憶。


本日、こんな問題が出ていたので見直した。

Dec 29 20:02:15 hogeserver named[1024]: unable to rename log file '/var/log/named/bind.chosa.log' to '/var/log/named/bind.chosa.log.0': permission denied

 

今まで何とかログ出力はしてきたけれども、容量がいっぱいになったからログローテートをしようとしたが、権限がなかった。
原因は、/var/log/namedディレクトリのオーナーの間違いだった。

変更前: drwxr-xr-x  2 root      root      4096  7月  2 22:56 named/
変更後: drwxr-xr-x  2 bind      bind      4096 12月 30 08:54 named/

 

パーミッションを変更し、ネット接続をちょこちょこしたらすぐにローテートされたことが確認できた。

広告

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他