Назад | Перейти на главную страницу

Процесс auditd прекращает регистрацию после запуска сценария logrotate

Я пытаюсь использовать logrotate для хранения журналов аудита в течение заданного периода времени, а не использовать специальную ротацию auditd (из /etc/audit/auditd.conf). Я изменил max_log_file_action к IGNORE в этом файле.

Ниже представлена ​​моя конфигурация logrotate:

/var/log/audit/audit.log {
    daily
    dateext
    rotate 180
    postrotate
        /bin/kill -HUP `cat /var/run/auditd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Журналы успешно повернуты. Однако демон аудита больше не начинает вести журнал. /var/log/audit/audit.log остается пустым, пока я не перезапущу службу auditd. Я тоже пробовал /bin/kill -USR1 и service auditd reload, но и эти варианты не работают. /bin/kill -USR1 фактически поддерживает работу демона аудита, но создает пустой audit.log.1 файл.

Есть ли способ успешно отправить сигнал демону аудита, чтобы он продолжал работать после logrotate?

Спасибо.

Отвечая на этот вопрос из-за удара сообщества ...

Auditd поддерживает принудительное вращение через service auditd rotate команда. Вы можете объединить это с cron, чтобы запускать его по времени. (Ежедневно, ежечасно, каждый вторник в 10:00 и т. Д.)

Пример включен в RPM по адресу / usr / share / doc / audit-$ версия/auditd.cron.

Я считаю, что ваша команда kill на самом деле не может убить процесс. Попробуйте следующее:

/var/log/audit/audit.log {
    daily
    dateext
    rotate 180
    postrotate
        $(/bin/kill `cat /var/run/auditd.pid 2> /dev/null`)
        service auditd restart
    endscript
}