URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7700
[ Назад ]

Исходное сообщение
"Apache перестает писать логи после ротации newsyslog"

Отправлено westvovik , 20-Мрт-13 11:58 
#apache
/var/log/httpd-access.log  666  7     *    @T00  BZ
/var/log/httpd-error.log   666  7     *    @T00  BZ
/var/log/apache/*.ru       666  28    *    @T00  GJ
/var/log/apache/*.error    666  28    *    @T00  GJ        /var/run/httpd.pid 30


-rw-rw-rw-  1 root  www         66 Mar 20 00:00 domain.ru
-rw-rw-rw-  1 root  www     489032 Mar 20 11:56 domain.ru-error
-rw-rw-rw-  1 root  www         44 Mar 18 00:00 domain.ru-error.0.gz
-rw-rw-rw-  1 root  www         44 Mar 17 00:00 domain.ru-error.1.gz
-rw-rw-rw-  1 root  www         44 Mar 16 00:00 domain.ru-error.2.gz
-rw-rw-rw-  1 root  www         44 Mar 15 00:00 domain.ru-error.3.gz
-rw-rw-rw-  1 root  www       4256 Mar 14 23:56 domain.ru-error.4.gz
-rw-rw-rw-  1 root  www         44 Mar 13 00:00 domain.ru-error.5.gz
-rw-rw-rw-  1 root  www         44 Mar 12 00:00 domain.ru-error.6.gz
-rw-rw-rw-  1 root  www    4039781 Mar 20 00:00 domain.ru.0.bz2
-rw-rw-rw-  1 root  www         66 Mar 20 00:00 test.domain.ru
-rw-rw-rw-  1 root  www     120277 Mar 20 00:00 test.domain.ru.0.bz2


Если перезагружаю apache То опять начинает писать, но после ротации перестает


Содержание

Сообщения в этом обсуждении
"Apache перестает писать логи после ротации newsyslog"
Отправлено Дядя_Федор , 20-Мрт-13 12:22 
Содержимое логротейта для Апача - в студию. Там суть в том, что должна буть строчки вида:
postrotate
     /etc/init.d/apache2 reload
endscript

"Apache перестает писать логи после ротации newsyslog"
Отправлено westvovik , 20-Мрт-13 12:30 
> Содержимое логротейта для Апача - в студию. Там суть в том, что
> должна буть строчки вида:
> postrotate
>      /etc/init.d/apache2 reload
> endscript

А где это должно быть написано в httpd.conf?


"Apache перестает писать логи после ротации newsyslog"
Отправлено Дядя_Федор , 20-Мрт-13 12:37 
> А где это должно быть написано в httpd.conf?

Хочется ответить в рифму. Но скажу проще - как все запущено. ПРИЧЕМ тут httpd.conf? КАКОЙ софт отвечает за ротацию логов? Думаем, думаем....



"Apache перестает писать логи после ротации newsyslog"
Отправлено westvovik , 20-Мрт-13 12:38 
>> Содержимое логротейта для Апача - в студию. Там суть в том, что
>> должна буть строчки вида:
>> postrotate
>>      /etc/init.d/apache2 reload
>> endscript
> А где это должно быть написано в httpd.conf?

Это вы про logrotate имеете ввиду, но я хотел обойтись стандартными средствами newsyslog
я же написал это в название темы


"Apache перестает писать логи после ротации newsyslog"
Отправлено кегна , 20-Мрт-13 13:17 
>>> Содержимое логротейта для Апача - в студию. Там суть в том, что
>>> должна буть строчки вида:
>>> postrotate
>>>      /etc/init.d/apache2 reload
>>> endscript
>> А где это должно быть написано в httpd.conf?
> Это вы про logrotate имеете ввиду, но я хотел обойтись стандартными средствами
> newsyslog
> я же написал это в название темы

/web/httpd-access.log        644  7    *    @T00     JB    /var/run/httpd.pid


"Apache перестает писать логи после ротации newsyslog"
Отправлено Mr. Mistoffelees , 20-Мрт-13 13:29 
Привет,

> Если перезагружаю apache То опять начинает писать, но после ротации перестает

Конечно:

1. Стартует Apache. Он открывает лог файл и все время пишет в него через iffjlejijlwzyrx файловый дескриптор.

2. Логротатор берет лог файл, меняет его имя, возможно компрессирует и создает новый пустой лог файл.

3. Apache по-прежнему держит дескриптор на старый лог файл. Поскольку самого файла нет, записи идут, образно говаря, в /dev/null.

Мораль: после ротации логов силами внешнего приложения всегда нужно сообщить об этом процессу, который пишет логи. Часто это делается через сигнал SIGHUP, ну или просто перезапуском.

WWell,



"Apache перестает писать логи после ротации newsyslog"
Отправлено westvovik , 20-Мрт-13 14:29 
>[оверквотинг удален]
> 1. Стартует Apache. Он открывает лог файл и все время пишет в
> него через iffjlejijlwzyrx файловый дескриптор.
> 2. Логротатор берет лог файл, меняет его имя, возможно компрессирует и создает
> новый пустой лог файл.
> 3. Apache по-прежнему держит дескриптор на старый лог файл. Поскольку самого файла
> нет, записи идут, образно говаря, в /dev/null.
> Мораль: после ротации логов силами внешнего приложения всегда нужно сообщить об этом
> процессу, который пишет логи. Часто это делается через сигнал SIGHUP, ну
> или просто перезапуском.
> WWell,

А разве эта строчка не уведомляет apache об этом
/var/log/apache/*.error    666  28    *    @T00  GJ        /var/run/httpd.pid 30


"Apache перестает писать логи после ротации newsyslog"
Отправлено LSTemp , 21-Мрт-13 05:50 
> А разве эта строчка не уведомляет apache об этом
> /var/log/apache/*.error    666  28    *  
>   @T00  GJ      
>  /var/run/httpd.pid 30

а посмотреть в доках, по какому сигналу apache делает reload config и потом в инклюдах, что за сигнал 30 слабо?


"Apache перестает писать логи после ротации newsyslog"
Отправлено westvovik , 21-Мрт-13 15:02 
>> А разве эта строчка не уведомляет apache об этом
>> /var/log/apache/*.error    666  28    *
>>   @T00  GJ
>>  /var/run/httpd.pid 30
> а посмотреть в доках, по какому сигналу apache делает reload config и
> потом в инклюдах, что за сигнал 30 слабо?

Да разобрался так работает

/web/httpd-access.log        644  7    *    @T00     JB    /var/run/httpd.pid

Только /var/run/httpd.pid нужно на каждую строчку добавить или после ротации логов указать в последней строке


"Apache перестает писать логи после ротации newsyslog"
Отправлено LSTemp , 23-Мрт-13 03:39 
>[оверквотинг удален]
>>>   @T00  GJ
>>>  /var/run/httpd.pid 30
>> а посмотреть в доках, по какому сигналу apache делает reload config и
>> потом в инклюдах, что за сигнал 30 слабо?
> Да разобрался так работает
> /web/httpd-access.log        644  7  
>   *    @T00    
> JB    /var/run/httpd.pid
> Только /var/run/httpd.pid нужно на каждую строчку добавить или после ротации логов указать
> в последней строке

в каждую строку добавлять не нужно - только в последнюю, которая к apache относится - релоад конфига после ротации КАЖДОГО лога (которых при желании/надобности просто масса) это не красиво.