ubutu 12.04 における ntpd ( Ver. 4.2.6p3 ) の、 syslog 以外へのログ出力エラーについて
目的
表題の件を実行するにあたり、下記2方法が一般的であるが
1. /etc/default/ntp の下記指定
NTPD_OPTS='-l /var/log/ntp.log'
2. /etc/ntp.conf の下記指定
logfile /var/log/ntp.log
※ rsyslog の facility では daemon なので、これによるシンプルな分離はできません。
上記 1,2 の方法では、下記のように syslog 以外へのログ出力が行えませんでした。
ntpd[1349]: Cannot open log file /var/log/ntp.log
その問題解決を行った。
syslog ログ出力確認と対処
指定ログファイルが開けなかったとの出力の次に、下記ログ出力が存在した。
kernel: [ 4455.348040] type=1400 audit(1401108239.882:29): apparmor="DENIED" operation="capable" parent=1341 profile="/usr/sbin/ntpd" pid=1349 comm="ntpd" pid=1349 comm="ntpd" capability=1 capname="dac_override"
これは、最近 OpenStack でハマったこと - ishikawa84g's blog にもある通り、AppAmor のエラー出力なので、許可を追加し ntp サービスを再起動し、対処完了としました。
sudo echo " capability dac_override," /etc/apparmor.d/usr.sbin.ntpd sudo service ntp restart
参考に、作成されたログファイル情報を下記に示します。
$ ls -la /var/log/ntp.log -rw-r--r-- 1 root root 775 5月 26 22:09 /var/log/ntp.log
以上。