Настройка ротации журнала аудита apache http сервера

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

Я нашел где-то в интернете, что вы можете настроить ротацию логов для audit_log на httpserver, поэтому в моем modsecurity.conf я изменил конфигурацию логгирования с:

SecAuditLog logs/audit_log

на

SecAuditLog "|/usr/IBM/HTTPServer/bin/rotatelogs -l /usr/IBM/HTTPServer/logs/audit_log.%Y-%m-%d-%H_%M_%S 86400

когда эта конфигурация применяется, файл не создается, и логгирование не происходит в файл, который я хочу, и он даже не записывает ничего.

Когда я закомментирую новую конфигурацию и верну обратно стандартную с logs/audit_log, он снова пишет в этот файл. Я пытаюсь найти способ ротации этого лога, так как он может вырасти до 4 ГБ за пару месяцев, что слишком много. Кто-нибудь нашел способ сделать это?

Версия сервера: IBM_HTTP_Server/8.5.5.22 (Unix)

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

Чтобы организовать ротацию файлов журнала audit_log для Apache HTTP Server с использованием модуля ModSecurity, необходимо учитывать несколько ключевых аспектов при настройке. Давайте разберем, как правильно реализовать эту настройку, учитывая вашу текущую конфигурацию и проблемы, с которыми вы столкнулись.

1. Изменение конфигурации журнала

Вы уже изменили конфигурацию modsecurity.conf, указав новый путь для логирования:

SecAuditLog "|/usr/IBM/HTTPServer/bin/rotatelogs -l /usr/IBM/HTTPServer/logs/audit_log.%Y-%m-%d-%H_%M_%S 86400"

2. Проверка наличия программы rotatelogs

Первое, что необходимо сделать, это убедиться, что программа rotatelogs действительно доступна по указанному пути:

ls -l /usr/IBM/HTTPServer/bin/rotatelogs

Если файла нет, это может быть причиной, по которой журнал не создается.

3. Параметры rotatelogs

Параметр 86400 в вашем вызове указывает на период ротации в секундах (24 часа). Убедитесь, что указанный путь к файлам и формат правильно настроены. Попробуйте использовать более простой формат для отладки на первом этапе:

SecAuditLog "|/usr/IBM/HTTPServer/bin/rotatelogs -l /usr/IBM/HTTPServer/logs/audit_log.%Y-%m-%d.log 86400"

Этот формат может помочь избежать возможных ошибок с символами и преобразованием времени.

4. Проверка прав доступа

Также важно убедиться, что сервер Apache имеет права на запись в папку /usr/IBM/HTTPServer/logs/:

ls -ld /usr/IBM/HTTPServer/logs

Проверьте владельца и права доступа. Если необходимо, измените их:

sudo chown -R <ваш_пользователь>:<ваша_группа> /usr/IBM/HTTPServer/logs
sudo chmod -R 755 /usr/IBM/HTTPServer/logs

5. Логи сервера

С учетом того что вы не видите записей в журнале, проверьте логи самого сервера (обычно находятся в папке logs вашего сервера) на наличие ошибок, связанных с конфигурацией:

cat /usr/IBM/HTTPServer/logs/error_log

6. Перезапуск сервера

После внесения всех изменений, не забудьте перезапустить сервер, чтобы они вступили в силу:

sudo systemctl restart ibm-http-server

7. Дополнительные проверки

  • Убедитесь, что ваш сервер может выполнять внешние команды через пайп. Это важно для корректной работы с rotatelogs.
  • Проверьте, нет ли синтаксических ошибок в конфигурационных файлах. Используйте команду для проверки:
/usr/IBM/HTTPServer/bin/apachectl -t

Заключение

После выполнения всех вышеперечисленных шагов, вы должны увидеть, что новая конфигурация работает корректно, а файлы журналов ротации создаются согласно установленному расписанию. В случае, если проблема не решится, возможно, стоит рассмотреть альтернативные методы ротации логов, такие как использование утилит, таких как logrotate, независимо от встроенных возможностей rotatelogs.

Эти шаги помогут вам оптимизировать хранение логов и избежать проблем с переполнением дискового пространства.

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

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