rsyslog日志服务器
在某次等保测评中,要求开启rsyslog日志并外发保存。但客户现场没有rsyslog日志服务器,暂时无法做到外发保存。于是想到了自己搭建一个简易的rsyslog日志服务器,用于接收同网段的服务器的日志。
1 服务端
#开启rsyslog服务
systemctl enable rsyslog
编辑/etc/rsyslog.conf
#开启日志接收
# Provides UDP syslog reception
$ModLoad imudp #取消注释,开启日志接收
$UDPServerRun 514 #取消注释,开启日志接收
# Provides TCP syslog reception
$ModLoad imtcp #取消注释,开启日志接收
$InputTCPServerRun 514 #取消注释,开启日志接收
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
##这里是服务端添加的配置 begin
# 使用RemoteLogs模板接受客户端的日志,保存到本地的/var/log/remote目录下,然后是每台客户端的ip_年份_月份_日期的log
$template RemoteLogs,"/var/log/remote/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
# 所有服务所有级别的日志都记录
*.* ?RemoteLogs
#服务端本机的日志不记录
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
#指示rsyslog在将消息写入文件后停止处理消息。如果不包含"& ~",则消息将被写入本地文件,导致消息被记录2次。
& ~
##这里是服务端添加的配置 end
#重启rsyslog服务
systemctl start rsyslog
2 客户端
#开启rsyslog服务
systemctl enable rsyslog
编辑/etc/rsyslog.conf
,末尾添加以下配置
kern.warning;*.err;authpriv.none @192.168.10.41:514
*.info;mail.none;authpriv.none;cron.none @192.168.10.41:514
*.emerg @192.168.10.41:514
local7.* @192.168.10.41:514
authpriv.* @192.168.10.41:514
#重启rsyslog服务
systemctl start rsyslog