码迷,mamicode.com
首页 > 其他好文 > 详细

LogAnalyzer--基于syslog的日志管理和审计平台

时间:2016-03-01 19:21:09      阅读:836      评论:0      收藏:0      [点我收藏+]

标签:rsyslog   logserver   

LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。
数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。
基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。
LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中
这里采用后者进行测试。


一、服务端

1.初始化数据库

初始化数据库,createDB.sql的脚本在rsylog的源码包的plugins/ommysql下
#mysql -uroot -p123.com </usr/local/src/rsyslog-5.6.2/plugins/ommysql/createDB.sql
#mysql -uroot -p
mysql>grant all privileges on Syslog.* to ‘rsyslog‘@‘localhost‘ identified by ‘123456‘ with grant option;
mysql>grant all privileges on Syslog.* to ‘rsyslog‘@‘%‘ identified by ‘123456‘ with grant option;
mysql>flush privileges;

也可以自己生成初始化脚本

cat > createDB.sql << EOF 
CREATE DATABASE Syslog default character set utf8;
USE Syslog;
CREATE TABLE SystemEvents
(
        ID int unsigned not null auto_increment primary key,
        CustomerID bigint,
        ReceivedAt datetime NULL,
        DeviceReportedTime datetime NULL,
        Facility smallint NULL,
        Priority smallint NULL,
        FromHost varchar(60) NULL,
        Message text,
        NTSeverity int NULL,
        Importance int NULL,
        EventSource varchar(60),
        EventUser varchar(60) NULL,
        EventCategory int NULL,
        EventID int NULL,
        EventBinaryData text NULL,
        MaxAvailable int NULL,
        CurrUsage int NULL,
        MinUsage int NULL,
        MaxUsage int NULL,
        InfoUnitID int NULL ,
        SysLogTag varchar(60),
        EventLogType varchar(60),
        GenericFileName VarChar(60),
        SystemID int NULL
) DEFAULT CHARSET=utf8;
 
CREATE TABLE SystemEventsProperties
(
        ID int unsigned not null auto_increment primary key,
        SystemEventID int NULL ,
        ParamName varchar(255) NULL ,
        ParamValue text NULL
) DEFAULT CHARSET=utf8;
EOF



2.rsyslog安装配置

服务端需要用到rsyslog的日志服务。所以服务端分二种情况,如果是6以上的系统,系统自带的默认日志服务就是rsyslog

2.1.6x系统

#yum install rsyslog-mysql  y
rsyslog-mysql 为rsyslog 将日志传送到MySQL 数据库的一个模块,这里必须安装。


2.2.5.x系统
1)通过编译安装rsyslog
#tar -zxvf rsyslog-5.6.2.tar.gz

#./configure --enable-mysql --prefix=/usr/local/rsyslog

#make && make install

修改rsyslog配置

#vim  /usr/local/src/rsyslog-5.6.2/rsyslog.conf

//配置服务端支持rsyslog-mysql 模块
$ModLoad ommysql
*.* :ommysql:172.18.2.124,syslog,rsyslog,123456
说明:localhost 表示本地主机,syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。

开启UDP服务端口获取网内其他LINUX系统日志
$ModLoad imudp.so  # provides UDP syslog reception
$UDPServerRun 514 # start a UDP syslog server at standard port 514

#复制配置文件
#cp /usr/local/src/rsyslog-5.6.2/rsyslog.conf /etc/rsyslog.conf
#关闭现有的日志服务
#service syslog stop
#chkconfig syslog off

#cp /etc/init.d/{syslog,rsyslog} #rsyslog没有启动脚本,复制syslog脚本
#sed -i s/syslog/rsyslog/g /etc/init.d/rsyslog #修改syslog字符为rsyslog
#chmod 700 /etc/init.d/rsyslog
#chkconfig --add rsyslog #添加rsyslog服务
#chkconfig rsyslog on
 
# create rsyslog bin ln
ln -sv /usr/local/rsyslog/sbin/rsyslogd /sbin/rsyslogd #创建软连结,rsyslog脚本启动的是/sbin下的rsyslogd

编辑/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
重启日志服务
# /etc/init.d/rsyslog restart

2)通过yum安装rsyslog
#yum install -y rsyslog rsyslog-mysql 

修改rsyslog配置

#vim  /etc/rsyslog.conf
配置服务端支持rsyslog-mysql 模块
$ModLoad ommysql
*.* :ommysql:172.18.2.124,syslog,rsyslog,123456
说明:localhost 表示本地主机,syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。

开启UDP服务端口获取网内其他LINUX系统日志
$ModLoad imudp.so  # provides UDP syslog reception
$UDPServerRun 514 # start a UDP syslog server at standard port 514

编辑/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

关闭现有的日志服务
#/etc/init.d/syslog stop
启动rsyslog日志服务
# /etc/init.d/rsyslog start


编辑/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

关闭现有的日志服务
#/etc/init.d/syslog stop
启动rsyslog日志服务
# /etc/init.d/rsyslog start


3)验证结果

查看/var/log/message,会发现命令行命令已经纪录到message里面

技术分享

验证数据库结果

技术分享


二、客户端

配置rsyslog 客户端发送本地日志到服务端
# vi /etc/rsyslog.conf
*.* @172.18.2.125
行尾新增上面这行内容,即客户端将本地日志发送到服务器。


编辑/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
重启日志服务
# /etc/init.d/rsyslog restart

在客户端输入任何命令,查看服务端的message日志
2015-12-24T16:38:54+08:00 test135 root: [euid=root]:root pts/0 2015-12-24 14:59 (172.18.2.238):[/root]/etc/init.d/rsyslog restart
2015-12-24T16:39:04+08:00 test135 root: [euid=root]:root pts/0 2015-12-24 14:59 (172.18.2.238):[/root]less /var/log/messages
2015-12-24T16:39:06+08:00 test135 root: [euid=root]:root pts/0 2015-12-24 14:59 (172.18.2.238):[/root]ll
2015-12-24T16:41:04+08:00 test135 root: [euid=root]:root pts/0 2015-12-24 14:59 (172.18.2.238):[/root]pwd


在服务端查看message日志,收到客户端的message日志
Dec 25 11:40:30 t123 root: [euid=root]:root pts/4 2015-12-24 16:50 (172.18.2.238):[/root]ls

mysql库里面也有响应纪录

| 18 |       NULL | 2015-12-25 11:40:57 | 2015-12-25 11:40:30 |        1 |        5 | t123      |  [euid=root]:root pts/4 2015-12-24 16:50 (172.18.2.238):[/root]ls                                                                                                                                                         |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | root:        | NULL         | NULL            |     NULL |


三、安装和使用LogAnalyzer

1、安装
#tar xvf loganalyzer-3.0.4.tar.gz

#cd loganalyzer-3.0.4

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

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

#执行脚本
#cd /var/www/html/loganalyzer/
#/bin/sh /var/www/html/loganalyzer/configure.sh
#/bin/sh /var/www/html/loganalyzer/secure.sh

#赋予权限
#chown -R apache:apache /var/www/html/loganalyzer
#启动httpd
#service httpd restart
#访问页面
http://172.18.2.125/loganalyzer


2.初始化

技术分享

技术分享

因为上面执行过脚本,所以这里config.php已经有可写的权限

#/bin/sh /var/www/html/loganalyzer/configure.sh
#/bin/sh /var/www/html/loganalyzer/secure.sh

技术分享

第三步配置数据源

技术分享

技术分享

技术分享

第六步,创建管理用户

技术分享

第七步,配置日志源

技术分享


登录http://172.18.2.125/loganalyzer 

技术分享

本文出自 “无技术不疯魔” 博客,请务必保留此出处http://s8576.blog.51cto.com/9510968/1746320

LogAnalyzer--基于syslog的日志管理和审计平台

标签:rsyslog   logserver   

原文地址:http://s8576.blog.51cto.com/9510968/1746320

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!