ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[6]: Ротация логов



Здравствуйте, Vyacheslav.

Вы писали 7 апреля 2006 г., 12:01:49:

> Здравствуйте, Дугин!

> Friday, April 7, 2006, 11:29:41 AM, you wrote:

ДС>> Здравствуйте, Igor.

ДС>> Вы писали 7 апреля 2006 г., 11:02:23:

>>> On Fri, 7 Apr 2006, [windows-1251] Дугин Сергей wrote:

>>>>>> Можно ли добавить новые переменные по аналогии как в 
>>>>>> http://sysoev.ru/nginx/docs/syntax.html
>>>>>>
>>>>>> %yy %mm %dd %hh %mm %ss
>>>>>>
>>>>>> Тогда можно было бы сделать так:
>>>>>> access_log /home/user/logs/%yy%mm%dd-access.log main;
>>>>>>
>>>>>> И ровно в полночь делать
>>>>>>
>>>>>> kill -1 `cat /usr/local/nginx/logs/nginx.pid`
>>>>>>
>>>>>> Было бы имхо и удобно и практично.
>>>>
>>>>> Непрактично в том плане, что все клиенты будут ночью отваливаться.
>>>>> Практично делоть SIGUSR1, а логи ротировать чем-нить типа logrotate или
>>>>> как там его. Это общая практика, так делается для большинства приложений.
>>>>
>>>> Не вижу смысла в памяти сервера держать несколько тысяч процессов
>>>> logrotate в течении суток если можно просто перезапустить nginx и
>>>> клиенты отваливаться не будут и памяти с экономит и процессору крутить
>>>> между собой процессы не нужно будет.

>>> Откуда в памяти возьмутся тысячи процессов logrotate в течение суток ?
>>> Один logrotate запускается в полночь, переименовывает файлы,
>>> посылает -USR1 nginx'у, ждёт секунду и потом жмёт файлы, запускает
>>> анализатор, копирует логи на специальную машину, etc.


>>> Игорь Сысоев
>>> http://sysoev.ru

ДС>> Сории поппутал с кронологом, который через pipe запускается. Все равно
ДС>> мне кажется запуск стороних процессов будет дольше нежели это сделает
ДС>> сам nginx либо через его рестарт либо он сам это сделает. Особенно
ДС>> если учесть что все юзера любят ровн ов полночь что-нибудь
ДС>> обсчитывать.

> Казалось бы, что будет удобно если nginx будет уметь и лог-файлы
> нужным образом писать, и ротировать их сам, но...

> У каждого администратора свои задачи.

> Во-первых, Игорь просто физически не сможет учесть специфические
> запросы всех пользователей, а тем более такие функции, которые уже
> давно реализованы, отлажены и для которых существует куча софта. В
> любом дистрибутиве UNIX системы есть поддержка ротации лог-файлов.

> Во-вторых, философия unix как раз в том, что каждая программа
> занимается своим делом. Ротация логов - это совершенно не задача
> web/imap-сервера, как бы этого не хотелось.

> Сергей, приведите пожалуйста примерную структуру хранения Ваших логов на 
> диске -
> Помочь написать скрипт, я уверен, Вам с радостью могут участники рассылки.
> Можно find-ом, можно nginx.conf отпарсить, да как угодно.
> Всего несколько строк в sh дают максимум универсальности, хоть %yy %mm
> %dd, хоть имя юзера, да всё что угодно, можно сжать, отпарсить,
> отправить, создать симлинки в одном дире, чтобы главному админу проще
> грепать было и тому подобное. Зачем всё это nginx-у ?

структура такая
/scsi/$user/$domain/%YY%mm%dd-error.log
/scsi/$user/$domain/%YY%mm%dd-access.log
При этом кол-во доменов и юзеров в системе меняется в течении дня, то
есть новый домены добаляются и удаляются так же как и юзера.

И мне проще было бы в данном случае просто перегружать nginx так чтобы
он создавал имя файла вида 20060707-access.log  - тут даже ни какой
ротации нет просто хочется чтобы можно было в имя лога переменную
добавить! По любому в течении суток nginx перегружается каждый раз
когда появляется/удалется новый домен или юзер. И каждый раз делать
запросы к базе MySQL (там все хранится) чтобы менять параметры
logrotate вместо того чтобы перегрузить nginx усложняет задачу
значительно.

При этом ведь никто не просит чтобы сам nginx ротарил логи, я сейчас
сделал временное решение мне приходится генерить в полночь весь
конфиг nginx, а потом все равно перезапускать nginx -1 pid
И старый конфиг nginx от нового отличается только тем что имtена логов
изменилось на новую дату и все!  И ведь получается что nginx в данном
случае не ротарит, поэтому я и прошу добавить переменые типа %YY %mm
 %dd, имхо это не нагрузит nginx, а кому-то (в частности мне) облегчит
жизнь.


-- 
С уважением,
 Дугин Сергей                          mailto:drug@xxxxxxxxx
 QWARTA




 




Copyright © Lexa Software, 1996-2009.