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
(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
(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安装或删除一个程序包就可以有记录了)
mysql> use Syslog mysql> SELECT * FROM SystemEvents\G;
(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
四、构建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 :::*
(二)在日志记录需求的客户端的操作:
① 需要先在客户端主机上设置好配置文件,并重启日志服务。
首先确定哪些日志需要发往远程主机记录,然后将需要有日志服务器代为记录的 target填写为服务器地址:
[root@holding ~]# vim /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none @172.16.20.97
[root@holding ~]# service rsyslog restart
② 配置完毕,可以测试使用
在客户端安装一个程序包
[root@holding ~]# yum install -y zsh …… Installed: zsh.x86_64 0:4.3.10-7.el6 Complete!
查看日志服务器的loganalyzer: