前言:日志是一个重要的信息库,如何高效便捷的查看系统中的日志信息,是系统管理员管理系统的必备的技术。

实现方式:

   1、将日志存储于数据库。

   2、采用LAMP架构,搭建PHP应用,通过web服务访问数据库,提取日志信息,展现到web页面。

基本结构图:

6cc1425f1da362c58aa0e107d43a137a.png

一、搭建日志服务器

    系统默认就已经安装了rsyslog服务,该服务是日志统计,并进行整理的应用。

    1、  查看rssylog服务的状态

        service rsyslog status

b8bda50f7d7ff7456270346094cfa807.png

    2、  安装rsyslog-mysql

        yum install rsyslog-mysql

        查看rsyslog-mysql提供的文件

        rpm –ql rsyslog-mysql

    创建日志数据库的脚本会在创建数据库时候使用。需要拷贝到数据库服务器。

a1592e9e77b0234d34b7ec85aa5ade78.png

    3、  修改rsyslog服务的配置文件,使其支持将日志存储到数据库中

    在进行配置之前,我们需要首先规划一下数据库,小编为了使结构清晰,所以将数据库的配置和日志服务器的配置分开来写,我们先规划一下数据库中,我们要如下准备:

        1)   创建的有数据库Syslog

        2)   创建一个用户loguser 密码为jiake

        3)   将Syslog的数据库全部权限授权给用户loguser

        以上这些等会在数据库中会进行操作。定义以上的数据信息是为了对rsyslog的配置文件的进行修改。

        vim/etc/rsyslgo.conf

        修改如下图所示:

0bfdf7d990ea08b0b4648e72651e0c76.png

    4、 重启rsyslog服务

        service rsyslog restart

二、搭建日志数据库

    小编这里采用的是centos6,所以需要安装mysql-server,在centos7上,安装的数据库是mariadb-server

    1yum install mysql-server

    2、运行数据库初始化安全脚本

        mysql_secure_installation

    (Centos6上使用的是mysql-server,在安装完mysql-server之后,需要创建一个/etc/mysql的目录,将/usr/share/mysql/目录下自带的配置文件模板复制到/etc/mysql/下并改名为my.cnf,接着运行安全脚本mysql_secure_installation)

    3、创建存储日志信息的数据库

    将在日志服务器上安装后生成的创建数据库的脚本拷贝过来,createDB.sql

        mysql –uroot –pjiake < createDB.sql

4、登录进数据库

    mysql –uroot –pjiake

    5、 创建管理Syslog数据库的用户,并为该用户授权

    grant all on Syslog.* to ‘jiake’@’%’ identified by ‘jiake’;

    该SQL语句直接授权并创建用户。

    % 其实应该是指向日志服务器的地址,意为允许日志服务器通过该用户连接到数据库。根据上面得结构图,我们看出,需要两个用户,分别为日志服务器、web网页管理服务器提供用户,可以使两个服务器通过某用户可以管理并查看数据库中的日志存储信息,我们可以指明两个用户,将用户的地址分别指向日志服务器和web服务器。这里小编为了方便,所以指定了泛地址,这样两个服务器都可以通过该地址进行连接,但为了安全考虑,真实的生产环境中,并不建议这么做。


    6、  查看创建成功的数据库授权用户以及创建成功的日志数据库。

    查看数据库中的用户:

    Select user,host,password from mysql.user;

440fbd23e3f3213caf7ecf8410910578.png

    查看创建的数据库中的表:

        Use Syslog

        Show tables;

5eca02c9e93fdaba895636e698e37927.png


    7、 测试

      1)在日志服务器上进行如下测试:

        logger  “This is mail”

      2)在数据库中进行查看

        Select * from Syslog.SystemEvents\G;    

        如下图所示:

561f80f1aaab864503e22c9cafb8c572.png

三、搭建web服务器

    搭建web服务器需要安装httpd,以及PHP,这里小编就不详细介绍其工作原理了,在小编的另一篇问文章中有介绍:

    http://jk6627.blog.51cto.com/12002684/1975354

    1、yum install httpd

    2、yum install php

    3、启动httpd服务

        service httpd start

7fb3a911ea190308ee12280aa9fd1190.png

    4、下载日志管理管理软件包       

    http://loganalyzer.adiscon.com/downloads/

        下载loganalyzer

    5、解压到web主站点目录下

        tar xvf loganalyzer-4.1.5.tar.gz

        cp –a loganalyzer-4.1.5/src/var/www/html/log

e7252f9bac969775380e4c69dddf46d0.png

3633c1c3304d09745fd1ec53e5c07529.png

64ea4879959822d2b0c07d1938b4eab0.png

    6、连接测试

d01885697d35d3e1bd7c1c14d8f2797c.png

b6c6fd6a4c51f2ffd40773adc11167f5.png

f2827aa24b2924f0669f66a3062e23bd.png

71d1ff0eebd81eef8c89d9b288fc30d9.png

a3387256816218ebd72aef2c3bec83a2.png

717206c84bf22eb128610d6f4a36af27.png

40cf2b63f8d5e83a5712fa47306ac7de.png

五、实验总结

    1、   做本实验的时候一定要保证环境可用,关闭iptables、selinux。

    2、   数据库管理用户有两部分组成,一部分是用户名,一部分是主机的地址,该地址是指定的登录的主机的地址,一定要注意。

    3、   如果不能够远程连接数据库,先保证两台主机可以相互ping通,查看地址指向是否正确。

    4、   Web服务端最好使用php模块方式,不要使用php-fpm独立进程,该独立进程有时候配置的时候一不小心会出现一些错误,导致不能够连接到数据库,其次,该进程的兼容性不是很好。

    5、   一定要在解压并且复制到主站点下的源目录中,创建一个config.php的空文件,该文件是为了在web端进行设置时,存入配置信息的,远程连接的数据库的信息都在改文件中,可以考虑后期将该文件的权限修改为644。