Syslog 伺服器可以辨識客戶端作業系統嗎?

Syslog 伺服器可以辨識客戶端作業系統嗎?

我最近設定了一個中央系統日誌伺服器。日誌組織在檔案中,位於以用戶端電腦命名的資料夾中(使用 DNS),並使用 logcheck 進行掃描。

某些用戶端電腦具有多個作業系統(即 Linux 和 Windows),並且最終具有相同的 IP 位址和主機名稱。結果是 Windows 日誌(訊息)和 Linux 日誌最終出現在同一個檔案中,這讓我和 logcheck 非常不高興。我有興趣將不同作業系統的日誌分開。

我的解決方案是讓 syslog 偵聽多個端口,並在 Linux 和 Windows 用戶端電腦上配置 syslog/rsyslog 以使用不同的端口號。這樣我就可以根據日誌的來源輕鬆地將日誌重新導向到適當的檔案。

然而,我不太相信這個解決方案的優雅性——nmap 可以透過 TCP/IP 堆疊的指紋來偵測客戶端作業系統。

有沒有辦法設定 Syslog-ng 根據客戶端電腦的作業系統重定向傳入資料?

答案1

您對 Linux 和 Windows 機器使用不同連接埠的方法一點也不差。

備擇方案:

  • 使用程式作為 syslog-ng 中的目標(例如,檢查客戶端電腦目前作業系統並寫入 linux.log 或 windows.log 的自訂腳本) - 緩慢且不可靠。
  • 在syslog-ng 過濾器中使用match(...) 來區分linux 和windows syslog 字串(不確定它是否簡單可靠,除非您可以將一些標記子字串放入客戶端的syslog 中)並使用此類過濾器來選擇目標日誌檔。

兩者都很難推薦。

另一個技巧是使用 tcp 傳輸來自 Linux 用戶端的系統日誌,以及使用 udp 傳輸來自 Windows 的系統日誌。您可以使用協定過濾器設定檔目標。

相關內容