配置使用基于mysql存储rsyslog日志信息

配置使用基于mysql存储rsyslog日志信息

 

日志对于我们来说,肯定不会陌生。每个系统应用,只要有人访问,每时每刻都会产生大量的日志,用来记录服务器应用的运行信息。以便于我们在服务有异常时进行查看,或是从日志记录中提取出应用系统的运行信息。某些电商Web网站甚至会利用日志记录去对用户的购买行为作分析,以便更好的服务于客户。     

相信大家最经常听到的日志系统就是ELK(Elasticsearch Logstash Kibana)了,ELK功能强大,但也有点复杂,所以,一般只是中大型的互联网公司所采用。对于中小型公司的我们,每天服务的访问量不是很大,产生的日志也不多,使用ELK就有点杀鸡用牛刀的意思。那,什么系统适合我们呢?答案就是rsyslog+mysql组合。采用mysql作为日志存储组件,将前方服务器所采集来的信息集中存放,统一管理,是个不错的解决方案。

本文将会重点介绍使用基于mysql存储rsyslog日志信息系统的搭建,内容如有错漏,请各位斧正。

实验环境:

前端服务器:

角色 日志收集服务器、Web服务器,且安装loganalyzer及php, IP地址:  172.16.10.1

后端服务器:

角色 日志存储服务器、MariaDB服务器,IP地址: 172.16.10.2

两台服务器均为CentOS7.2的系统,内核版本 3.10.0-327。出于演示方便,

所有软件均采用yum的方式进行安装,且初始安装假设CentOS已安装配置完毕。

以下为安装配置步骤:

 

[root@web ~]# rpm -q rsyslog

rsyslog-7.4.7-12.el7.x86_64

[root@web ~]#

 

系统默认已安装好rsyslog软件,我们只需在前端安装配套的rsyslog-mysql组件,及后端的mariadb即可。

 

先安装mariadb:

以下在后端服务器mariadb172.16.10.2中操作:

##安装mariadb

[root@mairadb /]# yum install -y mariadb mairadb-server

Installed:

  mariadb.x86_64 1:5.5.44-2.el7.centos                                                                 

 

Complete!

[root@mairadb /]#

##更改数据库默认密码

[root@mairadb /]# systemctl start mariadb

[root@mairadb /]# ss -ntlp | grep 3306

LISTEN     0      50           *:3306                     *:*                   users:(("mysqld",pid=50513,fd=14))

[root@mairadb /]#

[root@mairadb /]# mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.44-MariaDB MariaDB Server

 

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [mysql]> select user,host,password from user;

+——+———–+———-+

| user | host      | password |

+——+———–+———-+

| root | localhost |          |

| root | mairadb   |          |

| root | 127.0.0.1 |          |

| root | ::1       |          |

|      | localhost |          |

|      | mairadb   |          |

+——+———–+———-+

6 rows in set (0.00 sec)

 

MariaDB [mysql]> update user set password = password('redhat');

Query OK, 6 rows affected (0.00 sec)

Rows matched: 6  Changed: 6  Warnings: 0

 

MariaDB [mysql]> select user,host,password from user;

+——+———–+——————————————-+

| user | host      | password                                  |

+——+———–+——————————————-+

| root | localhost | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | mairadb   | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | 127.0.0.1 | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | ::1       | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

|      | localhost | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

|      | mairadb   | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

+——+———–+——————————————-+

6 rows in set (0.00 sec)

 

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [mysql]>

 

##转到web服务器

##安装rsyslog-mysql,以便使用ommysql模块

[root@web yum.repos.d]# yum install -y rsyslog-mysql

 

##创建数据库连接用户

[root@localhost /]# mysql -uroot -h172.16.10.2 -p

Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 5

Server version: 5.5.44-MariaDB MariaDB Server

 

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]> grant all on Syslog.* to 'syslog'@'172.16.%.%' identified by 'redhat';

Query OK, 0 rows affected (0.01 sec)

 

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

