宝塔用户_vzcwhi 发表于 2024-9-7 23:14:13

【已记录】:fail2ban提示:日志文件不存在,无法创建解决

环境:fail2ban1.9版本,面板9.0.0。
防cc和防站点扫描时报错:[]日志文件不存在,无法创建。

出问题的站点时时nginx目录网站
查fail2ban_main.py (/www/server/panel/plugin/fail2ban/fail2ban_main.py)
中_get_nginx_log_path方法:
    def _get_nginx_log_path(self, website):
      try:
            nginx_conffile = '/www/server/panel/vhost/nginx/{}.conf'.format(website)

            nginx_conf = public.readFile(nginx_conffile)
            reg = 'access_log\s+(.*\.log)'
            log_path = re.search(reg, nginx_conf)

            nginx_log_path = ""
            if log_path:
                nginx_log_path = log_path.groups(1)
            return nginx_log_path
      except:
            return ""
其中/www/server/panel/vhost/nginx/{}.conf'.format(website) 配置文件找不到,发现:

网站(html)项目的配置,文件名前缀会带有"html_"前缀,所以def _get_nginx_log_path方法一直return“"

解决办法:nginx_conffile = '/www/server/panel/vhost/nginx/{}.conf'.format(website)改成nginx_conffile = '/www/server/panel/vhost/nginx/{}.conf'.format("html_" + website)即可


宝塔用户_vzcwhi 发表于 2024-9-8 10:06:48

改完,不带html_的不能用了。

再次修改:    def _get_nginx_log_path(self, website):
      try:
            # 优先检查不带 "html_" 前缀的配置文件
            nginx_conffile = '/www/server/panel/vhost/nginx/{}.conf'.format(website)
            nginx_conf = public.readFile(nginx_conffile)
            
            if not nginx_conf:
                # 如果没有找到,再检查带 "html_" 前缀的配置文件
                nginx_conffile = '/www/server/panel/vhost/nginx/{}.conf'.format("html_" + website)
                nginx_conf = public.readFile(nginx_conffile)
            
            if not nginx_conf:
                raise FileNotFoundError("未找到Nginx配置文件")
            
            # 在配置文件中查找 access_log 的路径
            reg = r'access_log\s+(.*\.log)'
            log_path = re.search(reg, nginx_conf)
            
            if log_path:
                return log_path.group(1)
            else:
                return ""
      except Exception as e:
            return ""

运维技术阿闯 发表于 2024-9-9 11:38:40

您好,这边测试了一下,您这边是不是没有网站呢,在没有网站的时候是会提示这个的,这边反馈一下
页: [1]
查看完整版本: 【已记录】:fail2ban提示:日志文件不存在,无法创建解决