CentOS7下搭建Rsyslog Server记录远程主机系统日志

时间:2022-07-23
本文章向大家介绍CentOS7下搭建Rsyslog Server记录远程主机系统日志,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

rsyslog是一个快速处理收集系统日志的开源程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地, rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。

rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog服务器上

根据下面的拓扑图,搭建Rsyslog Server记录远程主机系统日志

1、Rsyslog Server服务器 192.168.31.80

2、Rsyslog Client主机 192.168.31.151

实现Client主机通过rsyslog发送自身的系统日志到Rsyslog Server服务器,服务器端将该主机系统日志存放到一个指定的目录里面,进行按IP和日志简单分类存储

一、rsyslog服务器端配置

CentOS7系统默认安装了rsyslog服务

cp /etc/rsyslog.conf /etc/rsyslog.conf_default
vi /etc/rsyslog.conf

1)取消如下两行的注释,开启UDP 514接收配置

$ModLoad imudp
$UDPServerRun 514

2)在$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat这一行添加如下配置

# This one is the template to generate the log filename dynamically, depending on the client's IP address. 
# 根据客户端的IP单独存放主机日志在不同目录,设置远程日志存放路径及文件名格式        
$template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"

# Log all messages to the dynamically formed file.
# 排除本地主机IP日志记录,只记录远程主机日志
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
# 注意此规则需要在其它规则之前,否则配置没有意义,远程主机的日志也会记录到Server的日志文件中
# 忽略之前所有的日志,远程主机日志记录完之后不再继续往下记录
& ~

3)重启rsyslog服务

 systemctl restart rsyslog

二、rsyslog客户端配置

1)取消如下五行的注释

$ActionQueueFileName fwdRule1
$ActionQueueMaxDiskSpace 1g  
$ActionQueueSaveOnShutdown on 
$ActionQueueType LinkedList   
$ActionResumeRetryCount -1 

2)最后一行添加*.* @rsyslog服务器IP

*.* @192.168.31.80

3)重启rsyslog服务

systemctl restart rsyslog

三、在服务器端验证效果

cd /var/log/syslog/
cd 192.168.31.151/
tail -f 192.168.31.151_2020-08-23.log