Logrotate для журналов учёта freeradius

Вопрос или проблема

У меня есть такая конфигурация для подробных логов:

/opt/freeradius/logs/*/detail {

ежедневно
перекращивание 4
сжатие
отложенное сжатие
не раненые
не пустые
создавать 0640 root root
общие скрипты
максимальный размер 500M
после вращения
    /bin/systemctl reload freeradius > /dev/null 2>/dev/null || true
конец скрипта
}

У меня есть старые логи с новыми логами:

[root@freeradius01 192.168.17.10]# pwd
/opt/freeradius/logs/192.168.17.10
[root@freeradius01 192.168.17.10]# ll
всего 56919724
-rwxrwxrwx 1 root root 21048752215 14 авг 23:59 detail-20240814
-rwxrwxrwx 1 root root 21617187765 15 авг 23:59 detail-20240815
-rwxrwxrwx 1 root root  5988044800 16 авг 23:59 detail-20240816
-rwxrwxrwx 1 root root     5947392 25 сен 23:59 detail-20240925
-rwxrwxrwx 1 root root  7478423552 21 окт 23:59 detail-20241021
-rwxrwxrwx 1 root root  1907452140 22 окт 11:19 detail-20241022
[root@freeradius01 192.168.17.10]#

При ручном и принудительном запуске logrotate с выводом на экран у меня такой результат:

[root@freeradius01 192.168.17.10]#  /usr/sbin/logrotate -v -f /etc/logrotate.d/radiusd
чтение конфигурационного файла /etc/logrotate.d/radiusd
Чтение состояния из файла: /var/lib/logrotate/logrotate.status
Распределение хеш-таблицы для файла состояния, размер 64 записи
Создание нового состояния
Создание нового состояния
Создание нового состояния
..
..
Создание нового состояния

Обработка логов


обороты паттерна: /opt/freeradius/logs/*/detail  принудительно с командной строки (4 вращения)
пустые лог-файлы не вращаются, лог-файлы >= 524288000 вращаются раньше, старые логи удаляются
рассмотрение лога /opt/freeradius/logs/*/detail
не запускается скрипт после вращения, так как лог-файлы не были вращены


[root@freeradius01 192.168.17.10]# ll
всего 56919724
-rwxrwxrwx 1 root root 21048752215 14 авг 23:59 detail-20240814
-rwxrwxrwx 1 root root 21617187765 15 авг 23:59 detail-20240815
-rwxrwxrwx 1 root root  5988044800 16 авг 23:59 detail-20240816
-rwxrwxrwx 1 root root     5947392 25 сен 23:59 detail-20240925
-rwxrwxrwx 1 root root  7478423552 21 окт 23:59 detail-20241021
-rwxrwxrwx 1 root root  1968389637 22 окт 11:22 detail-20241022
[root@freeradius01 192.168.17.10]# grep "detail"   /var/lib/logrotate/logrotate.status
"/var/log/radius/radacct/*/detail" 2024-3-5-3:0:0
"/opt/freeradius/logs/*/detail" 2024-3-5-3:0:0
[root@freeradius01 192.168.17.10]# date
Вт 22 окт 11:22:45 WAT 2024
[root@freeradius01 192.168.17.10]#

Так что вращение логов не запускается, хотя я запускал его вручную / также старые логи не сжимаются!!?

Ответ или решение

Настройка logrotate для логов учета FreeRADIUS

При работе с сервером FreeRADIUS важно обеспечить надлежащее управление логами учета. Это особенно актуально для папки /opt/freeradius/logs/*/detail, где хранятся большие объемы данных. Ваша текущая конфигурация logrotate выглядит следующим образом:

/opt/freeradius/logs/*/detail {
    daily
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 0640 root root
    sharedscripts
    maxsize 500M
    postrotate
        /bin/systemctl reload freeradius > /dev/null 2>/dev/null || true
    endscript
}

Анализ проблемы

При принудительном запуске logrotate вы получили следующий вывод:

empty log files are not rotated, log files >= 524288000 are rotated earlier, old logs are removed
considering log /opt/freeradius/logs/*/detail
not running postrotate script, since no logs were rotated

Это сообщение указывает на то, что logrotate не обнаруживает файлов, которые нужно ротировать, несмотря на то, что вы ожидали это. Основные причины этой проблемы могут заключаться в следующем:

  1. Файлы слишком большие для ротации: Условие maxsize 500M означает, что файлы не будут ротироваться, если их размер меньше указанного. Возможно, некоторые из ваших старых логов не превышают этот предел. Например, файл detail-20240925 имеет размер меньше 500 MB.

  2. Неверные права доступа или формат файлов: Проверьте, что права доступа к логам и их владельцы соответствуют настройкам. Вы можете изменить права на более строгое управление (например, 0640 вместо 0777).

  3. Проблемы в паттерне: Убедитесь, что путь файлов соответствует указанному в конфигурации. Иногда использование подстановочных знаков может привести к нежелательным результатам.

Рекомендации по исправлению

  1. Измените условие maxsize: Если вы хотите обеспечить ротацию всех логов, попробуйте убрать или увеличить значение maxsize.
# maxsize 500M
  1. Проверьте права доступа: Приведите к логам более строгие права доступа, чтобы избежать возможных проблем с доступом:
chmod 0640 /opt/freeradius/logs/*/detail*
  1. Скорректируйте планировку ротации: Убедитесь, что вы указываете правильные состояния для файлов. Добавьте в конфигурацию опцию для получения истории о ротации:
logrotate = "/var/lib/logrotate/logrotate.status"
  1. Тестирование новой конфигурации: После изменения конфигурации выполните ручное тестирование:
/usr/sbin/logrotate -v -f /etc/logrotate.d/radiusd

Заключение

Проблемы, с которыми вы столкнулись, могут быть разрешены через корректировку условий ротации и управления правами доступа. Регулярное управление логами FreeRADIUS не только экономит место на диске, но и упрощает мониторинг и аудит. Принятые меры для корректировки logrotate помогут установить четкий процесс управления логами, что критически важно для обеспечения производительности и безопасности вашей системы.

Оцените материал
Добавить комментарий

Капча загружается...