将 Splunk 连接到 ClickHouse
Splunk 是一种流行的安全和可观察性技术。它也是一个强大的搜索和仪表盘引擎。为了满足不同的用例,有数百个 Splunk 应用可供选择。
对于 ClickHouse,我们利用了 Splunk DB Connect App,该应用程序通过高性能的 ClickHouse JDBC 驱动程序与 ClickHouse 直接查询表的简单集成。
此集成的理想用例是当您使用 ClickHouse 处理大数据源,例如 NetFlow、Avro 或 Protobuf 二进制数据、DNS、VPC 流日志以及其他可以与您的团队共享以进行搜索和创建仪表盘的 OTEL 日志。通过这种方法,数据不会被导入到 Splunk 索引层,而是通过类似于 Metabase 或 Superset 的其他可视化集成直接从 ClickHouse 查询。
目标
在本指南中,我们将使用 ClickHouse JDBC 驱动程序将 ClickHouse 连接到 Splunk。我们将安装本地版本的 Splunk Enterprise,但不对任何数据进行索引。相反,我们将通过 DB Connect 查询引擎使用搜索功能。
通过本指南,您将能够创建一个连接到 ClickHouse 的仪表盘,类似于:

先决条件
在开始之前,您需要:
- 使用搜索头功能的 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 应用。您可以在 Splunk Web UI 的应用部分找到它:
- 登录到 Splunk Web,然后转到 Apps > Find More Apps
- 使用搜索框找到 DB Connect
- 点击 Splunk DB Connect 旁边的绿色“安装”按钮
- 点击“重启 Splunk”
如果您在安装 DB Connect 应用时遇到问题,请查看 该链接 获取更多说明。
一旦您确认DB Connect应用已安装,请将java_home路径添加到DB Connect应用的配置 -> 设置中,然后点击保存,然后重置。

为 ClickHouse 配置 JDBC
将 ClickHouse JDBC 驱动程序 下载到 DB Connect 驱动程序文件夹中,例如:
然后,您必须编辑连接类型配置文件 $SPLUNK_HOME/etc/apps/splunk_app_db_connect/default/db_connection_types.conf
,以添加 ClickHouse JDBC 驱动程序类的详细信息。
将以下段落添加到文件中:
使用 $SPLUNK_HOME/bin/splunk restart
重启 Splunk。
返回到 DB Connect 应用,转到配置 > 设置 > 驱动程序。您应该在 ClickHouse 旁边看到一个绿色勾:

将 Splunk 搜索连接到 ClickHouse
导航到 DB Connect 应用配置 -> 数据库 -> 身份:为您的 ClickHouse 创建一个身份。
从配置 -> 数据库 -> 连接创建新的 ClickHouse 连接并选择“新连接”。

添加 ClickHouse 主机详细信息并确保勾选“启用 SSL”:

保存连接后,您已经成功将 ClickHouse 连接到 Splunk!
如果您收到错误,请确保已将您的 Splunk 实例的 IP 地址添加到 ClickHouse Cloud IP 访问列表中。有关更多信息,请参见 文档。
运行 SQL 查询
现在我们将运行 SQL 查询,以测试一切是否正常。
在 DB Connect 应用的 DataLab 部分中选择您的连接详细信息。我们在此演示中使用 trips
表:

在 trips
表上执行 SQL 查询,以返回表中所有记录的计数:

如果查询成功,您应该会看到结果。
创建仪表盘
让我们创建一个利用 SQL 和强大的 Splunk 处理语言 (SPL) 组合的仪表盘。
在继续之前,您必须首先 停用 DPL 保护措施。
运行以下查询,以显示拥有最多接送的前 10 个社区:
选择可视化选项卡以查看创建的柱状图:

我们现在将通过点击“另存为” > “保存到仪表盘”来创建一个仪表盘。
让我们添加另一个查询,以根据乘客数量显示平均车费。
这次,让我们创建一个条形图可视化并将其保存到之前的仪表盘。

最后,让我们再添加一个查询,显示乘客数量与行程距离之间的关系:
我们的最终仪表盘应如下所示:

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