文章来源:CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一、简介
LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。
LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。
LogAnalyzer 采用PHP开发,所以日志服务器需要PHP的运行环境,本文采用LAMP。
二、系统环境
Rsyslog Server OS:CentOS 6.5
Rsyslog Server IP:192.168.1.107
Rsyslog 版本:rsyslog-5.8.10-8.el6.i686
LogAnalyzer 版本:LogAnalyzer 3.6.5 (v3-stable)
LAMP 版本:httpd-2.2.15-30.el6.centos.i686 + MysqL-5.1.73-3.el6_5.i686 + PHP-5.3.3-27.el6_5.i686
防火墙已关闭/iptables: Firewall is not running.
SELINUX=disabled
Rsyslog Client OS:RHEL 6.4
Rsyslog Client IP:192.168.1.108
三、安装并设置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 'abc123'
3.4 测试PHP运行环境
# cd /var/www/html/
[root@TS html]# cat > index.PHP <<EOF
> <?PHP
> PHPinfo();
> ?>
> EOF
打开浏览器访问:http://192.168.1.107/index.php
四、检查并安装服务器端软件
4.1 检查是否安装了rsyslog软件
# rpm -qa|grep rsyslog //默认系统都安装了该软件
4.2 安装rsyslog 连接MySQL数据库的模块
# yum install rsyslog-mysql –y
rsyslog-mysql 为rsyslog 将日志传送到MySQL 数据库的一个模块,这里必须安装。
五、配置服务器端
5.1 导入rsyslog-mysql 数据库文件
# cd /usr/share/doc/rsyslog-mysql-5.8.10/
# mysql -uroot -pabc123 < createDB.sql
# mysql -uroot –p
mysql> show databases;
mysql> show tables;
导入数据库操作创建了Syslog 库并在该库中创建了两张空表SystemEvents 和SystemEventsProperties。
5.2 创建rsyslog 用户在mysql下的相关权限
mysql> grant all on Syslog.* torsyslog@localhostidentified by '123456';
MysqL> flush privileges;
MysqL> exit
5.3 配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其他LINUX系统日志
# vi /etc/rsyslog.conf
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,123456
在 #### MODULES #### 下添加上面两行。
说明:localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。
5.4 开启相关日志模块
$ModLoad immark #immark是模块名,支持日志标记
$ModLoad imudp #imupd是模块名,支持udp协议
$UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志
# /etc/init.d/rsyslog restart
六、配置客户端
6.1 检查rsyslog 是否安装
# rpm -qa|grep rsyslog
6.2 配置rsyslog 客户端发送本地日志到服务端
*.* @192.168.1.107
行尾新增上面这行内容,即客户端将本地日志发送到服务器。
6.3 重启rsyslog 服务
6.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 端测试:
八、安装LogAnalyzer
# wgethttp://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz
# tar zxf loganalyzer-3.6.5.tar.gz
# cd loganalyzer-3.6.5
# mkdir -p /var/www/html/loganalyzer
# rsync -a src/* /var/www/html/loganalyzer/
9.1 打开浏览器访问:http://192.168.1.107/loganalyzer/
9.2 第一步,测试系统环境
提示错误:缺少config.PHP 文件,并且权限要设置为666,可以使用contrib目录下的configure.sh 脚本生成。
需要在/var/www/html/loganalyzer/ 下创建config.PHP 文件,并设置其权限为666。
# touch /var/www/html/loganalyzer/config.PHP
# chmod 666 /var/www/html/loganalyzer/config.PHP
做完上面的操作之后,执行 ReCheck 操作,config.PHP 文件可写,点击 Next 进入下一步。
在User Database Options 中,填入上面设置的参数,然后点击 Next.
9.4 第四步,创建表
9.5 第五步,检查sql结果
LogAnalyzer 首页
点击任何一条记录,查看详情。
登录测试