1、 在CentOS上,rsyslog服務通常已經預先安裝了,可以先驗證下rsyslog是否已經安裝:
[root@dnscache ~]# rpm -qa | grep rsyslog
[root@dnscache ~]# rsyslogd –v
2、 如果rsyslog服務沒有安裝,則需要先行安裝服務:
# yum install rsyslog
3、 確認rsyslog服務已安裝后,需要對其配置文件進行修改
(1) 打開位於/etc路徑下的rsyslog主配置文件
# vim /etc/rsyslog.conf
(2) 取消如下兩行的注釋,開啟UDP 514接收配置:
$ModLoad imudp
$UDPServerRun 514
(3) 取消如下兩行的注釋,開啟TCP 514接收配置:
$ModLoad imtcp
$InputTCPServerRun 514
4、 如果希望將系統上各個設備的日志都傳輸到遠程rsyslog服務器中則只需要在rsyslog配置文件中添加如下內容:
# vim /etc/rsyslog.conf
*.* @172.28.196.93:514
其中@表示使用UDP協議傳輸,如果想通過TCP協議傳輸可以修改為@@
5、 如果只想要轉發指定設備的日志消息,比如說內核設備,可以在rsyslog配置文件中添加如下內容:
# vim /etc/rsyslog.conf
kern.* @192.168.1.25:514
6、 如果想要轉發自定義的設備日志消息,可以進行如下操作(由於我們是想只將DNS的日志轉發到遠程rsyslog服務器上,但是在rsyslog中並沒有指定dns的日志消息,所以此次采用的就是自定義日志消息)
# vim /etc/rsyslog.conf //編輯配置文件
添加以下內容:
(1) 加載imfile模塊實現日志文件定向至rsyslog服務器
module(load="imfile" PollingInterval="5")
(2) 指定日志文件路徑(路徑必須是絕對路徑):
$InputFilePersistStateInterval 1
input(type="imfile"
File="/var/named/data/named.run" //dns日志路徑
Tag="named" //定義日志消息標簽名
PersistStateInterval="1"
reopenOnTruncate="on"
Severity="info" //消息級別
Facility="local1") //自定義設備名(local1—local7)
注意:dns日志文件可以在/etc/named.conf中看到:
(3) 設置將自定義的日志不記錄到/var/log/message文件中,不然的話日志量大
在/etc/rsyslog.conf中將
*.info;mail.none;authpriv.none;cron.none; /var/log/messages
修改為:
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
(4) 定向local1備到遠程rsyslog服務器
local1.* @@172.28.196.93:514
(5) 最后由於本次是需要將DNS日志傳輸到日志服務器上,那么需要開啟DNS日志:
進入dns配置文件
# vim /etc/named.conf
啟用DNS日志:
重啟dns服務並設置為開機自啟動:
# systemctl restart named
# systemctl enable named
7、 重啟rsyslog服務並設置為開機自啟動:
# systemctl restart rsyslog
# systemctl enable rsyslog