это мой первый вопрос по serverfault;)
Моя конфигурация: Debian 9.6, tomcat 8.5.14.0, fail2ban 0.9.6-2
Я создал фильтр tomcat8 для обнаружения множественных ошибок 404
[INCLUDES]
[Definition]
failregex = ^<HOST>.*\/.*\/.*404
ignoreregex =
[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?
Другой ?