openSUSE 11.1 で syslog-ng の program とかが上手く行かない問題
例えば php-syslog-ng を使うために program を使って MySQL サーバにログを入れようとしても、
Feb 7 09:56:13 hogepc syslog-ng[6626]: I/O error occurred while writing; fd='11', error='Broken pipe (32)' Feb 7 09:56:13 hogepc syslog-ng[6626]: I/O error occurred while writing; fd='10', error='Broken pipe (32)' Feb 7 09:56:13 hogepc syslog-ng[6626]: I/O error occurred while writing; fd='11', error='Broken pipe (32)' Feb 7 09:56:13 hogepc syslog-ng[6626]: I/O error occurred while writing; fd='10', error='Broken pipe (32)'
みたいなエラーが大量に出て上手く行かない。
時間を掛けまくって分かったが AppArmor の設定が厳しいのが悪いらしい。と言う訳でこんな設定を /etc/apparmor.d/sbin.syslog-ng に追記 *1。
#include/usr/bin/mysql rmix, /etc/my.cnf r, /bin/bash rmix,
プロファイルの reload は↓で可能。
# apparmor_parser -r /etc/apparmor.d/sbin.syslog-ng
一応これで動いた。アクセス拒否のログは /var/log/audit/audit.log に書かれているので動かない際は要チェック。面倒なら「complain syslog-ng」とか打って監視を止める方法もある (もちろんセキュリティ的にはよろしくないけど…)。
*1:openSUSE 11.1 の yast から編集しようとしても上手く行かないので直接編集