需求篇
公司最近因为审核需要部署一台中心日志服务器,其实为什么要部署日志服务器呢?
1) 主要是为了方便统一查看公司所有服务器的日志,并且写入到数据库中,进行web显示方便的查看;
2) 可以起到一定的安全作用,,如果黑客攻击之后,clear history的时候,我们也是可以查看的;
3) 另外,如果服务器出现故障无法使用的时候,我们也是可以追踪到日志信息;
Loganalyzer 是一个syslog和其他网络事件数据的web前端工具,提供简单易用的日志浏览,搜索和基本分析以及图标显示。采用PHP开发的。
软件
软件名称 |
版本 |
作用 |
Centos |
5.8 |
操作系统 |
Rsyslog/rsyslog-mysql |
3.22.1-7.e15 |
收集日志 |
apache |
httpd-2.2.3-63.el5.centos |
Web前端显示 |
mysql |
5.0.95-5.el5_9 |
用于记录收集到的日志 |
Php |
5.1.6-44.el5_10 |
Php环境,因loganalyzer |
loganalyzer |
loganalyzer-3.6.5 |
分析日志工具 |
日志服务器的安装部署
安装LAMP环境,如果安装了LAMP环境,就安装rsyslog-mysql;
或者
第一步: 首先关闭防火墙
Chkconfig –level 3 iptables off
Chkconfig –level 5 iptables off 重启之后,永久关闭了防火墙
Service iptables stop 临时关闭防火墙
第二步,配置/etc/sysconfig/rsyslog
修改成如图所示,打开接受外来日志的功能,配置完需要重启服务service rsyslog restart
不过,系统默认是用syslog来收集日志,所以,之前要把syslog服务关闭,且要修改/etc/sysconfig/syslog文件如下图:
Service syslog stop
第三部,配置rsyslog.conf
把图片中非注释的信息,全部加入到/etc/rsyslog.conf,其他的信息全部用#注释掉
注解:$UDPServerRun 514 开启监听端口514,从此端口接受客户端日志
*.* :ommysql:localhost,Syslog,root,pass
Localhost:当mysql与rsyslog为同一台机器的时候,表示本机
Syslog 表示mysql日志数据库
Root 表示为mysql用户
Pass 表示为mysql密码
我的截图中没有体现出mysql的密码,因为我的密码为空的。
Service rsyslog restart
第四步,导入数据库
注:在此重复一下,因为我的mysql账号是没有密码的,所以-p没加,CreateDB.sql文件可自动创建Syslog数据库;
数据库名:Syslog
数据表名:SystemEvents
第五部,安装loganalyzer日志分析工具
注:/var/www/html/syslog为web服务器主目录
创建config.php配置文件
# cd /var/www/html/syslog
# touch config.php
# chmod 666 config.php
启动httpd:
#service httpd start
第六部,日志客户端安装
#vi /etc/rsyslog.conf
*.* @rsyslog-server服务器的IP地址 表示把日志远程传输到日志服务器上。
#service rsyslog restart
第七部,Loganalyzer详细配置
1) 点此创建配置文件
2) 测试校验文件
3) 测试config文件是否可写
4) 基本配置
5) 创建数据表
6) 测试数据库导入结果
7) 设置登录账号密码
8) 添加数据源,此处源类型为磁盘文件,/var/log/messages,因为/var/log文件夹下数据均为只读,所以添加可读权限#chmod a+r /var/log/messages。这里测试是使用了本地文件信息,
如果是数据库的,可以进入控制台;添加数据库源。
9) 完成设置向导
10) 新增数据源
11) 添加secure日志
12) 切换数据源,secure和messages
13) 修改主机名以便区分不同主机的数据;
常见问题:
广告一下:我的淘宝店铺:http://109572811.taobao.com