Warning
This documentation is no longer maintained. The new documentation is available at dev.kitsu.cloud.
Log rotation
Log produced by the API grow quickly and lead to big log files. You will need
quickly to configure logrotate to create a new log file every day.
Store PID of zou processes
To create a folder on boot to store pid files add a RuntimeDirectory add a line
before ExecStart in the unit file
(/etc/systemd/system/zou.service):
RuntimeDirectory=zou
Add this to the ExecStart line to create the pid file for zou
-p /run/zou/zou.pid
For example:
ExecStart=/opt/zou/zouenv/bin/gunicorn -p /run/zou/zou.pid -c /etc/zou/gunicorn.py -b 127.0.0.1:5000 zou.app:app
Edit the zou-events unit file to create the pid file for zou-events
(/etc/systemd/system/zou-events.service):
-p /run/zou/zou-events.pid
PIDs are now stored in mentioned files.
Configure logrotate
We can now proceed to the Logrotate configuration. Logrotate is a Unix tool that will handle the log rotation for you. It just requires a configuration file to work properly.
Add this logrotate configuration (/etc/logrotate.d/zou):
/opt/zou/logs/gunicorn_access.log {
daily
missingok
rotate 14
notifempty
nocompress
size 100M
create 644 zou zou
postrotate
kill -USR1 `cat /run/zou/zou.pid`
endscript
}
/opt/zou/logs/gunicorn_error.log {
daily
missingok
rotate 14
nocompress
size 100M
notifempty
create 644 zou zou
postrotate
kill -USR1 `cat /run/zou/zou.pid`
endscript
}
/opt/zou/logs/gunicorn_events_access.log {
daily
missingok
rotate 14
nocompress
size 100M
notifempty
create 644 zou zou
postrotate
kill -USR1 `cat /run/zou/zou-events.pid`
endscript
}
/opt/zou/logs/gunicorn_events_error.log {
daily
missingok
rotate 14
nocompress
size 100M
notifempty
create 644 zou zou
postrotate
kill -USR1 `cat /run/zou/zou-events.pid`
endscript
}
It will create a new log file for each day, and keep only the last 14 files.
You can test the log rotation is set up correctly by running
logrotate /etc/logrotate.d/zou --debug
You're done with log rotation!