Назад | Перейти на главную страницу

Почему apache2 не ведет журнал должным образом, учитывая следующий файл logrotate.conf

access_log, кажется, имеет постоянный размер 0. Но error_log записывается нормально.

Удивительно, но access_log. [1-5] .gz созданы, но только access_log.3.gz и access_log.4.gz содержат непустые журналы.

Хорошо, вот файл logrotate.conf, который также находится в каталоге файлов журналов:

# create new (empty) log files after rotating old ones
create

# compress old logs with gzip
compress

/home/default/example.com/user/logfiles/access_log {
        missingok
        rotate 5
        daily
        postrotate
                /usr/bin/killall -HUP syslogd
        endscript
}

/home/default/example.com/user/logfiles/error_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

/home/default/example.com/user/logfiles/agent_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

/home/default/example.com/user/logfiles/referer_log {
        missingok
        rotate 5
        size=5M
        postrotate
                /bin/kill -USR1 `cat /var/run/httpd.pid`
        endscript
}

Хотя нет файлов agent_log, referer_log. Итак, что-то явно не так с этим файлом logrotate.conf? Если нет, то как мне узнать, используется ли этот файл или в чем проблема? При необходимости я могу опубликовать дополнительную информацию.

Кстати, это Ubuntu 8.10.

Обновление: htttd.pid даже не существует.

ubuntu:~# cat /var/run/httpd.pid  
cat: /var/run/httpd.pid: No such file or directory

Ваш postrotate настроен на перезапуск syslogd. Я считаю, что вам нужно сделать это с httpd.

Вы проверили настройки Apache? Logrotate просто вращает файлы журналов, но не записывает в них. Поэтому, если в ваших файлах журнала отсутствует контент, вам следует начать с просмотра настроек Apache.