Nginx, Logrotate & Webalizer increment
Vladislav
tvword на gmail.com
Вс Янв 31 14:22:08 MSK 2010
Здесь http://www.lexa.ru/nginx-ru/msg13044.html нашел описание конфига
Nginx для Logrotate.
Рассматривается конфигурация
> /var/log/nginx/*log {
> daily
> rotate 9
> missingok
> notifempty
> compress
> sharedscripts
> postrotate
> [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
> endscript
> }
>
> Даны пояснения:
>
> Лог-файлы нужно переименовать, а затем послать сигнал USR1 главному
> процессу.
> Он откроет заново все текущие открытые файлы и назначит им в качестве
> владельца
> непривилегированного пользователя, под которым работают рабочие процессы.
> После успешного открытия главный процесс закрывает все открытые файлы
> и посылает сообщение о переоткрытии файлов рабочим процессам.
> Они также открывают новые файлы и сразу же закрывают старые.
> В результате старые файлы практически сразу же готовы
> для дальнейшей обработки, например, их можно сжимать.
Вопрос. Немного не понятно, кто в этом случае очищает log-файл, например
access.log? Nginx или Logrotate?
Еще задача. Перед ротация логов, по ним нужно пройтись webalizer'ом,
причем с инкрементной обработкой логов.
У меня получился такой конф.файл -
> /var/log/ng/access.log {
> rotate 10
> size=10M
> missingok
> notifempty # не обрабатывать пустые файлы
> compress
> nodelaycompress
> nocreate
> sharedscripts # prerotate/postrotate выполняются только 1 раз
> prerotate
> /usr/bin/webalizer
> endscript
> postrotate
> [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
> endscript
> }
Стоит параметр nocreate. Т.е не создавать новый файл access.log?
Создаст ли его nginx через команду kill -USR1 `cat /var/run/nginx.pid ?
Подробная информация о списке рассылки nginx-ru