Опубликовано 2023-02-01 16:17
Утилита Logrotate предназначена для автоматизации обработки журналов. Она может выполнять с ними необходимые действия в зависимости от определенных условий и правил соответствия.
Например, можно сжимать журналы в архив или отправлять на другой сервер когда они достигают определенного размера, возраста, или других параметров.
Проверку условий можно настроить ежедневно, еженедельно или ежемесячно. Это позволяет создать схему ротации логов, удобную именно для вас и вашей конфигурации NGate.
Для модификации конфигурационного файла Logrotate в NGate необходимо выполнить команду:
nano /etc/logrotate.d/ng-nginx
Конфигурационный файл "по умолчанию" выглядит так:
# Какие файлы обрабатывает logrotate
/var/log/ngate/nginx/global-error.log
/var/log/ngate/nginx/http-error.log
/var/log/ngate/nginx/stream-error.log
/var/log/ngate/nginx/error.log
/var/log/ngate/nginx/http-access.log
/var/log/ngate/nginx/stream-access.log
/var/log/ngate/nginx/access.log
{
Daily – # ежедневно, возможные значения:
missingok # не выдавать ошибки, если лог файла не существует;
rotate 14 # указывает сколько старых логов нужно хранить, в параметрах передается количество хранимых файлов;
compress # указывает, что лог необходимо сжимать;
delaycompress #не сжимать последний и предпоследний журнал;
notifempty #не обрабатывать пустые файлы
create 640 nginx adm # создать новые файлы журналов с установленными разрешениями/владельцем/группой
sharedscripts
postrotate #скрипты для запуска после завершения ротации
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` #завершить процесс nginx
endscript
}
/var/log/ngate/nginx/http-access.gz
/var/log/ngate/nginx/stream-access.gz
/var/log/ngate/nginx/access.gz {
Daily
missingok
rotate 14
nodelaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
/var/log/ngate/nginx/global-debug.log
/var/log/ngate/nginx/stream-debug.log
/var/log/ngate/nginx/http-debug.log
/var/log/ngate/nginx/debug.log {
Hourly
missingok
rotate 0
nodelaycompress
maxsize 1G #Файлы журналов ротируются, когда они превышают размер в байтах, даже перед дополнительно указанным интервалом времени ( ежедневно , еженедельно , ежемесячно или ежегодно ).
Параметр связанного размера аналогичен, за исключением того, что он взаимоисключающий с параметрами временного интервала и приводит к ротации файлов журналов без учета времени последней ротации.
При использовании maxsize учитываются как размер, так и временная метка файла журнала. 1G = 1 gigabyte; 1M = 1 megabyte.
######### отступление ######
также существуют параметры size & minsize.
size -Файлы журналов ротируются только в том случае, если они становятся больше размера байтов. Если за size следует k , предполагается, что размер указан в килобайтах.
Таким образом , размер 100 , размер 100k , размер 100M и размер 100G действительны.
minsize - Файлы журналов ротируются, когда они превышают размер в байтах, но не ранее дополнительно указанного временного интервала ( ежедневно , еженедельно , ежемесячно или ежегодно ).
Параметр связанного размера аналогичен, за исключением того, что он взаимоисключающий с параметрами временного интервала и приводит к ротации файлов журналов без учета времени последней ротации.
При использовании minsize учитываются как размер, так и временная метка файла журнала.
#####################
nocompress #старые файлы не сжимаются
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
Редактируем конфигурационный файл так как необходимо. Сохраняем.
Проверяем корректность настроек командой:
logrotate -d /etc/logrotate.d/ng-nginx
Повторяем конфигурацию на всех узлах кластера NGate (включая ЦУС), в случае если у вас кластерная конфигурация.