LINUX.ORG.RU

Кто ротирует логи Nginx?


0

2

Имеется Debian 6, установленный на выделенный сервер хостера. Устанавливал саппорт и передал мне, ничего он там, вроде как, не настраивал, кроме сети.

Сервер выполняет функцию веб-сервера, крутится Nginx. Так вот, непонять кто ротирует логи этого самого Nginx'а. И, похоже, что это не logrotate. Его конфиг для Nginx выглядит так: http://pastebin.com/r8AWD5w0 у меня же логи ротируются в /var/www/site/log, путь настроен следующим образом:

access_log      /var/www/site/log/access.log def_log;
error_log       /var/www/site/log/error.log;

Причем этот «некто» криво их ротирует, т.к. после ротации Nginx продолжает писать в access.log.1:

root@ns363065:/var/www/site/log# ls -l
total 3340
-rw-r--r-- 1 root root       0 2014-08-20 00:00 access.log
-rw-r--r-- 1 root root 3414770 2014-08-20 01:33 access.log.1
-rw-r--r-- 1 root root       0 2014-08-19 17:18 error.log

При чем в /var/www/ несколько папок такой же структуры под другие сайты, ротируется только в этом. Пробовал менять в конфиге имена логов, пробовал в cron.daily комментировать код для logrotate, без толку. Сам Nginx, вроде, ротировать не умеет. У кого есть какие идеи? Уже бесит.

Ну попробуйте грепнуть по /etc строку ″/var/www/″, может найдете где упоминание, кроме конфига nginx'а.

mky ★★★★★ ()

может по крону какая нибудь б***я панель это делает.

есть панель?

MikeDM ★★★★★ ()

«grep -R /var/www/ /etc/» выдает только, собственно, файлы настроек Nginx. Панелей я никаких не ставил, хостер, вроде тоже. По крайней мере тут ничего интересного:

# ls -l /etc/cron.*/
/etc/cron.d/:
total 8
-rw-r--r-- 1 root root 589 2012-08-26 00:00 mdadm
-rw-r--r-- 1 root root 565 2014-02-17 13:32 php5

/etc/cron.daily/:
total 48
-rwxr-xr-x 1 root root 14985 2012-08-06 18:17 apt
-rwxr-xr-x 1 root root   314 2012-08-28 11:32 aptitude
-rwxr-xr-x 1 root root   355 2012-06-11 14:32 bsdmainutils
-rwxr-xr-x 1 root root   256 2012-07-21 04:47 dpkg
-rwxr-xr-x 1 root root    89 2014-08-16 20:39 logrotate
-rwxr-xr-x 1 root root  1365 2012-06-19 02:51 man-db
-rwxr-xr-x 1 root root   539 2012-08-26 00:00 mdadm
-rwxr-xr-x 1 root root   606 2010-09-25 12:12 mlocate
-rwxr-xr-x 1 root root   249 2012-05-26 01:24 passwd

/etc/cron.hourly/:
total 0

/etc/cron.monthly/:
total 0

/etc/cron.weekly/:
total 4
-rwxr-xr-x 1 root root 907 2012-06-19 02:51 man-db

В «crontab -e» ничего.

Вывод «logrotate -d /etc/logrotate.conf»: http://pastebin.com/1e4REHkH про www ничего.

Хотел уже как-то отмониторить, кто трогает файл, но inotifywait не указывает PID процесса. Пробовал на сутки «lsof -r1 access.log > monitor» оставить, когда Nginx уже пишет в access.log.1. Появилась через какое-то время активность, но от самого Nginx. Мистика какая-то, уже боюсь раскрыть секрет, вдруг окажется, что я дурак.

Joker-jar ()

Поискал также в /etc по слову nginx (вдруг какая-то пакость читает конфиги nginx и на основе их ротирует), тоже ничего интересного. Также обращал внимание на строку:

[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

в /etc/logrotate.d/nginx (полный его код в стартпосте). Отсылается сообщение Nginx'у после ротации, чтобы он обновил дескрипторы файлов-конфигов. Думал, может из-за этого сообщения происходит появление access.log.1, попробовал запустить из шелла эту строку, нет, все нормально с этим.

Joker-jar ()
Ответ на: комментарий от Joker-jar

Хотел уже как-то отмониторить, кто трогает файл, но inotifywait не указывает PID процесса.

Ну ещё есть loggedfs, правда не знаю, получится ли установить её на ваш сервер.

mky ★★★★★ ()

а что означает def_log в конце? может убрать или поставить combined.

access_log /var/www/site/log/access.log def_log;

nerve ★★ ()
Ответ на: комментарий от nerve

def_log это формат лога, задан в основном конфиге nginx.conf:

log_format def_log '[ client : $remote_addr | host : $host | status : $status | bytes : $bytes_sent | time : $request_time ]\ntime : $time_local\nrequest : $request\nreferer : $http_referer\nuagent : $http_user_agent\n';

По поводу loggedfs думал, но матчасти не знаю, есть ли там возможность как-то фильтровать, ведь к файлу много раз будет Nginx обращаться.

Joker-jar ()

Аналогичная проблема появилась с Ubuntu после обновления. Если появилось решение - отпишитесь.

kladus ()
Ответ на: комментарий от Joker-jar

Хотел уже как-то отмониторить, кто трогает файл

auditd

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.