Apache периодически перестает писать логи

1 234
M
На сайте с 16.09.2009
Offline
278
#21
Romka_Kharkov:
Давайте линк, обязательно ознакомлюсь.

http://httpd.apache.org/docs/2.2/en/stopping.html

Риторический вопрос: может советы давать не надо, предварительно не "ознакомившись" с, извините, элементарной информацией?

iHead:
Ну, вот. Теперь вы тоже двоешник.

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

Вот неумение читать - таки да, существенно.

iHead:
В нашем полку прибыло :)

И не мечтайте.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
iHead
На сайте с 25.04.2008
Offline
137
#22
myhand:
http://httpd.apache.org/docs/2.2/en/stopping.html

Риторический вопрос: может советы давать не надо, предварительно не "ознакомившись" с, извините, элементарной информацией?
На основании чего вдруг? Не думаю, что эмоциональная классификация Ваших знаний что-то существенное добавляет к перечисленным мною Вашим ошибкам.

Вот неумение читать - таки да, существенно.
И не мечтайте.

д'артаньян

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
sabotage
На сайте с 14.02.2007
Offline
192
#23
Romka_Kharkov:
Во время очистки логов, ротатор может пытаться изменить дескриптор файла, точнее он может очищать файл после ротации вместе с дескриптором, на моей памяти в syslog был специальный ключик, который передает родительскому пиду HUP в момент ротации, что бы последний перечитал конфиг и дескрипторы всех файлов переоткрыл ессесно.

Блин, супер. Только я ни слова ни понял :)

Andreyka:
А места хватает?

Много свободных Gb.

iHead:
если короче, то после ротации нужно рестартануть апача

:( Обязательно?

Boris A Dolgov:
это не logrotate от апача. проверьте его настройки в /etc/logrotate.d/httpd или где-то около того.

По пути в вышеприведенном логе я тоже как-то засомневался, но и в файле /etc/logrotate.d/httpd странный путь:

/var/log/httpd/*log {

missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}

Зато правильный путь нашелся в конфиге /etc/logrotate.d/nginx

/var/log/nginx/*log /var/www/httpd-logs/*log {

daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
myhand:
Пардон, что это значит? 0.28 - это что?

Лог пустой, последняя запись в 0.28, в это время происходит ротация.

Наверное, будет правильно переформулировать проблему так: Апач логи, скорее всего, пишет, они пропадают при ротации. Я не видел (но и не мониторю вопрос постоянно) пустых текущих(т.е. за сегодня) логов. Говорю по факту - Из 10-ти последних 3-и обрезанных.

Спасибо за внимание к теме, одмины. Давайте решим мой косяк раньше, чем вы затопчете друг друга. :)

iHead
На сайте с 25.04.2008
Offline
137
#24

выглядит хорошо.

осталось убедиться, что

апач действительно перезапускается (у вас это задано строкой /sbin/service httpd reload > /dev/null 2>/dev/null || true), проверить можно по логам, server-status, и как вариант перенаправив вывод не в /dev/null, а в реальный файл

также стоит убедиться что не происходит двойной ротации (вы показали конфиг logrotate). возможно, в системе запускаются какие-то другие крутилки.

ну и с путями, естественно, надо разобраться.

PS

во второй секции не указан перезапуск апача.

лучше /var/www/httpd-logs/*log переместить в первую секцию

M
На сайте с 16.09.2009
Offline
278
#25
sabotage:
Зато правильный путь нашелся в конфиге /etc/logrotate.d/nginx

Вот какие дела ;) Так что не обращайте внимание на то, что Вам пишут местные "гуру" про рестарты.

Вообще, без сильной нужды в конфиги logrotate лучше не лезть - все перезапускается именно так, как положено.

sabotage:
Лог пустой, последняя запись в 0.28, в это время происходит ротация.

А, 00:28, понятно.

Речь о логах здесь: /var/www/httpd-logs/*log - верно? Тут лежат логи nginx прежде всего.

Могу предположить вот что. Посмотрите куда пишутся логи апача (в секциях VirtualHost /etc/httpd/conf/httpd.conf) и nginx (в /etc/nginx/nginx.conf). Если это одни и те же файлы - дело швах и это "чудо" (ispmanager) до сих пор ничему не научилось :)

Тогда Ваша проблема наверняка в этом.

iHead:
во второй секции не указан перезапуск апача.
лучше /var/www/httpd-logs/*log переместить в первую секцию

Опять спешим с советами? :)

Если дело именно в том, о чем я написал выше - логичнее бы открыть баг в ispmanager, а не делать персональный костыль.

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#26
myhand:
http://httpd.apache.org/docs/2.2/en/stopping.html

Риторический вопрос: может советы давать не надо, предварительно не "ознакомившись" с, извините, элементарной информацией?

Я вот ссылку вашу почитал, что-то не пойму, вы это говорите потому что чилды поумирают? Это вся разница?

Может привычка и пагубная, но откуда-то она взялась, kill -1 отправляю для перечитываний. Хотя в случае апачей и прочего не вижу вообще смысла беспокоить дескриптор лог файла при ротации, можно файл обнулить и дело с концом... по этому у меня ни -1 ни USR1 не выполняется в принципе, а рекомендовал , то что я рекомендовал, именно по тем соображениям, что уже сталкивался с аналогичной историей, когда после ротации прекращались писать логи. И подчеркиваю еще раз БЫЛ и я думаю ЕСТЬ флаг в настройках syslogd который как раз таки отвечает за отправку этого самого сигнала, может там конечно и не -1 , а USR1 как вы говорите, но я ответил вполне по теме.

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
sabotage
На сайте с 14.02.2007
Offline
192
#27
myhand:
Если это одни и те же файлы - дело швах и это "чудо" (ispmanager) до сих пор ничему не научилось

Да, пути одинаковые:

httpd.conf

CustomLog /var/www/httpd-logs/***.access.log combined

ErrorLog /var/www/httpd-logs/***.error.log

nginx.conf

access_log /var/www/httpd-logs/***.access.log ;

Еще заметил, что в конфиге nginx для некоторых доменов добавляется еще одна строка access_log:

access_log /var/www/nginx-logs/*имя юзера* isp;
M
На сайте с 16.09.2009
Offline
278
#28
sabotage:
Да, пути одинаковые

Тогда почти наверняка - дело в этом.

Попробуйте добавить в logrotate.d/nginx строчку для reload апача:

/var/log/nginx/*log /var/www/httpd-logs/*log {

daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}

Хотя по-идее - это баг и не вам бы его исправлять...

sabotage:
Еще заметил, что в конфиге nginx для некоторых доменов добавляется еще одна строка access_log

Это не существенно. Просто еще один лог nginx со своим форматом.

Romka_Kharkov:
Я вот ссылку вашу почитал, что-то не пойму, вы это говорите потому что чилды поумирают? Это вся разница?

Наиболее существенная. Обрабатывался запрос - а Вы раз и оборвали ему песню...

Romka_Kharkov:
Может привычка и пагубная, но откуда-то она взялась, kill -1 отправляю для перечитываний.

Ну, где взялась - там и положите. Никто кроме Вас ведь не ответственен за тараканов в Вашей голове ;)

sabotage
На сайте с 14.02.2007
Offline
192
#29

Добавил в logrotate.d/nginx релоад апача, буду наблюдать за логами. Ротатор надо перезапустить или он сам подхватит новый конфиг? Если перезапустить, то команду, пожалуйста :)

M
На сайте с 16.09.2009
Offline
278
#30
sabotage:
Ротатор надо перезапустить или он сам подхватит новый конфиг?

Нет, перезапускать не надо. В ином случае - я написал бы Вам.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий