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

重启服务,查看监听端口

01.jpg

客服端

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

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

重启服务

02.jpg

服务端查看日志

03.jpg

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

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

安装所需包

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

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

04.jpg

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

数据库服务器配置

导入数据库

05.jpg

授权用户

06.jpg

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

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

#添加此项
$ModLoad ommysql

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

重启服务

07.jpg

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

08.jpg

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

DNS服务器配置

修改正反向区域文件

正向区域文件

09.jpg

反向区域文件

10.jpg

检查语法,启动服务

11.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>

提供认证文件

12.jpg

准备loganalyzer

13.png

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

检查语法,启动服务

14.jpg

安装loganalyzer

15.jpg

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

输入用户及密码,继续

16.jpg

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

17.jpg

Next继续

18.jpg

保证此文件可写,继续

19.jpg

创建用户数据库,继续

20.jpg

创建表,继续

21.jpg

检查SQL结果,Next

22.jpg

创建管理用户,Next

23.jpg

创建日志系统,Next

24.jpg

安装完成,Finish

测试loganalyzer

25.jpg

可修改语言为中文

26.jpg

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

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

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

27.jpg

28.jpg

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

The end 

好了,rsyslog+loganalyzer就说到这里了,loganalyzer查看日志还是挺直观的,是不是so easy呢,搭建过程中遇到问题可留言。以上仅为个人学习整理,如有错漏,大神勿喷~~~

原创文章,作者:书生,如若转载,请注明出处:http://www.178linux.com/3662

(0)
书生书生
上一篇 2015-04-27
下一篇 2015-04-27

相关推荐

  • 硬链接和软链接的区别

    硬链接和软链接的区别 1、概念 在linux中,链接可分为两种:一种为硬链接,另一种为软链接。硬链接:ln 源文件 目标文件软链接:ln -s(soft)源文件 目标文件 硬链接 硬链接是指通过索引节点inode来进行链接。linux系统中每个文件对应一个inode,并且允许多个文件名指向用一个inode。这种情况的文件就成为硬链接。它的作用之一就是允许一个…

    Linux干货 2017-07-23
  • 实验:LAMP的php模块方式应用phpmyadm和wordpress

    实验:LAMP的php模块方式应用phpmyadm和wordpress 两台主机一台A:httpd,php一台B:mariadb server 1 A:yum httpd php php-mysql vim /etc/php.inidate.timezone = Asia/Shanghai vim /etc/httpd/conf/httpd.conf Dir…

    Linux干货 2017-10-21
  • web服务介绍(三)

    状态码分类:1xx:100-101  额外信息提示2xx:200-206  表示成功类响应3xx:300-305  重定向4xx:400-415  错误类响应码,由于客户端发送错误,如客户端请求一个根本不存在的资源5xx:500-505  错误类信息,服务器端错误,服务器本身一些问题导致请求无法成功 常用状态…

    Linux干货 2017-04-22
  • N24_小天 学习宣言

    每周安排时间看视频,每天安排时间学习并跟进课程,认真记笔记,认真写博客。多动手操作,坚持不断。学习思维,提升自己解决问题的思路。多动手,多实践。

    Linux干货 2016-10-27
  • 创建CA 和申请证书

    创建CA 和申请证书1生成私有CA的私钥:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)注:CA的私钥文件必须放在/etc/pki/CA/private/cakey.pem 这个路径里2创建序列号 ,数据库文件touch  /etc/pki/CA/index.tx…

    Linux干货 2017-07-17
  • Find命令简介与使用

    用途:         find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 语法: find [OPTION]… [查找…

    Linux干货 2016-08-30

评论列表(2条)

  • jianglw
    jianglw 2015-11-25 23:50

    Could not find the configured table,maybe misspelled or the tablenames are case sensitive
    不清楚怎么传图片,就敲了下错误提示,我反复尝试了N次都报这个错误,selinux iptables 关闭都不行
    环境 服务器(http rsyslog mysql php 在线安装),数据库已赋权,客户端连接测试OK。
    请忙帮找找问题出在哪里,万分感谢 jianglw@wyn88.com

    • 书生
      书生 2015-11-26 17:06

      @jianglw亲 不会Google么 百度都能查到 config.php的问题 一般权限问题 自行查看