搭建高性能日志服务器,rsyslog日志服务器搭建

第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

你可能感兴趣的:(搭建高性能日志服务器)