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

Где logrotate сохраняет собственный журнал?

у меня есть logrotate работает на машине EC2 AWS, вращающей журналы Apache. После упаковки журналы Apache сохраняются в AWS S3 через s3fs. Проблема в том, что недавно я заметил, что у меня не ротация журналов. В S3 у меня есть старые журналы с 48-го по 60-й день, но 1-> 47-й не появляется.

Мой вопрос: где logrotate сохраняет собственный журнал? Возможно, у меня какая-то проблема с s3fs, но мне нужно знать, прежде чем что-либо делать. Я пытался где-то найти логи, но не нашел.

Любая идея?

logrotate по умолчанию ничего не регистрирует. обычно он должен быть где-нибудь в вашем cron, например:

$ grep -r -- 'logrotate.conf' /etc/cron*
/etc/cron.daily/logrotate:/usr/sbin/logrotate /etc/logrotate.conf

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

Скорее всего, где-то конфигурация неверна и вызвала прерывание запуска logrotate.

Единственное, что обычно записывает logrotate, находится в cat /var/lib/logrotate/status.

Это взято из https://serverfault.com/a/518134/266525

Еще одно хорошее место для поиска - /var/log/messages на CentOS для ошибок, подобных этой, из cron.daily /etc/cron.daily/logrotate

logrotate: ALERT exited abnormally with [1]

Вы также можете запустить режим отладки вручную и проверить наличие ошибок:

/usr/sbin/logrotate -d /etc/logrotate.conf

Источник: https://access.redhat.com/solutions/32831

Если ты бежишь logrotate из cron и без перенаправления вывода, вывод, если он есть, будет отправлен на электронную почту для того идентификатора, который запускает задание cron. Я перенаправляю свой вывод в файл журнала.

Например:

25 3 * * 7 /usr/sbin/logrotate -s /home/user/conf/mwarelogrotate.state 
/home/user/conf/mwarelogrotate.conf >> /home/user/logs/logrotate.log 2>&1

Проверьте /etc/logrotate.conf для глобальных настроек конфигурации, которые могут влиять на задачи, настроенные через /etc/logrotate.d/

Когда logrotate не выполняет ротацию журналов или переходит в состояние ошибки, рекомендуется запустить logorate вручную в режиме отладки, чтобы увидеть, какие ошибки он перечисляет, например:

/usr/sbin/logrotate -d /etc/logrotate.d/*

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