Linux

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

  • May 5, 2021

我們的 Linux 系統預設執行logwatch(8)實用程序。在 RedHat/CentOS/SL 系統上,Logwatch 由/etc/cron.daily/cronjob 呼叫,然後每天發送一封包含結果的電子郵件。這些電子郵件的主題如下:

Subject: Logwatch for $HOSTNAME

問題在於,預設情況下,這些每日電子郵件過於嘈雜,並且包含許多已經被其他服務(Nagios、Cacti、中央系統日誌等)監控的多餘資訊(HTTP 錯誤、每日磁碟使用情況等)。對於 100 個系統,電子郵件負載難以承受。人們會忽略電子郵件,這意味著我們可能會錯過 logwatch 發現的問題。

如何減少 logwatch 產生的噪音,但仍使用 logwatch 通知我們重大問題?

我將在下面發布我自己的答案,但我想看看其他人做了什麼。

注意:我有一個關於 FreeBSD 的類似問題,在FreeBSD:periodic(8) 太吵了。如何控制噪音水平?

總體而言,Logwatch 的可用文件缺乏足夠的解釋,而且通常過於模糊。我拼湊了一些有用的範例,並將 Logwatch 噪音降低了 95% 以上。

這是我發現的。

請記住,您可以在 中找到一些 Logwatch 文件/usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch,其中包含一些有用的範例。

  1. 在 RHEL/CentOS/SL 上,預設的 logwatch 配置在 /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"
  1. 有時我不想完全禁用特定服務的 logwatch,我只想微調結果以減少噪音。/usr/share/logwatch/default.conf/services/*.conf包含服務的預設配置。這些參數可以通過將本地配置放在/etc/logwatch/conf/services/$SERVICE.conf. 不幸的是,logwatch 在這方面的能力是有限的,而且許多 logwatch 執行檔都充滿了未記錄的 Perl。您的選擇是用其他東西替換執行檔,或者嘗試使用/etc/logwatch/conf/services.

例如,我有一個安全掃描器,它在網路上執行掃描。隨著測試的執行,安全掃描程序會在應用程序日誌中生成許多錯誤消息。我希望 logwatch 忽略來自我的安全掃描程序的錯誤,但仍會通知我來自其他主機的攻擊。這在Logwatch 中有更詳細的介紹:Ignore certain IPs for SSH & PAM checks? . 為此,我將以下內容放在/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. HOWTO-Customize-LogWatch 說:

ignore.conf:此文件指定正則表達式,當與 logwatch 的輸出匹配時,將抑制匹配行,而不管正在執行哪個服務。

但是,我對此並沒有太多運氣。我的要求需要一個條件語句,類似於“如果由於我的安全掃描程序而出現安全警告,則不要列印輸出。但是,如果我的安全掃描器一些壞人發出了安全警告,那麼列印有用的部分——標頭“登錄失敗:”,壞主機的 IP,而不是掃描器的 IP。 4. 從源頭處扼殺牠(正如@user48838 所建議的那樣)。這些消息是由某個應用程序生成的,然後 Logwatch 很樂意將結果發送給您。在這些情況下,您可以修改應用程序以減少日誌記錄。

這並不總是可取的,因為有時您希望將完整日誌發送到某個地方(到中央 syslog 伺服器、中央 IDS 伺服器、Splunk、Nagios 等),但您不希望 logwatch 向您發送有關此問題的電子郵件每台伺服器,每一天。

引用自:https://serverfault.com/questions/293226