журнал fail2ban и tomcat8 отфильтрован localhost_access_log: нет такого файла или каталога

это мой первый вопрос по serverfault;)

Моя конф: Debian 9.6, tomcat 8.5.14.0, fail2ban 0.9.6 -2

Я создал фильтр tomcat8 для обнаружения множественных ошибок 404

/etc/fail2ban/filter.d/tomcat.conf:

[INCLUDES]
[Definition]
failregex =  ^<HOST>.*\/.*\/.*404
ignoreregex =

/etc/fail2ban/jail.d/defaults-debian.conf:

[tomcat]
enabled  = true
port     = http,https,8080,8443
ignoreip = 127.0.0.1/8 MyIP/8 MyIP/16
bantime = 1728000
findtime = 5
filter   = tomcat
logpath  = /var/log/tomcat8/localhost_access_log.*.txt
maxretry = 3

Фильтр работает, но проблема в том, что возможно, что в течение дня нет запроса на доступ к моему веб-приложению tomcat, поэтому возможно, что у меня нет доступа к журналу за день, созданному tomcat (я заметил файл создается при первом запросе) ... Итак, файл о работе fail2ban не существует ... например, я получаю эту ошибку:

2018-11-20 04:56:11,771 fail2ban.filterpoll     [18667]: ERROR   Unable to get stat on /var/log/tomcat8/localhost_access_log.2018-11-19.txt because of: [Errno 2] 
No such file or directory: '/var/log/tomcat8/localhost_access_log.2018-11-19.txt'

и fail2ban останавливают мою тюрьму tomcat ...

Каков лучший подход?

  • в cron, определить, существует ли файл доступа к журналу, если нет, то создать его на день (сенсорный подход с параметром dateTime)?

  • сценарий curl-запроса, чтобы заставить Tomcat создать файл доступа к журналу, и принудительно выполнить fail2ban для перезапустить?

  • другое?

1
задан 20 November 2018 в 10:54
1 ответ

Основываясь на настройке asciilog, просто создайте cron. Он столкнулся с той же проблемой:

  1. Настройка ротации журналов с помощью cron

    Я столкнулся с различными ошибками, связанными с ротацией файлов журналов Tomcat, поэтому я отключил ротацию журналов Tomcat и использовал cron...

Как вы можете см.:

00 00 * * * /bin/cp /var/log/tomcat8/localhost_access_log.txt /var/log/tomcat8/localhost_access_log.$(/bin/date +\%Y-\%m-\%d -d "yesterday").txt && /usr/bin/truncate -s 0 /var/log/tomcat8/localhost_access_log.txt

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

0
ответ дан 20 December 2020 в 03:11

Теги

Похожие вопросы