##创建Syslog数据库

[root@localhost /]# mysql -usyslog -h172.16.10.2 -predhat < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

 

 

 

##配置rsyslog使用ommysql模块

##在modules区块段加入

#### MODULES ####

 $ModLoad ommysql

 

 

##在rules区块段加入

#### RULES ###

##*.info;mail.none;authpriv.none;cron.none                /var/log/messages

*.info;mail.none;authpriv.none;cron.none                :ommysql:172.16.100.2,Syslog,syslog,redhat

##其中,:ommysql:172.16.10.2,Syslog,syslog,redhat代表的意思是,前面冒号中间代表的是启用mysql作为syslog的存储数据库,172.16.10.2是mysql的IP地址,Syslog是数据库名称,syslog是mysql的登录用户名,redhat是登录密码

 

##重启rsyslog服务

[root@localhost /]# systemctl restart rsyslog

[root@localhost /]#

 

##连到数据库上检查当前没有有记录

[root@localhost /]# mysql -uroot -h172.16.10.2 -predhat

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 8

Server version: 5.5.44-MariaDB MariaDB Server

 

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| Syslog             |

| mysql              |

| performance_schema |

| test               |

+——————–+

5 rows in set (0.00 sec)

 

MariaDB [(none)]> use Syslog

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [Syslog]> show tables;

+————————+

| Tables_in_Syslog       |

+————————+

| SystemEvents           |

| SystemEventsProperties |

+————————+

2 rows in set (0.01 sec)

 

MariaDB [Syslog]> select * from SystemEvents;

Empty set (0.00 sec)

 

MariaDB [Syslog]>

 

##转到mariadb的主机,先启用rsyslog的远程监听

# Provides UDP syslog reception

#$ModLoad imudp

#$UDPServerRun 514

$ModLoad imudp

$UDPServerRun 514

 

# Provides TCP syslog reception

#$ModLoad imtcp

#$InputTCPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

##重启服务

[root@localhost ~]# systemctl restart rsyslog

 

##转回www的主机

##随便做些操作,“制造”一下日志

 

 

##再查询数据库,可看到已有记录(记录太多,节选)

*************************** 49. row ***************************

                ID: 49

        CustomerID: NULL

        ReceivedAt: 2016-08-31 19:13:17

DeviceReportedTime: 2016-08-31 19:13:17

          Facility: 3

          Priority: 4

          FromHost: localhost

           Message: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway.

        NTSeverity: NULL

        Importance: NULL

       EventSource: NULL

         EventUser: NULL

     EventCategory: NULL

           EventID: NULL

   EventBinaryData: NULL

      MaxAvailable: NULL

         CurrUsage: NULL

          MinUsage: NULL

          MaxUsage: NULL

        InfoUnitID: 1

         SysLogTag: systemd:

      EventLogType: NULL

   GenericFileName: NULL

          SystemID: NULL

*************************** 50. row ***************************

                ID: 50

        CustomerID: NULL

        ReceivedAt: 2016-08-31 19:13:17

DeviceReportedTime: 2016-08-31 19:13:17

          Facility: 1

          Priority: 6

          FromHost: localhost

           Message: Installed: vsftpd-3.0.2-10.el7.x86_64

        NTSeverity: NULL

        Importance: NULL

       EventSource: NULL

         EventUser: NULL

     EventCategory: NULL

           EventID: NULL

   EventBinaryData: NULL

      MaxAvailable: NULL

         CurrUsage: NULL

          MinUsage: NULL

          MaxUsage: NULL

        InfoUnitID: 1

         SysLogTag: yum[9255]:

      EventLogType: NULL

   GenericFileName: NULL

          SystemID: NULL

50 rows in set (0.01 sec)

 

MariaDB [Syslog]>

 

##数据库存储日志成功

##下一步,再安装基于php的日志展示工具loganalyzer

##先安装好php环境

[root@www setup]# yum install httpd php php-mysql php-gd

