基于mysql数据库的日志分析系统

现如今,日志已经成为了我们分析系统及相关服务的一个重要工具。而日志也具有其相对较为固定的格式以便于进行统计查询。其大致格式如下:

日期时间            主机            进程[pid]:事件内容

我们可以通过查看/var/log/message中的内容来看一下其记录的日志格式。

0000.jpg

Linux中,使用rsyslog来记录日志,其主要具有以下几点特性:

a、多线程进程;

b、支持UDPTCPSSL/TLSRELP等多种传输协议;

c、可存储日志信息于MysqlPGSQLOracle等数据库中;

d、具有功能强大的过滤器,可实现过滤日志信息中任何部分的内容;

e、可自定义输出格式;

下面我们就首先详细了解一下rsyslog程序。

1、程序相关环境;

rsyslogCentOS发行版中为默认安装的,当然,我们也可自己手动安装,配置好yum仓库后,执行yum –y install rsyslog即可。以CentOS7为例,其生成的相关文件主要有以下这些:

配置文件:/etc/rsyslog.conf/etc/rsyslog.d/*

主程序文件:/usr/sbin/rsyslogd

模块路径:/usr/lib64/rsyslogd/

Unit File/usr/lib/system/system/rsyslog.service

2、程序配置文件

rsyslog的程序配置文件由以下三部分组成:

#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####

需要注意的是,每个配置段的配置选项都有严格的定义,所以我们在添加配置选项时,同样也需要严格按照配置段位置进行添加;我们主要看一下RULES段的主要配置。

RULES段的配置具有固定的格式,由三部分组成:

Facility.priority                        target

Facility即为日志传输的信道,包括auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,user,uucp,syslog,local0-local720类。

priority为日志的等级,包括debug,info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)几种;

target为日志的存储方式,有以下几种:

Ø  文件:将日志信息记录到指定的文件中,文件路径之前的“-”表示异步写入之意;

Ø  用户:将日志事件通知给指定的用户,一般指登录到当前系统上的所有用户的终端;

Ø  日志服务器:格式为@rsyslog_server,表示将日志信息发往指定的日志服务器;

Ø  管道:格式为|COMMAND,表示将日志通过管道传递给命令;

了解了rsyslog之后,那么我们要如何分析日志信息呢。在图像化界面下,我们可以通过一款软件loganalyzer进行分析,其需要运行于amp环境中;下面我们就搭建一个AMP+rsyslog+loganalyzer环境;

1、安装AMP+rsyslog环境

yum –y install httpd php php-mysql mariadb-server rsyslog ryslog-mysql

2.配置mysql相关用户与数据

    a、启动mysql服务

systemctl start mariadb.service

         b、运行mysql初始化设置;

mysql_secure_installation

         c、创建mysql数据库与账号;

mysql -u root -pmageedu < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
mysql> grant all on Syslog.* to ‘rsyslog’@’localhost’ identified by ‘mageedu’;
mysql> grant all on Syslog.* to ‘rsyslog’@’127.0.0.1’ identified by ‘mageedu’;
mysql> flush privileges;

3、配置rsyslog配置文件;

vim /etc/rsyslog/rsyslog.conf

MODULES下添加:$ModLoad        ommysql

RULES下添加:*.*                            :ommysql:127.0.0.1,Syslog,rsyslog,mageedu

4loganalyzer相关配置;

         a、解压loganalyzer安装包;

tar xf loganalyzer-3.6.5.tar.gz

         b、复制解压目录下src目录至/var/www/html目录;

cp –r loganalyzer-3.6.5/src /var/www/html

         c、创建软链接;

ln -sv /var/www/html/loganalyzer /var/www/html/log

         d、在/var/www/html/log目录中创建config.php并修改权限为666

cd /var/www/html/log
touch config.php
chmod 666 config.php

         e、为apache用户设置acl权限;

setfacl -m u:apache:rwx /var/www/html/loganalyzer-3.6.5

   f、设置防火墙并启动各服务

         5、在浏览器中访问httpd服务并安装loganalyzer

      111.jpg

222.png

至此,我们就搭建完成了amp+rsyslog+loganalyzer服务。

 

 

 

 

 

 

 

 

 

 

 

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

(0)
luoliumengluoliumeng
上一篇 2016-10-23 20:05
下一篇 2016-10-23

相关推荐

  • 行编辑器sed的应用

    sed sed:Stream EDitor,行编辑器 sed是一种流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中, 称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后, 把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没 有改变,除非你使用重定向存储输出。 se…

    Linux干货 2016-08-10
  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2017-02-24
  • scp命令

    scp命令: 基于ssh连接完成复制   scp  [options]  SRC…  DEST/ scp  [options]  SRC  DEST   存在两种使用情形: PULL获取:  scp  [options]  [user@]host:/PATH/TO/SOMEFILE   /PATH/TO/SOMEFILE PU…

    Linux干货 2017-10-21
  • 系统基础之shell脚本编程详解2

    shell脚本编程2:   在上节我们介绍了shell脚本编程,但只是介绍了基础的内容,下面将为大家介绍shell的脚本的高级用法,判断与循环.判断分为两种:if语句和case语句;循环分为三种:for语句,while语句,until语句,select语句 判断语句:  在脚本的编写中,我们要使用大量的数据和命令,但对于使用的数据,我们要…

    Linux干货 2016-08-19
  • N25-第9周博客作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # 统计登录用户和非登陆用户的个数 # author: han declare -i loginnum=0 declare -i nologinnum=0 whil…

    Linux干货 2017-03-10