工具研发者介绍

贺春旸, 凡普金科和爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。四次荣获dbaplus年度MVP,致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。本文摘自作者即将发布的新书《MySQL运维进阶指南》,敬请期待。

工具下载:

https://loganalyzer.adiscon.com/download/

数据库审计日志平台简介

数据库审计日志平台(简称DB Audit),旨在实时记录用户操作数据库的行为,对操作进行细粒度审计的合规性管理,并对数据库遭受的风险行为进行实时告警。平台通过对用户访问数据库行为的记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。

目前有两种技术方案:

第一种: 部署在数据库服务器所在的网络,采用旁路监听方式截取用户访问数据库的TCP头报文,该系统是由数据采集、数据处理和安全检测三个模块组成。

第二种: 依赖于开启MariaDB Audit Plugin插件的审计方法,存在的弊端是数据库审计功能的开启会影响数据库本身的性能、审计日志以txt文本格式存放在本地磁盘里,对于审计数据的挖掘和迅速定位是个棘手问题。

在MariaDB 10.6版本里,可以通过使用Rsyslog日志系统将审计日志汇总至一台专用的MySQL数据库里,并且可以自定义事件记录,比如我们想追溯某时刻谁误删除了数据,可以禁止记录select查询操作,然后借助Loganalyzer做展示,架构如下图所示:

注: LogAnalyzer是一款syslog日志和其它网络事件数据的Web前端,提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。

审计日志数据从专用存放syslog的数据库中获取,所以LogAnalyzer不需要改变现有的架构。通过对数据库的SQL语义分析,提取出SQL中相关的要素(用户、SQL操作、表、字段、时间)实时监控来自各个层面的所有数据库活动(包括来自应用系统发起的数据库操作请求、来自数据库客户端工具的操作请求,以及通过远程登录服务器后的操作请求等),让管理人员对用户的行为一目了然,真正做到数据库操作行为可监控、违规操作可追溯。

本文以第二种方案进行介绍,借助LogAnalyzer打造轻量级数据库审计日志平台。

部署步骤

环境概述:

  1. MySQL/MariaDB主库安装Audit Plugin插件;

  2. MySQL/MariaDB主库配置Rsyslog使用ommysql模块;

  3. 准备一台专用存放syslog审计日志的MySQL数据库服务器;

  4. 准备LAMP环境,运行web可视化日志分析软件LogAnalyzer,可与专用存放syslog审计日志的MySQL数据库服务器部署在一起。

数据库审计日志平台部署:

1、要启用MySQL/MariaDB主库节点的审计,我们首先需要将 MariaDB审计插件server_audit.so文件复制到每个服务器的插件目录中,然后可以在所有节点上加载插件。

MySQL>  INSTALL PLUGIN server_audit SONAME 'server_audit.so';

2、配置审计插件: MariaDB审计插件还支持使用Rsyslog来记录事件。Rsyslog本身为我们提供了很多选项,其中之一是将日志条目转发到远程Rsysog进程。为了能够使用本地syslog,我们需要更改参数变量server_audit_output_type的值。

MySQL>  SET GLOBAL server_audit_output_type = syslog;

3、由于我们只想转发由MariaDB审计插件创建的syslog日志,我们将使用变量 server_audit_syslog_facility来为syslog配置过滤器。

MySQL>  SET GLOBAL 
server_audit_syslog_facility = LOG_LOCAL6;

4、想追溯某时刻谁误删除误更改了数据,我们可以禁止记录select查询操作,需要更改参数变量server_audit_events的值。

MySQL>  SET GLOBAL server_audit_events = 'QUERY_DDL ,
QUERY_DML_NO_SELECT';

只会记录增删改、DDL操作。

5、开启审计日志的记录。

MySQL>  SET GLOBAL server_audit_logging = 1;

6、安装Rsyslog连接至MySQL的驱动模块: 现在为MariaDB审计插件已经配置完毕。我们可以启用审计,但它只会写入本地系统日志/var/log/messages文件里,无法推送远程专用存放syslog审计日志的MySQL数据库服务器里。

Shell>  yum install rsyslog-mysql -y

7、在专用存放syslog审计日志的MySQL数据库准备syslog的用户账号。

