如何在CentOS 6.5中安装并配置rsyslog集中式日志服务器
在本教程中,我们将在RHEL/CentOS 6.5中安装并设置rsyslog集中式日志服务器。
所有来自客户端服务器的日志都将被发送到集中式日志服务器,即rsyslog服务器。
检查预装的rsyslog包
首先检查rsyslog包是否安装在系统
一般来说默认情况下,RHEL 6.x和CentOS 6.x默认为rsyslog 5.x版本,因此我们将用新版本7.6更新rsyslog。
查看rsyslog版本信息
rpm -qa|grep rsyslog rsyslogd -v
在RHEL 6.x/CentOS 6.x中安装/更新rsyslog 7.6版本
创建一个新的yum repo文件
vi /etc/yum.repos.d/rsyslog.repo
内容如下:
[rsyslog-v7-devel] name=Adiscon Rsyslog v7-devel for CentOS-$releasever-$basearch baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch enabled=0 gpgcheck=0 protect=1 [rsyslog-v7-stable] name=Adiscon Rsyslog v7-stable for CentOS-$releasever-$basearch baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch enabled=1 gpgcheck=0 protect=1
安装rsyslog:
yum install rsyslog
更新rsyslog版本
yum update rsyslog
在RHEL 6.x/CentOS 6.x中配置rsyslog
开启模块
备份原始文件
cp -pv /etc/rsyslog.conf /etc/rsyslog.conf.orig
编辑/etc/rsyslog.conf文件
vi /etc/rsyslog.conf
删除这些模块名称前面的井号#来取消注释
module(load="imuxsock") # provides support for local system logging (e.g. via logger command) module(load="imklog") # provides kernel logging support (previously done by rklogd)
将emerg的动作设置为 :omusrmsg:*
:
*.emerg :omusrmsg:*
启用UDP端口514:
module(load="imudp") # needs to be done just once input(type="imudp" port="514")
在文件 /etc/rsyslog.conf的后面,添加下面内容:
$template TmplAuth, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log" $template TmplMsg, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg
配置之后,内容如下(参考):
[root@localhost /]# egrep -v '^#|^$' /etc/rsyslog.conf -v module(load="imuxsock") # provides support for local system logging (e.g. via logger command) module(load="imklog") # provides kernel logging support (previously done by rklogd) module(load="imudp") # needs to be done just once input(type="imudp" port="514") $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:* uucp,news.crit /var/log/spooler local7.* /var/log/boot.log $template TmplAuth, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log" $template TmplMsg, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg [root@localhost /]#
编辑/etc/sysconfig/rsyslog文件, 设置 SYSLOGD_OPTIONS
SYSLOGD_OPTIONS=""
启动/重启rsyslog服务
启动rsyslog
/etc/init.d/rsyslog start
重新启动rsyslog
/etc/init.d/rsyslog restart
如果要停止rsyslog:
/etc/init.d/rsyslog stop
在/var/log中新建一个目录
用于将所有服务器的日志保存在这个目录中。
mkdir -p /var/log/rsyslog_custom
为rsyslog设置SELINUX规则
一些系统管理员,禁用了selinux。
如果我们想保持启用SELINUX。那么需要进行规则设置:
semanage fcontext -a -t syslogd_exec_t /sbin/rsyslogd restorecon /sbin/rsyslogd /usr/sbin/semanage fcontext -a -t var_log_t "/var/log/rsyslog_custom(/.*)?" /sbin/restorecon -R -v /var/log/rsyslog_custom
为rsyslog设置IPTABLES
rsyslog服务使用UDP端口号514。
编辑 /etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
添加下面规则:
-A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT
重新启动iptables服务
/etc/init.d/iptables restart
使用iptables-nL
命令检查iptables规则
重启rsyslog,验证514端口监听状态
/etc/init.rsyslog restart
检查端口514的侦听状态
netstat -uanp|grep rsyslog
在客户端服务器中配置rsyslog
编辑客户端系统中的rsyslog.conf文件。
该方法适用于基于Red Hat和Debian的操作系统(如RHEL、CentOS、Debian、Ubuntu)
语法:
*.* @rsyslog服务器ip:514
示例:
编辑文件
vi /etc/rsyslog.conf
添加下面内容
*.* @192.168.56.102:514
重启rsyslog服务
/etc/init.d/rsyslog restart
现在在客户机系统中重新登录,这样我们将捕获日志。同时我将在rsyslog服务器中看到相同的日志信息。
验证 服务器日志
切换到目录/var/log/rsyslog_custom。
下面有各个客户端主机名的目录。
[root@localhost ~]# ls -l /var/log/rsyslog_custom/ total 8 drwx------. 2 root root 4096 Mar 1 07:52 localhost drwx------. 2 root root 4096 Mar 1 07:47 theitroad [root@localhost ~]# [root@localhost ~]# ls -l /var/log/rsyslog_custom/theitroad/ total 32 -rw-------. 1 root root 193 Mar 1 07:46 CRON.log -rw-------. 1 root root 619 Mar 1 07:47 dbus.log -rw-------. 1 root root 255 Mar 1 07:47 dhclient.log -rw-------. 1 root root 0 Mar 1 07:46 kernel.log -rw-------. 1 root root 659 Mar 1 07:47 NetworkManager.log -rw-------. 1 root root 120 Mar 1 07:46 rsyslogd-2039.log -rw-------. 1 root root 149 Mar 1 07:46 rsyslogd.log -rw-------. 1 root root 296 Mar 1 07:44 sudo.log -rw-------. 1 root root 316 Mar 1 07:44 su.log [root@localhost ~]#
重要提示:设置好所有内容后,最好检查*/var/log/messages*。如果发现与rsyslog相关的错误/警告
注意:建议在安全内部网络中使用此rsyslog服务器设置。rsyslog服务器不应公开。
以防万一你想
安全设置
为了保护rsyslog服务器。我们可以使用iptable来控制,只接受来自特定ip地址/服务器的日志。
例如,只允许192.168.56.1发送的日志:
vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp -s 192.168.56.1 --dport 514 -j ACCEPT
只允许网络10.0.0.0/255.255.255.0 连接到rsyslog服务器
vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp -s 10.0.0.0/24 --dport 514 -j ACCEPT
重新启动iptable使规则生效:
/etc/init.d/iptables restart