连接 Splunk 与 ClickHouse
想将 ClickHouse 审计日志存储到 Splunk 中?请按照“将 ClickHouse Cloud 审计日志存入 Splunk”指南操作。
Splunk 是一种广受欢迎的安全与可观测性技术。它也是一个强大的搜索和仪表板引擎。Splunk 提供了数百个应用,可满足不同的使用场景。
对于 ClickHouse,我们使用的是 Splunk DB Connect App,它可与高性能的 ClickHouse JDBC 驱动程序轻松集成,从而直接查询 ClickHouse 中的表。
此集成的理想使用场景是:当你使用 ClickHouse 处理大型数据源时,例如 NetFlow、Avro 或 Protobuf 二进制数据、DNS、VPC 流日志以及其他 OTel 日志,并希望在 Splunk 中与团队共享这些数据以进行搜索和创建仪表板。采用这种方式后,数据不会被摄取到 Splunk 的索引层,而是像 Metabase 或 Superset 等其他可视化集成一样,直接从 ClickHouse 查询。
目标
在本指南中,我们将使用 ClickHouse JDBC 驱动程序,将 ClickHouse 与 Splunk 连接。我们会安装本地部署的 Splunk Enterprise,但不会为任何数据建立索引。相反,我们会通过 DB Connect 查询引擎使用搜索功能。
通过本指南,您将能够创建一个类似下面这样、连接到 ClickHouse 的仪表板:

本指南使用的是 New York City Taxi 数据集。您还可以从我们的文档中使用许多其他数据集。
前提条件
在开始之前,需要准备:
- 可用于执行搜索头(search head)功能的 Splunk Enterprise
- 在操作系统或容器中安装满足要求的 Java Runtime Environment (JRE)
- Splunk DB Connect
- 对 Splunk Enterprise 操作系统实例的管理员权限或 SSH 访问权限
- ClickHouse 连接信息(如果你使用的是 ClickHouse Cloud,参见此处)
在 Splunk Enterprise 上安装并配置 DB Connect
必须先在 Splunk Enterprise 实例上安装 Java Runtime Environment。如果使用 Docker,可以运行命令 microdnf install java-11-openjdk。
记下 java_home 路径:java -XshowSettings:properties -version。
确保已在 Splunk Enterprise 上安装 DB Connect App。可以在 Splunk Web UI 的 Apps 部分中找到它:
- 登录 Splunk Web 并进入 Apps > Find More Apps
- 使用搜索框查找 DB Connect
- 点击 Splunk DB Connect 旁边的绿色“Install”按钮
- 点击“Restart Splunk”
如果在安装 DB Connect App 时遇到问题,请参阅此链接以获取更多说明。
确认 DB Connect App 已安装后,在 Configuration -> Settings 中将 java_home 路径添加到 DB Connect App,然后点击保存并重置。

为 ClickHouse 配置 JDBC
下载 ClickHouse JDBC 驱动 JAR 文件 并将其复制到以下位置的 DB Connect Drivers 文件夹中:
为确保 DB Connect 应用可以使用所有必需的依赖项,请下载以下任一项:
然后,你需要编辑 $SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf 中的连接类型配置,在其中添加 ClickHouse JDBC Driver 类的相关信息。将以下配置节添加到 db_connection_types.conf 中:
使用 $SPLUNK_HOME/bin/splunk restart 重启 Splunk。
返回 DB Connect 应用,依次进入 Configuration > Settings > Drivers。现在应当能在 ClickHouse 旁边看到一个绿色对勾标记:

将 Splunk 搜索连接到 ClickHouse
导航到 DB Connect App Configuration -> Databases -> Identities,为 ClickHouse 创建一个 Identity。
在 Configuration -> Databases -> Connections 中创建到 ClickHouse 的新连接,并选择 "New Connection"。

填写 ClickHouse 主机信息,并确保勾选 "Enable SSL":

保存连接后,即可成功将 Splunk 与 ClickHouse 连接。
如果出现错误,请确认已将 Splunk 实例的 IP 地址添加到 ClickHouse Cloud 的 IP 访问列表中。更多信息请参见文档。
运行 SQL 查询
现在我们将运行一个 SQL 查询来验证一切是否正常工作。
在 DB Connect App 的 DataLab 部分中,在 SQL Explorer 中选择连接信息。本演示使用 trips 表:

对 trips 表执行一个 SQL 查询,以返回表中所有记录的总数:

如果查询执行成功,应当能够看到结果。
创建一个仪表板
让我们创建一个结合 SQL 与强大 Splunk Processing Language(SPL)的仪表板。
在继续之前,必须先停用 DPL 安全防护。
运行以下查询,以查看上车次数最频繁的前 10 个社区(neighborhood):
选择 “Visualization” 选项卡以查看创建的柱状图:

现在通过点击 Save As > Save to a Dashboard 来创建一个仪表板。
我们再添加一个查询,用于根据乘客数量展示平均车费。
这次,我们来创建一个柱状图可视化,并将其保存到之前的仪表盘中。

最后,让我们再添加一个查询,用于展示乘客数量与行程距离之间的相关性:
我们的最终仪表板应类似如下所示:

时间序列数据
Splunk 具有数百个内置函数,仪表板可以利用这些函数来可视化和展示时间序列数据。此示例将结合 SQL 与 SPL 来创建一个可在 Splunk 中处理时间序列数据的查询。
了解更多
如果您想进一步了解 Splunk DB Connect 以及如何构建仪表板,请访问 Splunk 文档。