2020-08-23 06:42:12
使用开源工具搭建数据库审计平台可按以下步骤进行,主要基于开源项目sqlaudit,支持Docker部署并配合Elasticsearch存储审计数据。
一、环境准备基础环境
已安装Docker环境(支持Linux/macOS/Windows)。
确保服务器有足够资源(建议至少2核4GB内存)。
提前启动Elasticsearch服务(审计数据存储依赖ES,需配置etc/mapping.json文件)。
下载开源组件
审计服务:从GitHub或Gitee获取sqlaudit:
GitHub:
Gitee:
Agent(可选):若需采集流量,下载sqlpacket:
GitHub:
Gitee:
拉取镜像直接使用预编译镜像(约40MB):
docker pull chengfangang/sqlaudit:1.0或本地编译镜像:
git clone启动容器
docker run -d --name sqlaudit -p 9696:9696 -p 9797:9797 -p 9898:9898 -v /docker/sqlaudit/etc:/opt/sqlaudit/etc -v /docker/sqlaudit/db:/opt/sqlaudit/db chengfangang/sqlaudit:1.0参数说明:
-p:映射端口(9696/9797/9898为服务端口)。
-v:挂载配置文件目录(etc)和数据库目录(db,程序自动生成)。
验证运行状态
docker logs -f sqlaudit检查日志是否有错误,确保与Elasticsearch连接正常。

登录管理界面访问
新增审计规则
进入 SQL配置 菜单,点击 新增 按钮。
规则参数:
操作类型:选择SQL操作(如SELECT/INSERT/DELETE等),UNKNOWN表示解析失败的SQL。
匹配方式:支持字符串查找或正则表达式,按优先级从上到下匹配,匹配后跳过剩余规则。
告警设置:勾选后触发邮件告警(需提前配置邮件服务)。

根据环境选择以下方法之一采集数据库流量:
端口镜像(旁路模式)
适用于传统IT架构,通过交换机镜像端口将流量复制到审计服务。
探针(Agent模式)
在应用主机或数据库主机部署sqlpacket,监听网卡流量并发送至审计服务。
启动命令示例:./sqlpacket -host <审计服务IP> -port 9696
Docker环境插件
在应用容器中部署插件,直接捕获数据库请求并转发至审计服务。
支持按时间、用户、操作类型等条件筛选日志。
日志包含详细信息:执行SQL、客户端IP、响应时间、规则匹配结果等。

配置文件修改
首次运行前需修改/docker/sqlaudit/etc下的配置文件(如ES连接参数、邮件服务配置等),具体参考README.md。
数据存储
确保Elasticsearch服务稳定运行,避免审计数据丢失。
性能优化
高并发场景下,建议增加审计服务容器实例或优化ES集群配置。
获取帮助
加入QQ群 254210748 获取技术支持。
通过以上步骤,可快速搭建一个功能完整的开源数据库审计平台,实现实时监控、规则告警和日志追溯,有效提升数据库安全防护能力。