产品定位
DBVigil 通过被动抓取数据库网络流量,关联会话、SQL、响应状态、影响行数、结果集及 SQL 语义信息,并提供资产、策略、告警、会话轨迹和证据详情页面。
部署前准备
服务器要求
- Anolis OS 大版本和 CPU 架构必须与安装包文件名一致。
- 最低 2 核 CPU、4 GB 内存、40 GB 可用磁盘。
- 建议 4 核 CPU、8 GB 内存、100 GB 以上独立数据盘。
- 安装需要 root 权限;默认 Web 端口为 8080。
流量接入
推荐将数据库服务器所在交换机端口的双向流量镜像到 DBVigil 采集网卡。必须同时看到客户端到数据库和数据库到客户端两个方向。云环境可使用虚拟网络流量镜像。
ip -br link
ip route show default
sudo tcpdump -ni eth0 'tcp port 3306 or tcp port 5432 or tcp port 1521 or tcp port 5236' -c 10如果 tcpdump 看不到双向数据库流量,DBVigil 也无法完成协议解码。
安装
把安装包和对应的 .sha256 文件放在同一目录:
sha256sum -c dbvigil-0.2.0-preview.1-anolis8-x86_64.tar.gz.sha256
tar -xzf dbvigil-0.2.0-preview.1-anolis8-x86_64.tar.gz
cd dbvigil-0.2.0-preview.1-anolis8-x86_64
sudo ./install.sh --offline安装器默认使用默认路由网卡,并自动创建 PostgreSQL 数据库、运行迁移、注册 systemd 服务、生成数据库密码和初始管理员密码。
指定镜像网卡
sudo ./install.sh --offline --interface ens192自定义密码时,密码长度必须为 12 至 128 个字符。凭据保存在 /etc/dbvigil/dbvigil.env,权限为 0640。
首次使用
浏览器访问 http://服务器IP:8080/,使用安装器输出的 admin 密码登录,并立即在系统设置中修改密码。
- 在“资产管理”确认数据库地址、端口和类型。
- 在“会话审计”确认客户端、数据库、账号和连接时间。
- 在“SQL 审计”确认 SQL、操作类型、响应状态和影响行数。
- 在 SQL 详情核对结果列名、返回行和语义对象。
- 从“告警调查”回溯到会话、SQL 和证据详情。
抓包导入、语义解析和告警处理是异步任务,页面通常会有几十秒延迟。
配置
/etc/dbvigil/dbvigil.env数据库、Web、目录和容量参数/etc/dbvigil/decoder.conf采集网卡、BPF 过滤条件和解码输出修改采集网卡或端口后重启采集服务:
sudo systemctl restart dbvigil-capture
sudo journalctl -u dbvigil-capture -n 50 --no-pager默认监听 MySQL 3306/3506、PostgreSQL 5432、Oracle 1521/1522、达梦 5236。只保留实际使用的端口可以降低采集开销。
服务与目录
sudo dbvigil-healthcheck
sudo systemctl status dbvigil-capture dbvigil-web \
dbvigil-semantic-worker dbvigil-alert-worker --no-pager
sudo systemctl list-timers 'dbvigil-*'/opt/dbvigil/current当前程序/etc/dbvigil配置/var/lib/dbvigil解码输出与归档/var/log/dbvigil日志容量清理
容量清理服务默认安装但不启用,避免未确认保留策略时自动删除审计记录。确认合规要求和备份后再启用:
sudo systemctl enable --now dbvigil-storage-pressure.timer默认策略为磁盘使用率达到 85% 时清理最旧完整日期,停止于 80%,至少保留最近 7 天,每次最多处理 3 天。
安全建议
- 仅向管理网开放 8080,不要将管理页面直接暴露到公网。
- 正式试点应通过 Nginx 等反向代理启用 HTTPS。
- 首次登录立即修改管理员密码,并为每位用户创建独立账号。
- 结果集可能包含敏感数据,应限制审计员权限并设置保留周期。
- 定期异机备份 PostgreSQL、配置和证据密钥。
- 在获得网络及数据所有者授权后再采集数据库流量。
验证与排障
页面没有数据
sudo tcpdump -ni eth0 'tcp port 3306 or tcp port 5432' -c 20
sudo journalctl -u dbvigil-capture -n 100 --no-pager
sudo journalctl -u dbvigil-import -n 100 --no-pager
ls -lh /var/lib/dbvigil/out重点确认网卡、端口、双向镜像和 TLS 状态。容器、NAT 或代理场景下,页面地址可能显示转换后的端点。
健康检查失败
sudo dbvigil-healthcheck
df -h /
df -i /
sudo systemctl --failed解码字段不完整时,请保留脱敏后的 PCAP、数据库版本、客户端/驱动版本、实际 SQL 和期望结果,再提交给技术支持。
升级、备份与卸载
升级前先备份数据库和配置:
sudo -u postgres pg_dump -Fc dbvigil > dbvigil-backup.dump
sudo tar -czf dbvigil-config-backup.tar.gz /etc/dbvigil解压新版后重新运行 install.sh。安装器会保留配置和数据库,并切换当前 release。
sudo dbvigil-uninstall # 保留配置和数据
sudo dbvigil-uninstall --purge # 永久删除全部数据--purge 不可恢复,执行前必须完成备份。已知限制
- 安装包不能跨 Anolis 大版本或 CPU 架构使用。
- TLS 加密负载在没有会话密钥时无法解码。
- 丢包、乱序、截断报文及客户端版本差异可能造成字段缺失。
- Oracle 和达梦仍处于兼容性扩展阶段,应使用业务样本验证。
- 当前为单机部署,不提供高可用、集中多节点管理或合规认证承诺。