[root@www setup]# systemctl start httpd

 

##以下一系列操作为解压loganalyzer到/var/www/html目录,执行configure.sh及secure.sh脚本,创建config.php文件

 

[root@www setup]# tar xzvf loganalyzer-3.6.6.tar.gz -C /var/www/html

[root@www html]# mv loganalyzer-3.6.6/ loganalyzer

[root@www html]# cd loganalyzer/

[root@www src]# mv * ../../

[root@www src]# cd ../contrib/

[root@www contrib]# ls

configure.sh  secure.sh

[root@www contrib]# mv * ../../

[root@www html]# rm loganalyzer/ -rf

[root@www html]# chmod +x *.sh

[root@www html]# chmod +x *.sh

[root@www html]# ./configure.sh

 

[root@www html]# ./secure.sh

[root@www html]# chmod 666 config.php

 

##至此,准备工作都已做好,打开浏览器访问www,进行后续配置

##第一步,点击Next

step1.png

##第二步,再Next

step2.png

  

##第三步,按需选择即可

step3.png

##然后,录入数据库连接用户及密码,表名称等信息

step4.png

##下一步

step5.png

##最后一步,点Finsh

step6.png

 

OK,大功告成!现在可以在web界面查看各种log信息了。

 

以上是基于mysql存储rsyslog日志信息的配置!作为初学者,我对linux的认识还是很肤浅,上述可能有不正确的地方,如有错漏,希望各位能及时指正,共同进步。

 

我的QQ153975050   小斌斌

在此感谢马哥及马哥团队,在linux的道路上引领我一直前进!

                                                                                        2016-09-2

 

原创文章,作者:马哥Net19_小斌斌,如若转载,请注明出处:http://www.178linux.com/42866

(0)
上一篇 2016-09-05 08:49
下一篇 2016-09-05 08:50

相关推荐

  • N23_第1周博客作业

    1、描述计算机的组成及其功能。     根据冯·诺依曼体系计算机有中央处理器、主存储器、输入/输出三个子系统组成。 1.中央处理器 CPU(Central Processing Unit)用于数据运算。CPU有控制单元、算数逻辑单元、寄存器组组成。 (1)控制单元:控制各个子系统操作 (2)算数逻辑单元:对数据进行逻辑、移位和算数运算 逻…

    Linux干货 2016-09-19
  • linux网络属性命令操作介绍(第十一天)

            linux网络属性常用命令有ifconfig\route\ip命令,centos7 的还是nmcli\nmtui。     网络属性的三大文件:修改DNS的文件/etc/resolv.conf  、修改网卡IP地址/etc/sysconfig/…

    Linux干货 2016-06-01
  • 小白学习Linux系统一周总结

         告别平凡,安定而又没什么前途的工作,我选择了报了门热门的计算机课程--python运维开发。我不知道为什么一开始就学Linux系统,我早预料到这是一个艰难的开始,还好我不是完全没有基础,以前有学过iOS开发。看到着终端中的“\”表示根目录,我轻微有点亲切感,不像第一次看到终端时的恐惧。我总结这周的学习感受,希…

    Linux干货 2017-09-04
  • Linux Kernel

    Linux Kernel 概述:文章将主要介绍Linux 内核的相关信息,包括内核各组成部分的详细介绍,其中有内核信息的获取命令,uname;内核模块管理类命令:lsmod,modinfo,modprobe,insomd,rmmod;ramdisk生成的相关命令,mkinitrd和dracut命令;以及linux中的两个为文件系统 /proc和/sys。最后…

    Linux干货 2016-09-19
  • N26-第一周作业

    1.    计算机由以下几个部分组成:         a. CPU:中央处理器;主要由运算器和控制器组成            …

    Linux干货 2017-01-07
  • 如何用SHELL写好网络爬虫

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1550976        上周,老大压下来任务,让写一个网络爬虫,负责爬某一个行业网站的数据信息。由于本人只会 sh…

    Linux干货 2016-08-15