Настройка ротации логов: logrotate
Организуем мониторинг логов nginx с отправкой в телеграмм оповещений простым скриптом
На небольших проектах, зачастую, не требуется поднимать elasticsearch, настраивать kibana и logstash, достаточно и простого скрипта который будет проверять логи, искать в них ошибки по паттерну, записывать в лог и отправлять , например, в телеграмм. Именно такой скрипт мне и пришлось реализовать, когда встала задача отследить все 500, 502, 504 ошибки и проанализировать, почему они возникают (проблема низкой производительности сервера с Opencart 3). Результат получился примерно такой: Ссылка на сам скрипт...
logrotate не удаляет старые логи
Век живи, век учись. Неожиданно обнаружил, что logrotate не удаляет старые файлы. К примеру, есть конфигурация для ротации логов nginx: /var/log/nginx/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
} У нас будут ротироваться логи nginx, будет храниться 30 файлов, а последний будет удаляться...