LAMP基于rsyslog+loganalyzer实现日志集中管理及分析

前言

作为一名运维工程师,查看分析系统日志是每天必做的功课,但每次查看日志都得一台服务器一台服务器的看,几台服务器还可以这么对付,但如果管理成百上千台线上服务器,这种方法就捉襟见肘了。于是我们就需要用到日志服务器了,但是如何能让它更直观的显示呢?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

重启服务,查看监听端口

wKioL1U7jLzyUcCcAAC8L-KSKzM881.jpg

客服端

[root@web ~]# vim /etc/rsyslog.conf

#将所有日志存放位置由本地改为日志服务器
*.info;mail.none;authpriv.none;cron.none             @172.16.10.212 #指定日志服务器

重启服务

wKiom1U7i27xHQO3AABUIOqRdwE977.jpg

服务端查看日志

wKioL1U7jOLjVP7_AACJMVkccqI371.jpg

日志接收正常,日志服务器已然可以正常工作

接下来我们让日志服务器将日志传给数据库服务器

安装所需包

[root@scholar ~]# yum install rsyslog-mysql -y #提供传输模块

查看rsyslog-mysql生成文件,将生成的数据库文件创送给数据库

wKiom1U7i5OzPod5AAD0d_LIH7A160.jpg

日志服务器配置先停一下,我们先配置数据库

数据库服务器配置

导入数据库

wKioL1U7jQyhOU2GAAJE_iGEHOo129.jpg

授权用户

wKiom1U7i7uT1_rWAACmxLpN7eQ772.jpg

数据库配置完成我们返回日志服务器

[root@scholar ~]# vim /etc/rsyslog.conf 

#添加此项
$ModLoad ommysql

#修改此项,指向数据库
*.info;mail.none;authpriv.none;cron.none  :ommysql:172.16.10.211,Syslog,rsysloguser,rsyslogpass

重启服务

wKioL1U7jS7A_LVvAABXUFXPZbY140.jpg

查看数据库中是否已有日志信息

wKiom1U7i-WDNlVcAASLcJjFgqo484.jpg

已经传送进去了,日志服务器连接数据库成功,接下来就是安装loganalyzer了

DNS服务器配置

修改正反向区域文件

正向区域文件

wKioL1U7jWfzTDZaAACyMxpLFEo703.jpg

反向区域文件

wKiom1U7jBeTXbxaAACj-QPq0fI968.jpg

检查语法,启动服务

wKioL1U7jY2TVHS7AAG1slhM-JA577.jpg

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>

提供认证文件

wKioL1U7jZ_QhMoeAABfqXPl6Ao709.jpg

准备loganalyzer

wKiom1U7jIOhcEFdAADssu0xGcc583.jpg

准备完成后需要把文件传给php服务器一份,或者php服务器也执行此操作,位置跟web服务器保持一致

检查语法,启动服务

wKioL1U7jfjjBlVHAABKHRSYlgM079.jpg

安装loganalyzer

wKioL1U7k7KCm4B4AAFzxDJ8hnY534.jpg

需要身份认证,基于用户的访问控制完成

输入用户及密码,继续

wKioL1U7lKzQdhvRAAHwKHSyGBQ898.jpg

提示没有配置文件,点击here进入安装向导

wKiom1U7k7XD3PC4AAMF9S0gPGA833.jpg

Next继续

wKioL1U7lVrARBYGAAMNW0EIsD4590.jpg

保证此文件可写,继续

wKiom1U7lC-AxINIAARxeSP4plY026.jpg

创建用户数据库,继续

wKioL1U7lhjgWfzlAARPPYvHVxk418.jpg

创建表,继续

wKioL1U7lqeAqN4vAAMWKbMdGVg855.jpg

检查SQL结果,Next

wKioL1U7lziSLWGIAAOB9yIoKkI909.jpg

创建管理用户,Next

wKiom1U7lgOAs3yDAAPhu9hF3wM255.jpg

创建日志系统,Next

wKiom1U7llOiaoE0AAOAadErp7A164.jpg

安装完成,Finish

测试loganalyzer

wKioL1U7wlrzjzQ9AAWdro11IBc245.jpg

可修改语言为中文

wKiom1U7wSHTy4AGAAWMpzza1Gg099.jpg

如果切换中文出现乱码,请修改字符集

[root@web web]# vim /web/log/include/functions_common.php #源码包的include目录
#将含有return htmlentities字段的行改为如下格式
 return htmlentities($myStr, ENT_NOQUOTES,"UTF-8");

然后登陆系统,进入Admin Center设置字符集

wKioL1U7wqPih0Q-AAMgsNxtcSU037.jpg

wKiom1U7wWLBQtiZAARKu6zn4SY216.jpg

修改后再次切换中文即可正常显示,其他功能就不一一展示了,请自行查看

The end 

好了,rsyslog+loganalyzer就说到这里了,loganalyzer查看日志还是挺直观的,是不是so easy呢,记得部署时防火墙设置相应规则,关闭防火墙的可以无视,搭建过程中遇到问题可留言。以上仅为个人学习整理,如有错漏,大神勿喷~~~

你可能感兴趣的:(lamp,rsyslog,loganalyzer)