实现--Linux日志--存储在mysql

环境:
    1:一台Centos6当做日志服务器
   2:一台Centos7做数据库服务器

实现

一:Centos7 创建数据库

1: 安装mariadb-server

yum install mariadb-server

2: 启动服务

systemctl   start  mariadb

3: 配置数据库 用户名及密码

mysql_secure_installition
  用户名 root 密码 mashuai

二:Centos6(6.9) 增加模块 rsyslog-mysql

    rsyslog-mysql模块可以实现 日志与远端数据库进行连接

1:安装rsyslog-mysql
yum install rsyslog-mysql

2: 查看rsyslog-mysql安装列表
rpm –ql rsys-mysql

《实现--Linux日志--存储在mysql》

 cat  /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
 查看 存放日志的数据库的名字为 Syslog

3: 安装 mysql客户端
yum install mysql

三:Centos7 创建控制数据库的用户

1:登录数据库后创建

 grant all  on  Syslog.* to sysloguser@’172.16.%.%’ identified by ‘mashuai’
 用户名为  sysloguser  密码 mashuai 专门用于管理 Syslog数据库

2: 编辑 /etc/my.conf

  使跳过主机名解析
  skip_name_resolve = on

innodb_file_per_table = on
3:重启mysql 服务
systemctl restart mariadb

4:远程连接测试
在centos6上
mysql -usysloguser -pmashuai -h172.16.253.95

四:Centos6 执行rsyslog-mysql脚本

1:以sysloguser的用户登录mysql 执行脚本
mysql -usysloguser -pmashuai -h172.16.253.95 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
Syslog数据库已经创建好

2:查看Syslog数据库

《实现--Linux日志--存储在mysql》

五:Centos6 更改配置文件

更改配置文件rsyslog.conf文件,使其支持远程连接数据库

1 MODULES中增加一行
$ModLoad ommysql
2 RULES 中 更改target
*.info;mail.none;authpriv.none;cron.none :ommysql:172.16.253.95,Syslog,sysloguser,mashuai
ommysql:表示日志发往ommysql输出过滤器
172.16.253.95 表示数据库服务器地址
Syslog:数据库名
sysloguser 用户名
mashuai 密码

3 重启 rsyslog 服务
service rsyslog restart

六:测试

1:centos6 上
logger “1111111111”
tail /var/log/messages

没有新的日志记录生成

2:centos7 登录数据库(以sysloguser身份)
mysql -usysloguser -pmashuai –h172.16.253.95
use Syslog
show tables;
select count(*) from SystemEvents;

《实现--Linux日志--存储在mysql》

select * from SystemEventsG;

《实现--Linux日志--存储在mysql》

    原文作者:济贞
    原文地址: https://segmentfault.com/a/1190000010614562
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