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