CentOS上配置rsyslog客戶端用以遠程記錄日誌
步驟一: 安裝Rsyslog守護進程
在CentOS 6和7上,rsyslog守護進程已經預先安裝了。要驗證rsyslog是否已經安裝到你的CentOS系統上,請執行如下命令:
# rpm -qa | grep rsyslog
# rsyslogd -v
如果處於某種原因,rsyslog守護進程沒有出現在你的系統中,請使用以下命令來安裝:
# yum install rsyslog
步驟二: 配置Rsyslog守護進程為客戶端
接下來的步驟,是要將你的CentOS機器轉變成rsyslog客戶端,將其所有內部日誌消息發送到遠程中央日誌伺服器上。
要實現該功能,請使用你喜愛的文本編輯器打開位於/etc路徑下的rsyslog主配置文件:
# nano /etc/rsyslog.conf
開啟文件用於編輯後,你需要添加以下聲明到文件底部。將IP地址替換為你的遠程rsyslog伺服器的IP地址。
*.* @192.168.1.25:514
上面的聲明告訴rsyslog守護進程,將系統上各個設備的各種日誌消息路由到遠程rsyslog伺服器(192.168.1.25)的UDP埠514。
如果出於某種原因,你需要更為可靠的協議,如TCP,而rsyslog伺服器也被配置為監聽TCP連接,你必須在遠程主機的IP地址前添加一個額外的@字元,像下面這樣:
*.* @@192.168.1.25:514
注意,你也可以將rsyslog伺服器的IP地址替換成它的主機名(FQDN)。
如果你只想要轉發伺服器上的指定設備的日誌消息,比如說內核設備,那麼你可以在rsyslog配置文件中使用以下聲明。
kern.* @192.168.1.25:514
修改配置文件後,你需要重啟進程以激活修改:
CentOS 7:
# systemctl restart rsyslog.service
CentOS 6:
# service rsyslog restart
非 syslog 日誌的轉發
在另外一種環境中,讓我們假定你已經在機器上安裝了一個名為「foobar」的應用程序,它會在/var/log下生成foobar.log日誌文件。現在,你想要將它的日誌定向到rsyslog伺服器,這可以通過像下面這樣在rsyslog配置文件中載入imfile模塊來實現。
首先,載入imfile模塊,這隻需做一次。
module(load="imfile" PollingInterval="5")
然後,指定日誌文件的路徑以便imfile模塊可以檢測到:
input(type="imfile"
File="/var/log/foobar.log"
Tag="foobar"
Severity="error"
Facility="local7")
最後,定向local7設備到遠程rsyslog伺服器:
local7.* @192.168.1.25:514
別忘了重啟rsyslog進程哦!
步驟三: 讓Rsyslog進程自動啟動
要讓rsyslog客戶端在每次系統重啟後自動啟動,請運行以下命令:
CentOS 7:
# systemctl enable rsyslog.service
CentOS 6:
# chkconfig rsyslog on
小結
在本教程中,我演示了如何將CentOS系統轉變成rsyslog客戶端以強制它發送日誌消息到遠程rsyslog伺服器。這裡我假定rsyslog客戶端和伺服器之間的連接是安全的(如,在有防火牆保護的公司網路中)。不管在任何情況下,都不要配置rsyslog客戶端將日誌消息通過不安全的網路轉發,或者,特別是通過互聯網轉發,因為syslog協議是一個明文協議。要進行安全傳輸,可以考慮使用TLS/SSL來加密日誌消息的傳輸。
via: http://xmodulo.com/configure-rsyslog-client-centos.html
作者:Caezsar M 譯者:GOLinux 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive