ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,这是我在ELK学习和实践过程写下的笔记,整理成了一个ELK入门到实践的系列文章,分享出来与大家共勉。本文为该系列文章的第一篇,通过rsyslog搭建集中日志服务器,收集linux和window系统日志。
我们通常可以通过rsyslog来实现系统日志的集中管理,这种情况下通常会有一个日志服务器,然后每台服务器配置自己日志通过rsyslog来写到远程的日志服务器上,如下是rsyslog的配置过程:
1、启用UDP/TCP进行传输
vim /etc/rsyslog.conf
# Provides UDP syslog reception #若启用UDP进行传输,则取消下面两行的注释
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception #若启用TCP进行传输,则取消下面两行的注释
#$ModLoad imtcp
#$InputTCPServerRun 514
2、为避免修改主配置文件,我们在/etc/rsyslog.d/
中新建default.conf,追加如下模板:
#### GLOBAL DIRECTIVES ####
#
Use default timestamp format # 使用自定义的日志格式$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myFormat,"%timestamp% %fromhost-ip% %syslogtag% %msg%n"
$ActionFileDefaultTemplate myFormat
# 根据客户端的IP单独存放主机日志在不同目录,rsyslog需要手动创建
$template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
# 排除本地主机IP日志记录,只记录远程主机日志
:fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs
# 忽略之前所有的日志,远程主机日志记录完之后不再继续往下记录
& ~
3、重启rsyslog服务
systemctl restart rsyslog
1、启用UDP进行传输并设置远程日志服务器
vim /etc/rsyslog.conf
# Provides UDP syslog reception #若启用UDP进行传输,则取消下面两行的注释
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception #若启用TCP进行传输,则取消下面两行的注释
#$ModLoad imtcp
#$InputTCPServerRun 514
*.* @192.168.91.18:514 #若启用TCP传输则使用@@,若是UDP则使用@
2、重启rsyslog服务
systemctl restart rsyslog
通过使用自定义日志格式,将不同服务器IP的日志单独分别存放在不同目录。到这里,使用rsyslog服务端和linux系统日志收集已完成。
一般情况下,我们会使用winlogbeat用于收集windows的系统事件日志,但其实rsyslog自身也提供了一个Rsyslog Windows代理,用来收集windows日志。
下载地址:https://www.rsyslog.com/windows-agent/windows-agent-download/
1、双击rsyslogwa安装包,开始进行安装
2、一路Next安装即可。PS:在这里可能需要等几分钟。
1、打开RSyslog Windows Agent Configuration,在Tools---> Stslog Test Message,配置Syslog Server服务器地址,点击Send,进行测试。
在Rsyslog服务端,接收到一条测试日志,说明Rsyslog通讯正常。
Nov 1 13:23:18 192.168.165.193 RSyslog Windows Agent: This is a SyslogTest
2、依次展示RuleSets,进行Rsyslog转发配置,并启用服务。
在rsyslog服务端进行验证,如尝试远程连接window服务器,可接收到多条服务器日志。
本文作者:Bypass007
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/117999.html