Zopeのログローテーション

サーバーのディスクがぱんぱんになっていたので何が原因かと調べていたら、どうも稼働時からZopeのログがまったくローテーションされていないのでログが膨大なサイズに膨れ上がっていた。というわけで、ちょこちょこ調べてログがローテーションされるように設定。
具体的にはFreeBSDにはnewsyslogというログをローテーションするシステムがあるので、その設定ファイルである/etc/newsyslog.confに記述を追加。
/usr/local/www/Zope29/log/Z2.log www:w…

サーバーのディスクがぱんぱんになっていたので何が原因かと調べていたら、どうも稼働時からZopeのログがまったくローテーションされていないのでログが膨大なサイズに膨れ上がっていた。というわけで、ちょこちょこ調べてログがローテーションされるように設定。

具体的にはFreeBSDにはnewsyslogというログをローテーションするシステムがあるので、その設定ファイルである/etc/newsyslog.confに記述を追加。

/usr/local/www/Zope29/log/Z2.log www:wheel 644 5 5000 * J /usr/local/www/Zope29/var/Z2.pid
/usr/local/www/Zope29/log/event.log www:wheel 644 5 5000 * J /usr/local/www/Zope29/var/Z2.pid

これでZopeのログが5MBに達するごとにローテーションしてからZopeのプロセスにログの再始動を促してくれる。ミソはZopeが書き出すpidファイルを参照してnewsyslogにどのプロセスに再始動のシグナルを送ればよいかを教えてあげること。デフォルトではSIGUSR1を送るらしい。SIGUSR1によるログの再始動に対応していないプロセスの場合はSIGHUP1を送る様に設定の最期にシグナルのナンバーを記述すればいいのだろうか?

rootでnewsyslog -Fで強制的にログをローテーションするテストが出来るので動作確認。

でも、最大の圧迫の原因は何年もデータベースのパックをしてなかったためにデータベースがロールバック用のアンドゥデータでぱんぱんに膨れ上がっていたためでした。こっちも自動で定期パックするようにした方がいいのかもしれないけど、あんまり高頻度にパックするとたまにデータベースが壊れるらしいので、当面は手動のままでいこう。毎日のdfの出力結果を注視しておかないと。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください