AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1066047
Accepted
Maestro223
Maestro223
Asked: 2021-06-09 01:35:01 +0800 CST2021-06-09 01:35:01 +0800 CST 2021-06-09 01:35:01 +0800 CST

Logrotate 服务失败

  • 772

我的 logrotate 服务失败。它抱怨 modsecurity 的重复条目。

 ● logrotate.service - Rotate log files
       Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset: enabled)
       Active: failed (Result: exit-code) since Tue 2021-06-08 14:22:07 CST; 2h 54min ago
         Docs: man:logrotate(8)
               man:logrotate.conf(5)
     Main PID: 15370 (code=exited, status=1/FAILURE)
    
    Jun 08 14:22:07 server1.example.com systemd[1]: Starting Rotate log files...
    Jun 08 14:22:07 server1.example.com logrotate[15370]: error: modsecurity:1 duplicate log entry for /var/log/apache2/modsec_audit.log
    Jun 08 14:22:07 server1.example.com logrotate[15370]: error: found error in file modsecurity, skipping
    Jun 08 14:22:07 server1.example.com systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
    Jun 08 14:22:07 server1.example.com systemd[1]: logrotate.service: Failed with result 'exit-code'.
    Jun 08 14:22:07 server1.example.com systemd[1]: Failed to start Rotate log files.

但是,/etc/logrotate.d/modsecurity 不包含任何重复项:

/var/log/apache2/modsec_audit.log
{
        rotate 14
        daily
        missingok
        compress
        delaycompress
        notifempty
}

任何想法?

更新:

#grep -r 'modsec_audit.log' /etc/

/etc/logrotate.d/modsecurity:/var/log/apache2/modsec_audit.log
/etc/modsecurity/modsecurity.conf:SecAuditLog /var/log/apache2/modsec_audit.log
/etc/modsecurity/modsecurity.conf-recommended:SecAuditLog /var/log/apache2/modsec_audit.log

所以我经历了:

/etc/modsecurity/modsecurity.conf:SecAuditLog /var/log/apache2/modsec_audit.log
/etc/modsecurity/modsecurity.conf-recommended:SecAuditLog /var/log/apache2/modsec_audit.log

并散列出 modsec_audit.log 值,如下所示

#SecAuditLogType Serial
#SecAuditLog /var/log/apache2/modsec_audit.log

然后跑:
systemctl restart logrotate

同样的错误

更新 2:

遵循@Nikita Kipriyanov 的建议,我完成并完全散列了 /etc/logrotate.d/modsecurity ,现在 logrotate 成功执行(所有 mdosec 日志都散列了):

#systemctl status logrotate
● logrotate.service - Rotate log files
       Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset: enabled)
       Active: inactive (dead) since Thu 2021-06-10 09:36:53 CST; 52s ago
         Docs: man:logrotate(8)
               man:logrotate.conf(5)
      Process: 20308 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=0/SUCCESS)
     Main PID: 20308 (code=exited, status=0/SUCCESS)

        Jun 10 09:36:52 tester1.example.com systemd[1]: Starting Rotate log files...
        Jun 10 09:36:53 tester1.example.com systemd[1]: logrotate.service: Succeeded.
        Jun 10 09:36:53 tester1.example.com systemd[1]: Started Rotate log files.

所以我启用了位于的原始 modsec_audit.log/etc/modsecurity/modsecuirty.conf以查看会发生什么。再次,事情似乎正常工作

# systemctl status logrotate
● logrotate.service - Rotate log files
       Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset: enabled)
       Active: inactive (dead) since Thu 2021-06-10 09:54:05 CST; 4s ago
         Docs: man:logrotate(8)
               man:logrotate.conf(5)
      Process: 21452 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=0/SUCCESS)
     Main PID: 21452 (code=exited, status=0/SUCCESS)

    Jun 10 09:54:05 tester1.example.com systemd[1]: Starting Rotate log files...
    Jun 10 09:54:05 tester1.example.com systemd[1]: logrotate.service: Succeeded.
    Jun 10 09:54:05 tester1.example.com systemd[1]: Started Rotate log files.

同样的故事/etc/modsecurity/modsecurity-recommended,这意味着 logrotate 服务仅在我使用时失败,
/etc/logrotate.d/modsecuirty并且碰撞必须是@Nikita Kipriyanov 建议的通配符

linux logrotate
  • 2 2 个回答
  • 2729 Views

2 个回答

  • Voted
  1. Best Answer
    Nikita Kipriyanov
    2021-06-10T23:43:37+08:002021-06-10T23:43:37+08:00

    因此,该文件/var/log/apache2/modsec_audit.log被设置为由/etc/logrotate.d/modsecurity和其他一些文件旋转,这些文件用通配符覆盖它。例如,可以定义为/var/log/apache2/*log,当然也包括这个文件。我不知道您还有哪些其他 logrotate 配置文件,但很有可能它/etc/logrotate.d/apache2或类似的东西有通配符。

    因此,/var/log/apache2/modsec_audit.log即使您删除/etc/logrotate.d/modsecurity. 或者更好的是,将其替换为空文件(或仅包含指向此 SF 问题和答案的链接的评论的文件,以便轻松记住发生了什么)。这是解决问题的最简单的近时解决方案。否则,您可能希望/var/log/apache2/modsec_audit.log避免被通配符捕获;没有办法将排除设置为 中的通配符logrotate,因此您最终会重写通配符,因此它将包含除此之外的所有文件。我认为这很麻烦。

    还要记住,/etc/logrotate.d/modsecurity其他 logrotate 配置可能是由某些操作系统包安装的。当您更新这些软件包时,将重新安装这些文件。虽然删除的文件将重新放置到位,但编辑后的文件不会。配置文件保护将启动,至少您会收到有关更新配置的通知和手动解决的提示。所以“创建一个空文件”被算作一次编辑,会为你节省一些头发。

    而且,要彻底永久地解决这个问题,您应该发现这些冲突文件属于哪些包,并将错误提交到您的发行版的错误跟踪器中。您可以说服他们修复软件包,以便更新不会包含这些文件或这些文件不会发生冲突,因此更新后不会有任何中断。

    • 2
  2. p10l
    2021-06-09T05:01:07+08:002021-06-09T05:01:07+08:00

    很可能您在另一个文件中定义了重复条目。
    检查/etc/logrotate.conf文件是否有重复项,如果此文件中没有重复项

    grep -rnw '/etc/logrotate.d/' -e 'modsec_audit.log'
    

    在其他文件中查找重复项。


    您也可以尝试在/etc/logrotate.d/rsyslog文件中查找:

    grep 'modsec_audit.log' /etc/logrotate.d/rsyslog
    

    您可能会在那里找到重复项。

    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve