如何在 CentOS8/RHEL8 中配置 Rsyslog 伺服器

James Kiarie發表於2019-10-27

Rsyslog 是一個自由開源的日誌記錄程式,在 CentOS 8 和 RHEL 8 系統上預設可用。它提供了一種從客戶端節點到單箇中央伺服器的“集中日誌”的簡單有效的方法。日誌集中化有兩個好處。首先,它簡化了日誌檢視,因為系統管理員可以在一箇中心節點檢視遠端伺服器的所有日誌,而無需登入每個客戶端系統來檢查日誌。如果需要監視多臺伺服器,這將非常有用,其次,如果遠端客戶端崩潰,你不用擔心丟失日誌,因為所有日誌都將儲存在中心的 Rsyslog 伺服器上。rsyslog 取代了僅支援 UDP 協議的 syslog。它以優異的功能擴充套件了基本的 syslog 協議,例如在傳輸日誌時支援 UDP 和 TCP 協議,增強的過濾功能以及靈活的配置選項。讓我們來探討如何在 CentOS 8 / RHEL 8 系統中配置 Rsyslog 伺服器。

configure-rsyslog-centos8-rhel8

預先條件

我們將搭建以下實驗環境來測試集中式日誌記錄過程:

  • Rsyslog 伺服器       CentOS 8 Minimal    IP 地址: 10.128.0.47
  • 客戶端系統          RHEL 8 Minimal      IP 地址: 10.128.0.48

通過上面的設定,我們將演示如何設定 Rsyslog 伺服器,然後配置客戶端系統以將日誌傳送到 Rsyslog 伺服器進行監視。

讓我們開始!

在 CentOS 8 上配置 Rsyslog 伺服器

預設情況下,Rsyslog 已安裝在 CentOS 8 / RHEL 8 伺服器上。要驗證 Rsyslog 的狀態,請通過 SSH 登入並執行以下命令:

$ systemctl status rsyslog

示例輸出:

rsyslog-service-status-centos8

如果由於某種原因 Rsyslog 不存在,那麼可以使用以下命令進行安裝:

$ sudo yum install rsyslog

接下來,你需要修改 Rsyslog 配置檔案中的一些設定。開啟配置檔案:

$ sudo vim /etc/rsyslog.conf

滾動並取消註釋下面的行,以允許通過 UDP 協議接收日誌:

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

rsyslog-conf-centos8-rhel8

同樣,如果你希望啟用 TCP rsyslog 接收,請取消註釋下面的行:

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

rsyslog-conf-tcp-centos8-rhel8

儲存並退出配置檔案。

要從客戶端系統接收日誌,我們需要在防火牆上開啟 Rsyslog 預設埠 514。為此,請執行:

# sudo firewall-cmd  --add-port=514/tcp  --zone=public  --permanent

接下來,重新載入防火牆儲存更改:

# sudo firewall-cmd --reload

示例輸出:

firewall-ports-rsyslog-centos8

接下來,重啟 Rsyslog 伺服器:

$ sudo systemctl restart rsyslog

要在啟動時執行 Rsyslog,執行以下命令:

$ sudo systemctl enable rsyslog

要確認 Rsyslog 伺服器正在監聽 514 埠,請使用 netstat 命令,如下所示:

$ sudo netstat -pnltu

示例輸出:

netstat-rsyslog-port-centos8

完美!我們已經成功配置了 Rsyslog 伺服器來從客戶端系統接收日誌。

要實時檢視日誌訊息,請執行以下命令:

$ tail -f /var/log/messages

現在開始配置客戶端系統。

在 RHEL 8 上配置客戶端系統

與 Rsyslog 伺服器一樣,登入並通過以下命令檢查 rsyslog 守護程式是否正在執行:

$ sudo systemctl status rsyslog

示例輸出:

client-rsyslog-service-rhel8

接下來,開啟 rsyslog 配置檔案:

$ sudo vim /etc/rsyslog.conf

在檔案末尾,新增以下行:

*.* @10.128.0.47:514           # Use @ for UDP protocol
*.* @@10.128.0.47:514          # Use @@ for TCP protocol

儲存並退出配置檔案。就像 Rsyslog 伺服器一樣,開啟 514 埠,這是防火牆上的預設 Rsyslog 埠:

$ sudo firewall-cmd  --add-port=514/tcp  --zone=public  --permanent

接下來,重新載入防火牆以儲存更改:

$ sudo firewall-cmd --reload

接下來,重啟 rsyslog 服務:

$ sudo systemctl restart rsyslog

要在啟動時執行 Rsyslog,請執行以下命令:

$ sudo systemctl enable rsyslog

測試日誌記錄操作

已經成功安裝並配置 Rsyslog 伺服器和客戶端後,就該驗證你的配置是否按預期執行了。

在客戶端系統上,執行以下命令:

# logger "Hello guys! This is our first log"

現在進入 Rsyslog 伺服器並執行以下命令來實時檢視日誌訊息:

# tail -f /var/log/messages

客戶端系統上命令執行的輸出顯示在了 Rsyslog 伺服器的日誌中,這意味著 Rsyslog 伺服器正在接收來自客戶端系統的日誌:

centralize-logs-rsyslogs-centos8

就是這些了!我們成功設定了 Rsyslog 伺服器來接收來自客戶端系統的日誌資訊。


via: https://www.linuxtechi.com/configure-rsyslog-server-centos-8-rhel-8/

作者:James Kiarie 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

如何在 CentOS8/RHEL8 中配置 Rsyslog 伺服器

訂閱“Linux 中國”官方小程式來檢視

相關文章