Linux:logwatch(8)太吵了。如何控制噪音水平?

Modified on: Tue, 12 Nov 2019 01:00:02 +0800

我们的Linux系统默认运行logwatch(8)实用程序。在RedHat / CentOS / SL系统上,Logwatch由/etc/cron.daily/ cronjob调用,然后发送包含结果的每日电子邮件。这些电子邮件的主题如下:

Subject: Logwatch for $HOSTNAME

问题在于,默认情况下,这些每日电子邮件过于嘈杂,并且包含大量多余的信息(HTTP错误,每日磁盘使用情况等),这些信息已被其他服务(Nagios,Cacti,中央系统日志等)监控。对于100个系统,电子邮件负载是无法忍受的。人们忽略了电子邮件,这意味着我们可能会错过由logwatch拾取的问题。

如何减少logwatch产生的噪音量,但仍然使用logwatch通知我们重大问题?

我将在下面发表我自己的答案,但我想看看别人做了什么。

注意:我对FreeBSD有一个类似的问题,FreeBSD:periodic(8)太吵了。如何控制噪音水平?

最佳答案

总的来说,Logwatch的可用文档缺乏足够的解释,而且往往过于含糊。我拼凑了一些有用的例子,并将Logwatch的噪音降低了95%以上。

这是我找到的。

请记住,您可以在/usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch中找到一些Logwatch文档,它包含一些有用的示例。

  1. 在RHEL / CentOS / SL上,默认的日志配置位于/usr/share/logwatch/default.conf/logwatch.conf



    可以通过将本地配置放在/etc/logwatch/conf/logwatch.conf下来覆盖这些设置。将以下内容放在该文件中,告诉logwatch完全忽略'httpd'等服务和每日磁盘使用情况检查:

    # Don't spam about the following Services
    Service = "-http"
    Service = "-zz-disk_space"
    
  2. 有时候我不想完全禁用特定服务的logwatch,我只想微调结果以减少噪音。 /usr/share/logwatch/default.conf/services/*.conf包含服务的默认配置。这些参数可以通过将本地配置下/etc/logwatch/conf/services/$SERVICE.conf覆盖。不幸的是,logwatch在这里的能力是有限的,许多logwatch可执行文件都充满了无证的Perl。您的选择是用其他东西替换可执行文件,或尝试使用/etc/logwatch/conf/services覆盖某些设置。

    例如,我有一个安全扫描程序,可以在网络上运行扫描。测试运行时,安全扫描程序会在应用程序日志中生成许多错误消息。我希望logwatch忽略我的安全扫描程序的错误,但仍然通知我其他主机的攻击。 Logwatch:忽略某些IP更详细地介绍了这一点。用于SSH& PAM检查?。为此,我将以下内容放在/etc/logwatch/conf/services/sshd.conf下:

    # Ignore these hosts
    *Remove = 192.168.100.1
    *Remove = X.Y.123.123
    # Ignore these usernames
    *Remove = testuser
    # Ignore other noise. Note that we need to escape the ()
    *Remove = "pam_succeed_if\(sshd:auth\): error retrieving information about user netscan.*
    

  3. logwatch还允许您通过在/etc/logwatch/conf/ignore.conf中放置正则表达式来删除logwatch电子邮件中的输出。 HOWTO-Customize-LogWatch说:


      

    ignore.conf:此文件指定正则表达式,
                      当与logwatch的输出匹配时,会
                      抑制匹配线,无论哪个
                      服务正在执行中。


    但是,我没有太多运气。我的要求需要条件语句,类似于“如果由于我的安全扫描程序而存在安全警告,则不要打印输出。但是如果来自我的安全扫描程序的安全警告来自某些坏人,则打印有用的部分 - 标题为“登录失败:”,坏主机的IP,但不是扫描仪的IP。'

  4. 在源头剪掉它(如@ user48838所示)。这些消息是由某些应用程序生成的,然后Logwatch很高兴地向您展示结果。在这些情况下,您可以修改应用程序以减少日志记录。

    这并不总是令人满意的,因为有时您希望将完整日志发送到某个地方(中央系统日志服务器,中央IDS服务器,Splunk,Nagios等),但您不希望logwatch通过电子邮件发送给您关于每天服务器的这一点。

  5. 醇>

相关问答

添加新评论