loganalyzer的安装使用

rsyslog server的创建


一、为什么要建rsyslog

    当我们有多台服务器需要记录日志时,分开的日志记录不便于分析,这时就需要用到集中式存储与分析。rsyslog支持把日志存储于mysql中,便于集中式存储与分析。


    我们这里是从最基础的开始做起:先是建立rsyslog与mysql结合,建立rsyslog server,完成集中式存储与分析。然后为了比较分析的方便,加入loganalyzer,让分析比对更方便明了。


    mysql性能是有限的,适用于小级别的日志信息,可能瓶颈:消耗磁盘I/O;

中小级别的日志系统不宜用此方式,用elk还是比较好用的,比如web日志;

大并发量(每秒数千成万)既不适用mysql,也不适用elk,用分布式mangodb、hbase等nosql中才合理,如facebook、google级别。    


二、loganalyzer简介


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

    

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


三、loganalyzer的安装使用

    (这一部分都是在服务器主机上操作) 

    我们这里是先实现rsyslog与mysql的结合,然后再与loganalyzer的结合,所以,一开始没有先构建好lamp。如果一开始就确定要使用loganalyzer,直接先构建lamp,再将rsyslog的日志数据存储指向mysql也是可以的。

   

(1) 有可用的MySQL服务器;

[root@blue_c ~]# yum install -y mysql-server

Installed:

 mysql-server.x86_64 0:5.1.73-3.el6_5                                          

Dependency Installed:

 mysql.x86_64 0:5.1.73-3.el6_5       perl-DBD-MySQL.x86_64 0:4.013-3.el6 

共安装了三个包,如果没法yum安装,就手动下载这三个包安装也可

[root@blue_c ~]# chkconfig | grep mysqld

mysqld         0:off 1:off 2:off 3:off 4:off 5:off 6:off

# chkconfig mysqld on

[root@blue_c ~]# chkconfig | grep mysqld

mysqld         0:off 1:off 2:on 3:on 4:on 5:on 6:off

(2) 安装rsyslog-mysql程序包;

[root@blue_c ~]# yum install -y rsyslog-mysql

……

Installed:

 rsyslog-mysql.x86_64 0:5.8.10-8.el6                                           

Complete!

[root@blue_c ~]# rpm -ql  rsyslog-mysql

/lib64/rsyslog/ommysql.so

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

/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

[root@blue_c ~]# 

安装的包,及生成的文件,主要就是生成了ommysql模块和createDB.sql。其中后者在下一步建日志数据库时会用到。


(3) 创建rsyslog依赖的数据库;


先启动mysqld服务器再创建

[root@blue_c ~]# service mysqld start

[root@blue_c ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

createDB.sql是一个创建日志数据库的脚本;创建的表名为Syslog、SystemEvents、SystemEventsProperties。

[root@blue_c ~]# mysql

wKiom1VVTHGyUtY_AAIUVVll3T0840.jpg

(4) 修改配置文件 /etc/rsyslog.conf

① 配置rsyslog启用ommysql模块;

# vim /etc/rsyslog.conf
#### MODULES ####
顶格添加如下行
$ModLoad ommysql

(ommysql这个名字怎么来的,请参阅 # man rsyslogconf中的MODULES部分)

② 定义某facility把日志记录至指定的数据库的指定表中;

#### RULES ####
*.info;mail.none;authpriv.none;cron.none              :ommysql:127.0.0.1,Syslog,monitor,123456

wKiom1VVTIvzFPcAAALlzuWaZlw571.jpg

(5) 在mysql中,授权rsyslog用户可以访问使用数据库


mysql> GRANT ALL ON Syslog.* TO ‘monitor’@‘127.0.0.1’ IDENTIFIED BY ‘123456’;
mysql> GRANT ALL ON Syslog.* TO ‘monitor’@‘localhost’ IDENTIFIED BY ‘123456’;
mysql> FLUSH PRIVILEGES;
# service rsyslog restart

这时设置的*.info;mail.none;authpriv.none;cron.none就会记录到mysql数据库中而不是原来的/var/log/messages中了


(6)验证并查看日志:


(这时就可以开始记录了,yum安装或删除一个程序包就可以有记录了)

wKioL1VVTiCT8D7dAAOlssUKb78148.jpg

mysql> use Syslog
mysql>  SELECT * FROM SystemEvents\G;

wKiom1VVTL3zuz9OAAJvBli0G1E322.jpg


(7) 可选:使用loganalyzer (WebGUI)来展示日志信息;

依赖:lamp组件;

[root@blue_c ~]# yum install -y httpd php php-mysql php-gd
……
Installed:
  httpd.x86_64 0:2.2.15-39.el6.centos   php.x86_64 0:5.3.3-38.el6   php-gd.x86_64 0:5.3.3-38.el6   php-mysql.x86_64 0:5.3.3-38.el6  
Dependency Installed:
  libXpm.x86_64 0:3.5.10-2.el6                                      php-pdo.x86_64 0:5.3.3-38.el6                                     
Complete!

下载loganalyzer,并展开至网页DocumentRoot下(这里以loganalyzer-3.6.5为例)

[root@blue_c ~]# lftp 172.16.0.1:/pub/Sources/sources/loganalyzer> 
lftp 172.16.0.1:/pub/Sources/sources/loganalyzer>  get loganalyzer-3.6.5.tar.gz
[root@blue_c ~]# tar xf loganalyzer-3.6.5.tar.gz -C /var/www/html/
[root@blue_c html]# cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
[root@blue_c html]# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer
[root@blue_c html]# cd /var/www/html/loganalyzer
[root@blue_c loganalyzer]# chmod +x configure.sh secure.sh
[root@blue_c loganalyzer]# ./configure.sh
[root@blue_c loganalyzer]# ./secure.sh
[root@blue_c loganalyzer]# chmod 666 config.php
[root@blue_c loganalyzer]# chown -R apache.apache ./*

访问:http://SERVER_IP/loganalyzer/install.php

wKiom1VVTOqxaGyTAAII5LMBCbQ087.jpg

 wKioL1VVToDQ-z5yAAK8qAgMnt4253.jpg

wKiom1VVTQjjIOKWAAGLpeEjtkU133.jpg

wKioL1VVToTzIAlUAAGQ-zDTGpc988.jpg

wKiom1VVTQ3CO5dnAALdyTGs6pQ556.jpg

wKioL1VVTonBx80hAAHEjT_aNhs289.jpg




四、构建rsyslog server


(一)在日志服务器上的操作:


    1、日志服务器按照上面配置好。

    2、编辑配置文件,打开日志服务器的监听端口:

[root@blue_c conf]# ss -unl | grep 514
[root@blue_c conf]# vim /etc/rsyslog.conf
[root@blue_c conf]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[root@blue_c conf]# ss -unl | grep 514
UNCONN     0      0                         *:514                      *:*     
UNCONN     0      0                        :::514                     :::*

          


  wKioL1VVTuCAT1hKAAJKdH-anos613.jpg



(二)在日志记录需求的客户端的操作:


① 需要先在客户端主机上设置好配置文件,并重启日志服务。


     首先确定哪些日志需要发往远程主机记录,然后将需要有日志服务器代为记录的 target填写为服务器地址:

 

[root@holding ~]# vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none    @172.16.20.97

wKioL1VVTyqANEIBAAFhk4FrFBU543.jpg

[root@holding ~]# service rsyslog restart

② 配置完毕,可以测试使用

 在客户端安装一个程序包

[root@holding ~]# yum install -y zsh
……
Installed:
  zsh.x86_64 0:4.3.10-7.el6                                                                                                           
Complete!

查看日志服务器的loganalyzer:

        wKiom1VVTcOiVN-rAAKhe9ZltqQ852.jpg