如何在CentOS8/RHEL8中配置Rsyslog服務器
Rsyslog 是一個自由開源的日志記錄程序,在 CentOS 8 和 RHEL 8 系統(tǒng)上默認可用。它提供了一種從客戶端節(jié)點到單個中央服務器的“集中日志”的簡單有效的方法。日志集中化有兩個好處。首先,它簡化了日志查看,因為系統(tǒng)管理員可以在一個中心節(jié)點查看遠程服務器的所有日志,而無需登錄每個客戶端系統(tǒng)來檢查日志。如果需要監(jiān)視多臺服務器,這將非常有用,其次,如果遠程客戶端崩潰,你不用擔心丟失日志,因為所有日志都將保存在中心的 Rsyslog 服務器上。rsyslog 取代了僅支持 UDP 協(xié)議的 syslog。它以優(yōu)異的功能擴展了基本的 syslog 協(xié)議,例如在傳輸日志時支持 UDP 和 TCP 協(xié)議,增強的過濾功能以及靈活的配置選項。讓我們來探討如何在 CentOS 8 / RHEL 8 系統(tǒng)中配置 Rsyslog 服務器。
configure-rsyslog-centos8-rhel8
預先條件
我們將搭建以下實驗環(huán)境來測試集中式日志記錄過程:
- Rsyslog 服務器 CentOS 8 Minimal IP 地址: 10.128.0.47
- 客戶端系統(tǒng) RHEL 8 Minimal IP 地址: 10.128.0.48
通過上面的設置,我們將演示如何設置 Rsyslog 服務器,然后配置客戶端系統(tǒng)以將日志發(fā)送到 Rsyslog 服務器進行監(jiān)視。
讓我們開始!
在 CentOS 8 上配置 Rsyslog 服務器
默認情況下,Rsyslog 已安裝在 CentOS 8 / RHEL 8 服務器上。要驗證 Rsyslog 的狀態(tài),請通過 SSH 登錄并運行以下命令:
$ systemctl status rsyslog
示例輸出:
rsyslog-service-status-centos8
如果由于某種原因 Rsyslog 不存在,那么可以使用以下命令進行安裝:
$ sudo yum install rsyslog
接下來,你需要修改 Rsyslog 配置文件中的一些設置。打開配置文件:
$ sudo vim /etc/rsyslog.conf
滾動并取消注釋下面的行,以允許通過 UDP 協(xié)議接收日志:
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
保存并退出配置文件。
要從客戶端系統(tǒng)接收日志,我們需要在防火墻上打開 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 服務器正在監(jiān)聽 514 端口,請使用 netstat
命令,如下所示:
$ sudo netstat -pnltu
示例輸出:
netstat-rsyslog-port-centos8
我們已經(jīng)成功配置了 Rsyslog 服務器來從客戶端系統(tǒng)接收日志。
要實時查看日志消息,請運行以下命令:
$ tail -f /var/log/messages
現(xiàn)在開始配置客戶端系統(tǒng)。
在 RHEL 8 上配置客戶端系統(tǒng)
與 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
測試日志記錄操作
已經(jīng)成功安裝并配置 Rsyslog 服務器和客戶端后,就該驗證你的配置是否按預期運行了。
在客戶端系統(tǒng)上,運行以下命令:
# logger "Hello guys! This is our first log"
現(xiàn)在進入 Rsyslog 服務器并運行以下命令來實時查看日志消息:
# tail -f /var/log/messages
客戶端系統(tǒng)上命令運行的輸出顯示在了 Rsyslog 服務器的日志中,這意味著 Rsyslog 服務器正在接收來自客戶端系統(tǒng)的日志:
centralize-logs-rsyslogs-centos8
就是這些了!我們成功設置了 Rsyslog 服務器來接收來自客戶端系統(tǒng)的日志信息。