munin の実行ユーザを munin 以外で実行させる
Web サーバはおまえだけのもんやないんやで?(マジギレ
という訳で、epel から導入すると強制的に「munin」ユーザが作業を始めるのでそれらを調教します。ディレクトリ設定によって差異はあるでしょうが、大体以下ので大丈夫じゃないでしょうか。
前提条件
それぞれこのユーザで実行させたい。apache は VirtualHost で既に色々動いているので、munin を従わせる方向に舵取りした。
調教する
[root@localhost ~]# chown -R apache:apache /var/www/html/munin/ [root@localhost ~]# chown -R apache:apache /var/log/munin [root@localhost ~]# chown apache:apache /var/run/munin/ [root@localhost ~]# chown apache:apache /var/run/munin/munin-html.lock [root@localhost ~]# chown -R apache:apache /var/lib/munin [root@localhost ~]# vi /etc/cron.d/munin -> # # cron-jobs for munin # MAILTO=root #*/5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron */5 * * * * apache test -x /usr/bin/munin-cron && /usr/bin/munin-update 10 */1 * * * apache test -x /usr/bin/munin-cron && /usr/bin/munin-graph 30 08 * * * apache test -x /usr/bin/munin-cron && /usr/bin/munin-html
munin の document root にファイルがコピーされてこない場合
ローカル ( root ユーザ宛に)エラーメールが飛びまくってるので、エラーが出なくなるまで、記載されているエラーの原因を潰す。大体どこそこのディレクトリが PermissionDenied というやつなので、容赦なく chown する。
cron 実行されるまで待つ必要はなく、以下のようにすれば /sbin/nologin なやつにもシェルに乗ってコマンド試せるよ。
[root@localhost ~]# su - apache --shell=/bin/bash $bash
muninの3分間チューニング - Qiita
cron の実行タイミング変更の参考にさせてもらいました。
追記20150526
[root@localhost ~]# vi /etc/logrotate.d/munin
このファイルの中で、ローテートする際にファイルの所有権を munin に態々変更してたので、 munin -> apache に変更。