第1章 简介
1.1 Rsyslog介绍
rsyslog是比syslog功能更强大的日志记录系统,可以将日志输出到文件,数据库和其它程序。
ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,并可定制和过滤、筛选。据官网介绍,现在可以处理100万条信息。
特性:
1、可以直接将日志写入到数据库。
2、日志队列(内存队列和磁盘队列)。
3、灵活的模板机制,可以得到多种输出格式。
4、插件式结构,多种多样的输入、输出模块。
5、可以把日志存放在Mysql ,PostgreSQL,Oracle等数据库中
LogAnalyzer介绍
LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。
LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。
LogAnalyzer和LogZilla是分析系统日志,并用web界面展示的的工具,一般只用在syslog,syslog-ng,rsyslog日志系统中
LogAnalyzer 采用php开发,所以日志服务器需要php的运行环境,本文采用LNMP。
1.2 Rsyslog工作流程
简单的来说:首先数据通过输入模块进入主队列,然后经由过滤条件分解到各个子队列,最后交给输出模块。
1.3Rsyslog日志服务器的优势
1、日志统一,集中式管理
2、日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。
第2章 系统环境
Rsyslog Server OS:CentOS 6.8
Rsyslog Server IP:10.10.16.253
Rsyslog 版本:rsyslog-8.30.0-8.el6.i686
LogAnalyzer 版本:LogAnalyzer 3.6.5 (v3-stable)
防火墙已关闭/iptables:Firewall is not running.
SELINUX=disabled
Rsyslog Client OS:RHEL 6.4
Rsyslog Client IP:10.10.16.254第3章 实践部署
3.1 升级Rsyslog
操作系统是Centos6.8,默认安装的Rsyslog版本是5.8.10,可通过rsyslogd -v命令查看:
# rsyslogd -v
rsyslogd 5.8.10, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5support: Yes
FEATURE_DEBUG (debugbuild, slow code): No
32bit Atomicoperations supported: Yes
64bit Atomicoperations supported: Yes
RuntimeInstrumentation (slow code): No
See http://www.rsyslog.com for more information.
使用yum对rsyslog进行升级(需要root权限)
# cd /etc/yum.repos.d
# wgethttp://rpms.adiscon.com/v8-stable/rsyslog.repo
# yum update rsyslog
升级完成之后,版本为8.30.0
# rsyslogd-v
rsyslogd 8.30.0, compiled with:
PLATFORM: x86_64-redhat-linux-gnu
PLATFORM(lsb_release -d):
FEATURE_REGEXP: Yes
GSSAPIKerberos 5 support: No
FEATURE_DEBUG(debug build, slow code): No
32bitAtomic operations supported: Yes
64bitAtomic operations supported: Yes
memoryallocator: systemdefault
RuntimeInstrumentation (slow code): No
uuidsupport: Yes
Numberof Bits in RainerScript integers: 64
See http://www.rsyslog.com for more information.
注意:Rsyslog服务端和客户端都进行升级。
3.2 服务端配置
开启相关日志模块
# vi /etc/rsyslog.conf
$ModLoad immark #immark是模块名,支持日志标记
$ModLoad imudp #imupd是模块名,支持udp协议
$UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志
服务端支持rsyslog-mysql模块,可开启UDP服务端口获取网内其他LINUX系统日志
# vi /etc/rsyslog.conf
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,123456
在 #### MODULES #### 下添加上面两行。
说明:localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。
重启rsyslog 服务
# /etc/init.d/rsyslog restart
3.3 客户端配置防火墙配置
如果启用了iptables防火墙,注意开放默认的514端口,也可以配置文件使用其他端口。
iptables -A INPUT -m state --state NEW -m udp -pudp -i eth0 --dport 514 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -ptcp -i eth0 --dport 514 -j ACCEPT
说明:rsyslog可以通过tcp协议传输日志,也可以通过udp协议传输。有些服务器我采用的tcp协议,有些用了udp协议,想对比看看哪种更适合我们的环境,因此所有服务器都建立了以上两条规则。配置rsyslog
编辑配置文件/etc/rsyslog.conf,去掉以下配置项前的注释,如果没有就添加该配置项。
module(load="imuxsock")
module(load="imklog")
#module(load="imfile")
#使用udp协议
module(load="imudp