Я пробовал несколько вещей, но все еще не смог эффективно вращать журналы haproxy. Мне нужно повернуть журналы, когда размер файлов журнала превышает 500 МБ. Учитывая, что haproxy обслуживает большое количество пользователей. статических TCP-соединений я не могу перезапустить процесс haproxy, хотя перезагрузка возможна. Ежедневный размер файла журнала haproxy на моем компьютере обычно превышает 3 ГБ. Вот пример с одной из более новых машин, на которой размер файла журнала превышает установленный предел:
ubuntu@server:/mnt/log/haproxy$ ls -lsh
total 4.3G
85M -rw-r----- 1 syslog adm 85M Jun 2 07:13 haproxy.log
2.9G -rw-r----- 1 syslog adm 2.9G Jun 2 06:37 haproxy.log.1
460M -rw-r----- 1 syslog adm 460M Jun 1 06:32 haproxy.log.2.gz
469M -rw-r----- 1 syslog adm 469M May 31 06:42 haproxy.log.3.gz
384M -rw-r----- 1 syslog adm 384M May 30 06:49 haproxy.log.4.gz
ubuntu@server:/mnt/log/haproxy$ cat /etc/logrotate.d/haproxy
/mnt/log/haproxy/haproxy.log {
missingok
copytruncate
notifempty
rotate 50
size 500M
compress
delaycompress
}
Logrotate не отслеживает постоянно ваши файлы журналов. Обычно logrotate запускается как часть ежедневного задания cron, указанного в /etc/crontab
который запускает скрипты в /etc/cron.daily
. Таким образом, он работает так, как ожидалось, когда он запускается, если файлы размером> 500 МБ и они вращаются.
Вам нужно будет запускать logrotate чаще, если вы хотите получить файлы журнала ближе к 500M. Вы можете сделать это, скопировав /etc/cron.daily/logrotate
сценарий для /etc/cron.hourly/logrotate
.
Это также будет означать, что другие файлы журналов тоже могут быть обновлены раньше.