贺春旸,凡普金科和爱钱进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打造轻量级数据库审计日志平台。
支配步骤
环境概述:
MySQL/MariaDB主库安装Audit Plugin插件;MySQL/MariaDB主库配置Rsyslog利用ommysql模块;准备一台专用存放syslog审计日志的MySQL数据库做事器;准备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 3306local6. :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-gdShell> systemctl start httpd.serviceShell> cd /var/www/html/Shell> wgethttps://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gzShell> tar zxvf loganalyzer-4.1.12.tar.gzShell> mv loganalyzer-4.1.12 loganalyzerShell> touch loganalyzer-4.1.12/src/config.phpShell> chmod 755 loganalyzer-4.1.12/src/config.php
打开浏览器,配置loganalyzer软件,输入网址:http://yourip/loganalyzer/src/install.php
source type:选MYSQL Nativeselect view:选Syslog FieldsTable type:选MonitorWaredatabase host:127.0.0.1database name:Syslogdatabase tablename:SystemEventsdatabase user:syslogdatabase password:写上之前你设定的sysylog用户的数据库密码
末了点Next按钮,完成初始化loganalyer。
视频加载中...
点击可播放演示视频
下载办法
此工具现通过dbaplus社群免费为大家供应下载利用。若利用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用。
登录以下链接即可下载:
https://loganalyzer.adiscon.com/download/
更多开源工具&脚本下载
更多开源工具及脚本获取办法:
关注微信"大众年夜众号【dbaplus社群】,点击菜单栏【资源下载】上岸dbaplus社群官网:http://dbaplus.cn/list-142-1.html>>>>
干系图谱推举 - 分布式数据库评测指南
《分布式数据库评测指南》由dbaplus社群联合发起人韩锋老师与社群共同体例,浓缩了数据库选型评测项精要,评测维度覆盖6大功能(数据库基本功能、数据库内核功能、数据库管理功能、数据库架构功能、数据库开拓功能、数据库其他功能)共300+技能项,明晰数据库选型要点及设计思路,让广大数据库从业者在选型路上不再迷茫。
获取办法:关注微信"大众年夜众号【dbaplus社群】,栏回答【图谱】,即可获取下载链接
>>>>
干系活动推举 - DAMS峰会·上海站
演讲高朋所在单位:中国信通院、京东、美团、字节跳动、蚂蚁集团、网易、新浪、携程、快手、唯品会、哔哩哔哩、vivo、工商银行、安然银行、光大银行、汇丰科技等产研界技能领跑单位。
演讲议题聚焦:
大数据&数据资产管理:数据管理丨存算分离丨云原生OLAP丨湖仓一体丨智能剖析数据库:云原生分布式丨韶光序列丨做事自治运维:AIOps丨故障根因剖析丨性能优化丨在离线混部技能丨高可用培植金融科技:规模化监控丨实时数仓丨分布式改造丨国产化替代丨数字化转型点击评论区链接理解DAMS峰会更多详情及报名
关于我们
dbaplus社群是环绕Database、BigData、AIOps的企业级专业社群。资深大咖、技能干货,每天佳构原创文章推送,每周线上技能分享,每月线下技能沙龙,每季度Gdevops&DAMS行业大会。
关注公众号【dbaplus社群】,获取更多原创技能文章和精选工具下载