Fork me on GitHub
Suzf  Blog

日志分析之LogAnalyzer+Rsyslog日志分析系统全

一、简介

LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的 syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。

LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。

LogAnalyzer 采用php开发,所以日志服务器需要php的运行环境,本文采用LAMP。

二、系统环境

Rsyslog Server OS:CentOS 6.5

Rsyslog Server IP:172.16.8.91

Rsyslog Ver:rsyslog-5.8.10-8.el6.x86_64

LogAnalyzer Ver:LogAnalyzer 3.6.0

Rsyslog Client OS:RHEL 6.5

Rsyslog Client IP:172.16.7.81

Rsyslog Client OS:Win 2008R2

Rsyslog Client IP:172.16.7.110

防火墙已关闭/iptables: Firewall is not running.

注:这里若要开启iptables服务增加系统安全性

服务端需添加rsyslog UDP 514端口以及loganalyzer TCP 80端口通过规则

iptables -A INPUT -p udp --dport 514 -j ACCEPT

iptables -P OUTPUT ACCEPT

iptables -A INPUT -p TCP --dport 80 -j ACCEPT

客户端只需添加OUTPUT通过规则

iptables -P OUTPUT ACCEPT

从规则可见,rsyslog server端为被动获取数据,client端为主动发送数据

关闭iptables的朋友可以无视。。

SELINUX=disabled

同步时间

ntpdate tiger.sina.com.cn

三、安装并设置LAMP

3.1安装LAMP

yum -y install httpd mysql* php*

3.2 启动服务并加入开机启动

启动Apache

etc/init.d/httpd start

chkconfig httpd on

启动数据库

/etc/init.d/mysqld start

chkconfig mysqld on

3.3 设置MySQL root 密码

mysqladmin -uroot password 'xxxxxx'

四.主服务端配置rsyslog

4.1 rsyslog server【CentOS6 默认logsoft 为rsyslog】

yum install rsyslog rsyslog-mysql -y

注:rsyslog-mysql为rsyslog将日志传送到mysql数据库的一个模块,这里必须安装

4.2 创建Syslog数据库

cd /usr/share/doc/rsyslog-mysql-5.8.10/

mysql -uroot -p < createDB.sql 注:这里导入数据库操作其实博主最后研究了下,就是创建了Syslog库并在该库中创建了两张空表 +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 4.3 创建rsyslog用户在mysql下的相关权限 mysql -uroot -p mysql> grant all privileges on Syslog.* to [email protected] identified by "xxxxxx";

mysql> flush privileges;

mysql> exit

4.4 配置服务端支持rsyslog-mysql模块,并开启UDP服务端口获取网内其他LINUX系统日志

UDP 方式

# vi /etc/rsyslog.conf

在#### MODULES ####下添加这两行

------------------

$ModLoad ommysql.so

*.* :ommysql:localhost,Syslog,rsyslog,xxxxxx

------------------

注:localhost表示本地主机,Syslog为数据库名,rsyslog为数据库的用户,xxxxxx为该用户密码

取消下面三行注释

-----------------

$ModLoad immark

$ModLoad imudp

$UDPServerRun 514

-----------------

取消下面三行注释

TCP方式

# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

重启服务:

/etc/init.d/rsyslog restart

五、Linux客户端配置

5.1 检查rsyslog 是否安装

rpm -qa|grep rsyslog

yum install rsyslog -y

5.2 配置rsyslog 客户端发送本地日志到服务端

vi /etc/rsyslog.conf

末尾追加:

*.* @@172.16.7.91:514

注:172.16.7.91 为日志服务器端IP地址

@@ 基于TCP模式

@ 基于UDP模式

5.3 重启服务:

/etc/init.d/rsyslog restart

5.4 编辑/etc/bashrc,将客户端执行的所有命令写入系统日志/var/log/messages中。

vi /etc/bashrc #在文件尾部增加一行

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

设置其生效

source /etc/bashrc

客户端配置完毕。

六、测试Rsyslog Server是否可以正常接受Client端日志

Client 端测试:

Server 端侦测:

说明接收正常,包括你重启机器的一些Log都可以查看到。

七.安装loganalyzer

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.0.tar.gz

tar zxf loganalyzer-3.6.0.tar.gz

cd loganalyzer-3.6.0

mkdir -p /var/www/html/loganalyzer

复制loganalyzer源代码到loganalyzer目录

cp -r src/* /var/www/html/loganalyzer

cp -r contrib/* /var/www/html/loganalyzer

chown -R daemon.daemon /var/www/html/loganalyzer

通过web向导安装loganalyzer前,必须先执行以下两个脚本

cd /var/www/html/loganalyzer

sh configure.sh

sh secure.sh

chmod 666 config.php

注:该脚本实际上是创建该目录下的config.php,并配置该文件权限。

在浏览器输入网址,进入安装向导

http://172.16.7.91/loganalyzer

提示没有主配置文件,点击here利用向导生成

点击NEXT

按照如图输入配置,点击NEXT:

注:点击NEXT时若报错,后台执行如下命令后继续
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

开始写入数据库,NEXT

提示写入成功,NEXT

设置管理员账户,配置完毕NEXT

设置监控日志保存到mysql数据库中,按照如图配置后NEXT

注意:完成上述操作之后先不要点击Next,之后执行下序操作

这里的database tablesname是SystemEvents如果写错 会报下面这个错误:

完成配置,FINISH

八、Windows客户端配置

8.1.下载evtsys

http://eventlog-to-syslog.googlecode.com/files/Evtsys_4.4.3_64-Bit.zip

8.2.解压文件将包内64-Bit文件夹下的所有文件复制C:\Windows\System32下

8.3.开启evtsys服务

运行- cmd

cd c:\Windows\System32

evtsys -i -h 192.168.7.11 -p 514

net start "eventlog to syslog"

手工启动服务, 或者使用命令:net start "eventlog to syslog"启动服务

如果多机器部署的话,可以将上述三个命令写到批处理中自动执行

初次安装可能会提示

如果要卸载evtsys,则:
net stop "eventlog to syslog

evtsys -u

8.4.验证效果

如图:

FAQ:

F1:若出现

yum install php-gd* -y

/etc/init.d/httpd restart

源码包安装 http 重新编译