配置rsyslog日志中继服务器,发送日志到多台设备

1. 环境说明

1.1 需求说明

 

 

由于新增一套态势感知系统,需要将防火墙的日志发送到态势感知之中,然后又需要将日志保存在之前搭建的syslog日志服务器中。但是防火墙设置syslog服务器的时候无法设置多个syslog服务器,这样就没办法把一份日志发送到2个设备中了。

为了满足这个需求,我们需要搭建一个rsyslog,通过配置rsyslog,使得成为一台日志中继的服务器,防火墙发送日志到这个rsyslog中继服务器,然后再通过这台服务器发送到2个设备中。

 

 

1.2环境说明(IP以虚构IP做演示)

  • rsyslog日志中继服务器操作系统:Centos7
  • rsyslog日志中继服务器IP:5.5.5.5
  • NGAF-01 IP:3.3.3.3   版本7.5.1
  • 第三方日志平台IP:1.1.1.1
  • 第三方态势感知IP:2.2.2.2

1.3 拓扑                                                 

配置rsyslog日志中继服务器,发送日志到多台设备-一字节.OneByte

2. 安装rsyslog

cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable-nightly/rsyslog-nightly.repo
yum install rsyslog

# 具体安装参考官网
# https://www.rsyslog.com/rhelcentos-rpms/

3. 配置Rsyslog中继

3.1 配置接收日志方式(日志输入方式)

编辑/etc/rsyslog.conf,配置日志接收的方式,根据自身需求删掉对应的#号。这边是用udp 514端口进行日志接收。如果要用udp非514端口,记得要关掉selinux。

#使用udp进行日志接收
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

#使用tcp进行日志接收
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

3.2 配置日志转发方式(日志输出方式)

编辑/etc/rsyslog.conf,在文件末尾添加如下内容

#发送所有日志到1.1.1.1的udp 514端口
*.* @1.1.1.1:514
#发送所有日志到2.2.2.2的tcp 514端口
*.* @@2.2.2.2:514

PS:如果要按源设备的IP进行区分的话可以按照下面的方式修改

#收到3.3.3.3设备发送过来的日志 转发到1.1.1.1的514端口
:fromhost-ip, isequal,"3.3.3.3"  @1.1.1.1:514
#收到4.4.4.4设备发送过来的日志 转发到2.2.2.2的514端口
:fromhost-ip, isequal,"4.4.4.4"  @2.2.2.2:514

4. 设置rsyslog自启与放行端口

上面配置修改配置文件后,重启rsyslog且设置服务开机自启

systemctl restart rsyslog
systemctl enable rsyslog

放行udp 514端口,当然你也可以把防火墙都关了

firewall-cmd --zone=public --add-port=514/udp --permanent
firewall-cmd --reload

5. NGAF 配置syslog

根据自己的需求在NAAF里面把日志传送到syslog里面

配置rsyslog日志中继服务器,发送日志到多台设备-一字节.OneByte

6.其他

6.1 NGAF syslog修改主机名称

在配置转发后,对端接收到的日志发送IP就是我这台日志中继的IP不是防火墙的IP地址。且日志内容主机名写的是localhost,不是防火墙配置的设备名称。这样对端的话比较不好区分源日志是谁发出来的。
通过咨询厂家,通过修改底层脚本,把原本的localhost修改为具体的设备名称。这样日志发送过去后,就可以通过日志内容去判断具体是哪台设备发送的日志了。

配置rsyslog日志中继服务器,发送日志到多台设备-一字节.OneByte
配置rsyslog日志中继服务器,发送日志到多台设备-一字节.OneByte
(修改前的日志内容)

 

配置rsyslog日志中继服务器,发送日志到多台设备-一字节.OneByte
(修改后的日志内容)

6.2  保存日志到rsyslog

如果想转发日志且又要保存日志到这台rsyslog服务器的时候。我们可以编辑配置文件/etc/rsyslog.conf 新增配置

#所有所有日志保存到/var/log/主机IP/主机IP-年-月-日.log
#%fromhost-ip%:为发送日志过来的IP
*.*   "/var/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"

7.总结


整个过程简单点说就是。
日志输入方式:通过udp或TCP 514端口输入,
日志输出方式:文件(6.2保存日志到文件),或者其他syslog服务器(3.2转发日志)。
当然在输出之前也可以对日志内容做一些判断或者过滤后再进行输出。

具体可以参考官方文档:https://www.rsyslog.com/doc/v8-stable/configuration/filters.html