/usr/sbin/rotatelogs /var/log/httpd/ssl_8444_access_log.%Y%m%d 86400 540、
/usr/sbin/rotatelogs /var/log/httpd/ssl_8444_request_log.%Y%m%d 86400 540
などのプロセスが20個ほど常に起動しています。
その影響でpsコマンド出力のVIRT RESの合計メモリで150Mほど常に食っています。
logrotateは、/etc/cron.dailyで4時2分起動で設定されています。
/var/lib/logrotate.statusには、これらの20個ほどのプロセスと同じものが存在します。
この/usr/sbin/rotatelogsプロセスは/etc/cron.dailyで動く時間以外にも待機プロセスと複数起動するものなのでしょうか。
このメモリ消費を減らしたいと思っておりまして、待機プロセスとして起動させない事など出来るものでしょうか。
何卒ご教示頂けますと幸いです。
よろしくお願い致します。
rotatelogs のプロセスは httpd.conf で指定した数だけ起動、常駐します。なのでそういうものです。
また、rotatelogs を使う場合は logrotate は不要です。どちらかだけで良いです。cron.daily や logrotate と rotatelogs は全く関係ありません。
rotatelogs のプロセスが気になるようでしたら、rotatelogs を使うのをやめて logrotate にローテーションさせる状態 (Apache のデフォルト) に戻せば良いです。
(今やっているような、日毎にきれいにログを分割することを実現するのは logrotate ではちと面倒ですが。)
http://q.hatena.ne.jp/1200448522 も参考になるかもしれません。
ふつうはlogrotateだけで十分でしょう。
rotatelogsを止めるには、"httpd.conf"で設定します。下記をご覧ください。
http://www.atmarkit.co.jp/flinux/rensai/apache14/apache14a.html
たぶん/var/log/httpdあたりのディレクトリがrotateの権限では書き込めないようになって終わらないのだと思います。ディレクトリとrotateの起動権限を見直してください。http://www
rotatelogs のプロセスは httpd.conf で指定した数だけ起動、常駐します。なのでそういうものです。
また、rotatelogs を使う場合は logrotate は不要です。どちらかだけで良いです。cron.daily や logrotate と rotatelogs は全く関係ありません。
rotatelogs のプロセスが気になるようでしたら、rotatelogs を使うのをやめて logrotate にローテーションさせる状態 (Apache のデフォルト) に戻せば良いです。
(今やっているような、日毎にきれいにログを分割することを実現するのは logrotate ではちと面倒ですが。)
http://q.hatena.ne.jp/1200448522 も参考になるかもしれません。
ご回答ありがとうございます。
rotatelogs のプロセスは httpd.conf で指定した数だけ起動、常駐しますとのことですが、
それは、httpd.confの中の
<IfModule prefork.c>
MinSpareServers 1
MaxSpareServers 2
MinSpareServers で指定した待機プロセスの数の分だけ起動常駐するとのことでしょうか
よろしくお願い致します。
> MinSpareServers で指定した待機プロセスの数の分MinSpareServers で指定した待機プロセスの数の分だけ起動常駐するとのことでしょうか
いえ、CustomLog や ErrorLog 等で rotatelogs を使うと指定した回数分です。
httpd.conf を rotatelogs で grep して出てきた行数分と言ってもいいかもしれません。
rotatelogs を使うのをやめて logrotate に身を任せれば0にできます。
なるほど。
了解しました。
あと、1点、質問させてください。
/etc/httpd/conf.d/ssl.confにあります、ssl_request_logの設定で
ログファイルがssl_request_logの表示しか出力されていません。
検索してみますと、
CustomLog "logs/ssl_request_log.%Y%m%d" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"のような記述がありますが、
私の設定のconfでは、CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/ssl_31082_request_log.%Y%m%d 86400 540" ssl_request_logの
"ssl_request_log"で出力指定しているためでよろしいでしょうか。
お手数お掛けしますが、よろしくお願い致します。
> 私の設定のconfでは、CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/ssl_31082_request_log.%Y%m%d 86400 540" ssl_request_logの
> "ssl_request_log"で出力指定しているためでよろしいでしょうか。
そうですね、そのためだと思います。
大変、ありがとうございました。
とても、参考になりました。
ご回答ありがとうございます。
rotatelogs のプロセスは httpd.conf で指定した数だけ起動、常駐しますとのことですが、
それは、httpd.confの中の
<IfModule prefork.c>
MinSpareServers 1
MaxSpareServers 2
MinSpareServers で指定した待機プロセスの数の分だけ起動常駐するとのことでしょうか
よろしくお願い致します。