前言
作为一名运维工程师,查看分析系统日志是每天必做的功课,但每次查看日志都得一台服务器一台服务器的看,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉襟见肘了。于是我们就需要用到日志服务器了,但是如何能让它更直观的显示呢?loganalyzer是一个不错的选择,本文将讲解如何使用rsyslog+loganalyze实现日志统一管理及分析。
简介
LogAnalyzer是一款syslog日志和其他网络事件数据的Web前端,它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。
部署过程
环境介绍
系统环境:CentOS6.6
rsyslog:系统自带
loganalyzer:loganalyzer3.6.5(含中文语言包)
web服务器:172.16.10.100(httpd-2.4.9,同为日志客户端)
php服务器:172.16.10.110(php-5.5.26)
数据库服务器:172.16.10.211(MariaDB-5.5.36)
日志服务器:172.16.10.212
DNS服务器:172.16.10.10
日志服务器及客户端配置
服务器端
[root@scholar ~]# vim /etc/rsyslog.conf # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
重启服务,查看监听端口
客服端
[root@web ~]# vim /etc/rsyslog.conf #将所有日志存放位置由本地改为日志服务器 *.info;mail.none;authpriv.none;cron.none @172.16.10.212 #指定日志服务器
重启服务
服务端查看日志
日志接收正常,日志服务器已然可以正常工作
接下来我们让日志服务器将日志传给数据库服务器
安装所需包
[root@scholar ~]# yum install rsyslog-mysql -y #提供传输模块
查看rsyslog-mysql生成文件,将生成的数据库文件创送给数据库
日志服务器配置先停一下,我们先配置数据库
数据库服务器配置
导入数据库
授权用户
数据库配置完成我们返回日志服务器
[root@scholar ~]# vim /etc/rsyslog.conf #添加此项 $ModLoad ommysql #修改此项,指向数据库 *.info;mail.none;authpriv.none;cron.none :ommysql:172.16.10.211,Syslog,rsysloguser,rsyslogpass
重启服务
查看数据库中是否已有日志信息
已经传送进去了,日志服务器连接数据库成功,接下来就是安装loganalyzer了
DNS服务器配置
修改正反向区域文件
正向区域文件
反向区域文件
检查语法,启动服务
web服务器配置
loganalyzer作为日志的web前端,应该只允许管理员访问,所以我们做一个基于用户的访问控制
我们本次使用虚拟主机,当然也可以使用中心主机,这个随意
[root@web ~]# vim /etc/httpd24/httpd.conf #关闭中心主机 #DocumentRoot "/usr/local/apache/htdocs" #启用虚拟主机 Include /etc/httpd24/extra/httpd-vhosts.conf
配置虚拟主机
[root@web ~]# vim /etc/httpd24/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/web/log" ServerName log.scholar.com ProxyRequests Off #关闭正向代理 ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.10.110:9000/web/log/$1 #代理至php服务器 <Directory "/web/log"> Options none AllowOverride AuthConfig AuthType Basic #认证方式 AuthName "Log Area." #质询时弹出的提示信息 AuthUserFile /etc/httpd24/.htpasswd #用户账号密码存放位置 Require valid-user #所有合法用户都可访问,也可用定义单用户及组认证 </Directory> </VirtualHost>
提供认证文件
准备loganalyzer
准备完成后需要把文件传给php服务器一份,或者php服务器也执行此操作,位置跟web服务器保持一致
检查语法,启动服务
安装loganalyzer
需要身份认证,基于用户的访问控制完成
输入用户及密码,继续
提示没有配置文件,点击here进入安装向导
Next继续
保证此文件可写,继续
创建用户数据库,继续
创建表,继续
检查SQL结果,Next
创建管理用户,Next
创建日志系统,Next
安装完成,Finish
测试loganalyzer
可修改语言为中文
如果切换中文出现乱码,请修改字符集
[root@web web]# vim /web/log/include/functions_common.php #源码包的include目录 #将含有return htmlentities字段的行改为如下格式 return htmlentities($myStr, ENT_NOQUOTES,"UTF-8");
然后登陆系统,进入Admin Center设置字符集
修改后再次切换中文即可正常显示,其他功能就不一一展示了,请自行查看
The end
好了,rsyslog+loganalyzer就说到这里了,loganalyzer查看日志还是挺直观的,是不是so easy呢,记得部署时防火墙设置相应规则,关闭防火墙的可以无视,搭建过程中遇到问题可留言。以上仅为个人学习整理,如有错漏,大神勿喷~~~