MySQL>  GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' 
IDENTIFIED BY 'rsyslogpass';
MySQL>  GRANT ALL ON Syslog.* TO 'rsyslog'@'%' 
IDENTIFIED BY 'rsyslogpass';

8、生成存放syslog数据的库和表。

Shell>  rpm -ql  rsyslog-mysql
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sqlShell>  mysql  -h127.0.0.1  -ursyslog  -prsyslogpass
            <  /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

9、配置Rsyslog使用ommysql模块,将所期望的日志信息记录于MySQL数据库中。

Shell>  vim /etc/rsyslog.conf
#### MODULES ####......$ModLoad imudp           #加载udp的模块
$UDPServerRun 514         #允许接收udp 514的端口传来的日志
$ModLoad imtcp           #加载tcp的模块
$InputTCPServerRun 514        #允许接收tcp 514的端口传来的日志
$ModLoad ommysql          #加载mysql的模块

10、配置RULES,将所期望的日志信息记录于专用存放syslog审计日志的MySQL数据库服务器。

Shell>  vim /etc/rsyslog.conf
#### RULES ####
$ActionOmmysqlServerPort  3306
local6.*       :ommysql:192.168.198.239,Syslog,rsyslog,rsyslogpass

注: 192.168.198.239这个IP,是syslog审计日志MySQL服务器地址, 3306是MySQL端口号,ryslog是库名,ryslog是用户名,rsyslogpass是密码。

11、重启rsyslog服务。

Shell>  systemctl restart rsyslog

至此rsyslog服务已经配置完毕。在MySQL/MariaDB主库上执行增删改、DDL操作,就会把审计日志推送至syslog审计日志MySQL服务器的Syslog库systemevents表里。

12、安装web可视化的日志分析软件loganalyzer。

Shell>  yum -y install httpd php php-mysql php-gd
Shell>  systemctl start httpd.service
Shell>  cd /var/www/html/
Shell>  wget
https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz
Shell>  tar  zxvf  loganalyzer-4.1.12.tar.gz
Shell>  mv  loganalyzer-4.1.12  loganalyzer
Shell>  touch  loganalyzer-4.1.12/src/config.php
Shell>  chmod  755  loganalyzer-4.1.12/src/config.php

打开浏览器,配置loganalyzer软件,输入网址: http://yourip/loganalyzer/src/install.php

  • source type:选MYSQL Native

  • select view:选Syslog Fields

  • Table type:选MonitorWare

  • database host:127.0.0.1

  • database name:Syslog

  • database tablename:SystemEvents

  • database user:syslog

  • database password:写上之前你设定的sysylog用户的数据库密码

最后点Next按钮,完成初始化loganalyer。

点击可播放演示视频

下载方式

此工具现通过dbaplus社群免费为大家提供下载使用。若使用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用。

登录以下链接即可下载:

https://loganalyzer.adiscon.com/download/

更多开源工具&脚本下载

更多开源工具及脚本获取方式:

  • 关注微信公众号【dbaplus社群】,点击菜单栏【资源下载】

  • 登陆dbaplus社群官网:http://dbaplus.cn/list-142-1.html

> > > >

相关图谱推荐 - 分布式数据库评测指南

《分布式数据库评测指南》 由dbaplus社群联合发起人韩锋老师与社群共同编制,浓缩了数据库选型评测项精要,评测维度覆盖6大功能(数据库基本功能、数据库内核功能、数据库管理功能、数据库架构功能、数据库开发功能、数据库其他功能)共300+技术项,明晰数据库选型要点及设计思路,让广大数据库从业者在选型路上不再迷茫。

dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)相关推荐

  1. php图形开发工具,dba 开源工具:面向开发的MySQL图形可视化监控

    工具研发者介绍 贺春旸,凡普金科DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国移动飞信.安卓机锋网.致力于MariaDB.MongoDB等开源 ...

  2. 清理数据库审计日志(.aud)

    一定要注意:不要直接删除adump目录,否则,你会sqlplus不了数据库. 1.进入审计日志目录: cd $ORACLE_BASE/admin/$ORACLE_SID/adump 2.查询3个月前的 ...

  3. 解析mysqlbinlog日志_mysqlbinlog日志分析 日志挖掘 违规操作

    案例:客户数据库,某关键配置表被修改,需查找操作记录及和操作时间 1:mysqlbinlog读取 如果binlog format=statement 可以直接通过mysqlbinlog查看 如果bin ...

  4. syncthing开源工具,同步文件内容,入门操作简要指导

    文章目录 一.前提 二.windows版本的syncthing操作步骤 1.首先在A机器上操作,下载windows版本 2.解压,运行 3.添加一个共享文件夹 4.查看设备ID 5.在 B机器 进行以 ...

  5. Visual Studio 2017最新版正式发布!适用于任何开发人员、平台及APP丨附下载

    2019独角兽企业重金招聘Python工程师标准>>> 适用于任何开发人员.APP及任何平台的Visual Studio 2017 新功能介绍. [Visual Studio 201 ...

  6. 电子政务公共数据交换共享平台建设方案(附下载)

    目  录 第一章 需求分析和项目建设的必要性 4 1.1 项目建设目标.内容 4 1.1.1 项目建设目标 4 1.1.2 项目建设内容 4 1.2 编制依据 5 1.3 与政务职能相关的社会问题和政 ...

  7. 住房和城乡建设部正式印发《城市运行管理服务平台技术标准》(附下载)

    近日,新<城市运行管理服务平台技术标准>(编号为CJJ/T312-2021)行业标准完成修订,由住房和城乡建设部批准发布,即将于2022年1月1日正式实施.同时,原行业标准<城市综合 ...

  8. 【更新】数据库解决方案Data Abstract 9发布丨附下载

    Data Abstract 9最新版试用点击下载>>> Data Abstract 9是一次重要的版本更新,而更重要的是它的基础:Remoting SDK框架.查看详细的更新日志,以 ...

  9. 75页政务大数据资源平台建设解决方案(附下载).pptx

    多维数据分析,精准支撑社会服务与管理 基于政务大数据平台的全局宏观数据分析,形成城市级的宏观数据主体分析应用,有效支持领导决策.政策研究以及资源投放 政务大数据平台基于感知层(摄像头,传感器等)的实时 ...

最新文章

  1. PostgreSQL 电商业务(任意维度商品圈选应用) - json包range数组的命中优化 - 展开+索引优化...
  2. synchronsized修饰方法的使用
  3. 使用Python操作MySQL数据库
  4. Visual C++ 2008入门经典 第九章类的继承和虚函数
  5. 计算机主机安装系统安装系统,系统重装
  6. Java不可变类作为参数传递遇到的坑
  7. ABAP Modification browser SE95
  8. python传文件给java_python使用简单http协议来传送文件
  9. 每日一题(7) —— 求余运算符
  10. 深圳大学计算机考研复习资料百度云,深圳大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  11. linux系统加多个网卡,Linux环境下填加多个IP段在同一网卡
  12. POJ 3734 Blocks 矩阵递推
  13. 华为媒体服务器在哪个文件夹,plex媒体服务器地址
  14. Tcl与Design Compiler (八)——DC的逻辑综合与优化
  15. 漏洞:互联网时代的阿喀琉斯之踵 挖掘漏洞哪家强?
  16. 提升NexusPHP解析种子文件性能(优化benc.php)
  17. 计算机msvcp100.dll,msvcp100.dll丢失的解决方法
  18. 华为2018优招 解决方案技术工程师
  19. 【尚硅谷】新web项目-QQZone代码及详细解析
  20. 北京国家计算机四级网络工程师,关于国家计算机四级网络工程师的介绍

热门文章

  1. Pixel: Multi-signatures for Consensus
  2. ReactNative基础(四)了解ListView的使用、实现GridView效果、编写一个真实网络请求案例
  3. 前端的图片优化的6种方案
  4. 第四节 电路心法 基尔霍夫电压定律与电流定律
  5. 基于python的语料库数据处理_基于Python的语料库数据处理(三)
  6. 《国产操作系统之银河麒麟》桌面环境
  7. 电脑硬盘坏了能修复吗?硬盘里面的数据恢复教程
  8. 【题解】P2678 [NOIP2015 提高组] 跳石头
  9. Effective Approaches to Attention-based Neural Machine Translation
  10. php gb18030 utf-8,Unicode UTF-8与GB18030编码解析(golang)