у меня есть 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
Если ты бежишь 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 есть проблемы.