Rsyslog日志服务器部署宝典:Linux、Windows及网络设备日志一网打尽1 Rsyslog日志服务器简介1.1 目的1.2 平台及软件2 Rsyslog服务端安装及配置(日志服务器)2.1 安装Rsyslog2.2 配置Rsyslog2.1.1 取消下面4行的注释2.1.2 创建日志接收模板2.1.3 使用自定义的时间格式2.1.4 在RULES段的前面写入下面的行2.1.5 保存退出2.3 重启Rsyslog服务2.4 配置防火墙3 Linux客户端安装及配置3.1 安装Rsyslog3.2 配置Rsyslog3.2.1 配置日志发送3.2.2 将客户端执行的所有命令写入系统日志中3.3 重启Rsyslog服务3.4 测试验证3.4.1 在客户端发送一条日志信息3.4.2 在日志服务器 /var/log目录下4 Windows 客户端安装及配置4.1 下载Rsyslog Windows版本4.2 安装Rsyslog4.2.1 双击下载的rsyslogwa.exe4.2.2 点击是(Y)4.2.3 点击Next4.2.4 选择I accept the terms in the license agreement,点击Next4.2.5 设置安装路径,点击Change...4.2.6 设置安装路径,点击Ok4.2.7 点击Next4.2.8 选择Complete,点击Next4.2.9 点击Install4.2.10 点击Finish4.3 配置Rsyslog4.3.1 方法一:4.3.2 方法二:4.4 重启Rsyslog服务4.5 验证配置并测试连接4.5.1 方法一:4.5.2 方法二:5 网络设备客户端配置5.1 Huawei5.2 H3C5.3 Cisco5.4 Ruijie
为了方便日志监控和防止日志被篡改,我们可以使用rsyslog搭建日志服务器用于存放其它服务器的日志。对于入侵排查工作来说,操作系统的认证日志、计划任务日志和历史命令都是非常重要的。我们把各个系统的相应日志保存到专门的rsyslog日志服务器,保存日志的路径格式为:源IP地址/设施名(日志类别)、年月.log。
# yum install rsyslog -y
编辑配置文件:
# vi /etc/rsyslog.conf
TCP和UDP可以被同时生效来监听TCP/UDP 连接。
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
注释掉原有的ActionFileDefaultTemplate指令(使用传统的格式)
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myformat
$template local1_path, "/infook/rsyslog/%FROMHOST-IP%/bash_history/%$YEAR%%$MONTH%.log"
$template remote_path, "/infook/rsyslog/%FROMHOST-IP%/%syslogfacility-text%/%$YEAR%%$MONTH%.log"
if $fromhost-ip != '127.0.0.1' and $syslogfacility-text == 'local1' then ?local1_path
& ~
if $fromhost-ip != '127.0.0.1' then ?remote_path
& ~
命令行模式下。
:x
说明:
$template定义了两个模板,名称分别为local1_path和remote_path,模板名称后面指定了将消息保存到的日志文件的路径。
if开头的指令是基于表达式的过滤器。第一条if指令的意思是,如果日志消息的来源IP地址不是本机,且消息的syslogfacility-text为local1,那么将这条消息写入由模板local1_path对应的文件。
& ~的含义是让满足上面过滤器条件的消息不再匹配后续的规则。默认情况下,日志消息会按顺序匹配rsyslog.conf中的每条规则。& ~在这里会让消息跳过后面的规则,这样这条消息就不会再被写入其他的日志文件了。
第二条if开头的指令将来自于本机之外的所有日志消息(由于前面的& ~,满足这个条件的只有auth、authpriv和cron消息)写入remote_path所对应的文件。
# systemctl restart rsyslog
作为日志服务器,需要开启访问端口。(或者直接关闭防火墙)开放514端口
# firewall-cmd --zone=public --add-port=514/tcp
# firewall-cmd --zone=public --add-port=514/udp
# yum install rsyslog -y
编辑配置文件:
# vi /etc/rsyslog.conf
编辑rsyslog服务配置文件,文件末尾加入一行
*.*info @10.165.42.71:514
保存退出。认证和计划任务日志等在本地保存的同时,还会保存到远程日志服务器。
配置术语说明:facility:中文翻译过来是设施的意思,从功能或程序上对日志分类,在Linux中常见的facility有:auth(认证相关的日志),authpriv(授权相关的日志),cron(计划任务相关日志),daemon(系统服务相关日志),ftp(ftp服务相关的日志),kern(内核相关日志),lpr(打印相关的日志),mail(邮件相关日志),news(新闻相关的日志),security(安全相关的日志),user(用户相关的日志),uucp(文件copy相关的日志),local0-local7(自定义相关的日志)
priority:优先级别,从低到高排序:debug(调试),info(消息),notice(注意),warn(warning警告),err(error错误),crit(critical严重警告),alert(需要立即修改的信息)emerg(panic内核崩溃,内核恐慌等严重的信息)
一个@代表通过UDP协议发送日志,两个@@代表以tcp方式传送日志。与UDP相比,TCP传输的方式更加稳定一些。
编辑/etc/bashrc
# vi /etc/bashrc
文件底部添加一行,加入以下内容
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
设置使其生效
# source !$
重启服务,使配置更改生效
# systemctl restart rsyslog
发送一条info级别或以上级别的日志
# logger -p "mail.info" "this is test log"
# tail -f /infook/rsyslog/10.165.42.72/mail/<yyyymm>.log
说明:不管在任何情况下,都不要配置rsyslog客户端将日志消息通过不安全的网络转发,或者,特别是通过互联网转发,因为syslog协议是一个明文协议。要进行安全传输,可以考虑使用TLS/SSL来加密日志消息的传输。
在Windows环境下,要安装和配置Rsyslog Agent,您可以按照以下步骤操作:
访问 https://www.rsyslog.com/windows-agent/windows-agent-download/ 并下载最新的Rsyslog MSI安装程序。











打开RSyslog Windows Agent Configuration,依次展示RuleSets--->Default RuleSet--->ForwardSyslog--->Actions--->Rsyslog,进行Rsyslog转发配置,并启用服务。




打开Rsyslog配置文件 rsyslog.conf,通常位于 D:\Program Files\rsyslog\ 目录下。
例如,如果您想将日志发送到远程的Rsyslog服务器,您可以在配置文件中添加如下行:
*.* @@10.165.42.71:514
其中10.165.42.71是Rsyslog服务器的IP地址,514 是默认的Rsyslog端口。
可以通过服务管理器(services.msc)来重启Rsyslog服务,或者使用命令行:
net stop rsyslog && net start rsyslog
打开RSyslog Windows Agent Configuration,在Tools---> Stslog Test Message,配置Syslog Server服务器地址,点击Send,进行测试。


确保Windows防火墙允许Rsyslog通过514端口发送和接收信息。您可以使用 telnet 命令测试与远程服务器的连接:
telnet 10.165.42.71 514
其中10.165.42.71是Rsyslog服务器的IP地址,514 是默认的Rsyslog端口。

<Huawei> system-view
[Huawei] info-center loghost source Vlanif99
[Huawei] info-center loghost 10.165.42.71 facility local5
<H3C> system-view
[H3C] info-center loghost source Vlan-interface99
[H3C] info-center loghost 10.165.42.71 facility local6
Cisco>
Cisco> enable
Cisco# config terminal
Cisco(config)# logging on
Cisco(config)# logging 10.165.42.71
Cisco(config)# logging facility local4
Cisco(config)# logging source-interface e0
Ruijie>
Ruijie> enable
Ruijie# config terminal
Ruijie(config)# logging buffered warnings
Ruijie(config)# logging source interface VLAN 99
Ruijie(config)# logging facility local6
Ruijie(config)# logging server 10.165.42.71
说明:
10.165.42.71为rsyslog服务器的IP。
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!

原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。