logo
logo

开放!云原生的数据库审计解决方案

向阳 2024-02-20

开放,是 DeepFlow 产品的灵魂。基于 DeepFlow 零侵扰、全栈的数据能力,我们在企业客户处已经落地了一系列安全分析、网络分析、业务分析的解决方案。本文主要介绍基于 DeepFlow 企业版构建的数据库审计云原生解决方案,以及在 6.4 版本中的 3X 性能提升

0x0: 云原生的数据库审计解决方案

DeepFlow 支持利用自身的云网流量分发、SQL 调用日志能力,让专业数据库审计产品以及企业自建的数据库审计工具无缝接入到云原生环境中。

云原生的数据库审计解决方案云原生的数据库审计解决方案

云网流量分发是 DeepFlow 企业版 2016 年发布时的第一个特性。利用云网流量分发,传统的数据库审计工具可以在不做任何修改的前提下,零侵扰的接入到云原生环境中。这一方面让企业客户在云原生环境下依然可以继续使用已有的安全产品,另一方面也避免了在云主机上安装来自不同厂商、数量繁多的采集 Agent。DeepFlow 已经成为了云网流量分发的事实标准,我们在 6.4 中也对这个能力进行了增强,将数据库审计解决方案的 CPU 和带宽资源开销降低了 70%~80%。

除了云网流量分发以外,DeepFlow 可通过 eBPF/cBPF 直接采集 MySQL/PostgreSQL/Oracle 等数据库的 SQL 调用日志。用户可通过 DeepFlow API 消费 SQL 日志,实现自研的数据库审计能力。在五月份即将发布的 DeepFlow 6.5 中,这部分能力也会进一步增强,SQL 调用日志将支持输出至 Kafka 队列中进行消费。

0x1: 云原生的云网流量分发能力

DeepFlow 的云原生流量分发能力主要特性如下:

1. 完全适应云原生环境

用户可以在页面上基于 IP 五元组、云服务器、VPC、子网、容器服务、容器工作负载等多种维度配置精细的流量分发策略。当云资源发生 IP 变更、POD 重建、POD 迁移、服务端口修改等变更时,分发策略自动跟随变更,保证分发流量不中断。

除此之外,DeepFlow 支持在分发流量中注入资源和服务标签,数据库审计产品可根据标签来识别流量所属的应用、服务等资产信息。

DeepFlow 的云网流量分发能力DeepFlow 的云网流量分发能力

2. 避免厂商锁定

DeepFlow 流量分发支持 VXLAN、ERSPAN、TCP 等标准协议,相信能够适配几乎所有数据库审计工具。用户可以自由切换、甚至混用多个品牌的数据库审计产品,无需考虑应用主机侧的 Agent 切换问题。

DeepFlow 支持的分发协议DeepFlow 支持的分发协议

3. 简化主机运维

当用户需要使用多个厂商的数据库审计产品时,使用 DeepFlow 避免了在主机上安装不同产品的多个 Agent,直接简化了主机上的运维复杂度。DeepFlow 支持完善的 Agent 远程管理控制能力,能够对 Agent 的生命周期做详细的监控,也能对 Agent 的 CPU 上限、内存上限、采集速率、分发速率进行远程调控。当 Agent 监控到主机流量过大时,支持直接进入熔断保护状态并触发告警。

DeepFlow Agent 远程管控能力DeepFlow Agent 远程管控能力

4. 云原生环境全覆盖

DeepFlow Agent 支持运行在几乎所有主机中,例如:

  • 进程形态运行于主机中
  • Daemonset Pod 形态运行于 K8s 节点中
  • Sidecar 形态运行于 Serverless Pod 中

由于 DeepFlow Agent 的广泛适配性,DeepFlow 可以提供各种场景下的数据库流量采集和分发能力:

  • 使用公有云 RDS 服务:DeepFlow Agent 可运行在应用服务器中覆盖所有客户端
  • 使用私有云 RDS 服务(如 TDSQL):DeepFlow Agent 可直接运行在 TDSQL 服务器上(参见:DeepFlow 零侵扰实现分布式数据库 TDSQL 的全链路可观测性
  • 在虚拟机或裸金属服务器上自建数据库服务:DeepFlow Agent 可运行在应用侧服务器中,也可运行在数据库服务器中
  • 在 K8s 节点上自建云原生数据库服务:DeepFlow Agent 可以作为 Daemonset 运行在 K8s 节点上

0x2: 6.4 新特性 - 流量分发性能 3X

在 6.4 中,针对数据库审计场景我们支持了一项关键能力:支持分发单向流量。这是因为通常数据库审计产品不关心 SQL 响应,因此我们只需要将 SQL 请求全量分发即可。

支持单向流量分发支持单向流量分发

目前该能力已上线到客户环境中,以酒店行业某知名集团客户为例,此项新特性减少了 70%~80% 的分发流量,对 Agent CPU 消耗、分发流量带宽消耗、云网关性能消耗、数据库审计产品资源消耗等都有了将近 3X 的性能优化

0x3: 什么是 DeepFlow

DeepFlow 是云杉网络开发的一款可观测性产品,旨在为复杂的云基础设施及云原生应用提供深度可观测性。DeepFlow 基于 eBPF 实现了应用性能指标、分布式追踪、持续性能剖析等观测信号的零侵扰(Zero Code)采集,并结合智能标签(SmartEncoding)技术实现了所有观测信号的全栈(Full Stack)关联和高效存取。使用 DeepFlow,可以让云原生应用自动具有深度可观测性,从而消除开发者不断插桩的沉重负担,并为 DevOps/SRE 团队提供从代码到基础设施的监控及诊断能力。

GitHub 地址:https://github.com/deepflowio/deepflow

访问 DeepFlow Demo,体验零插桩、全覆盖、全关联的可观测性。