ProbeDeck 是一款适用于 iOS 和 iPadOS 的客户端,可用于检查 ClickHouse server 的健康状况、查看
system 表以及运行 SQL。它可通过设备网络或 SSH 堡垒机连接到 ClickHouse HTTP 接口,
无需中继服务器。
开始之前
- 从 App Store 安装 ProbeDeck。
- 使用 iOS 或 iPadOS 17.0 或更高版本。
- 确保设备可通过网络、VPN 或 SSH 堡垒机访问 ClickHouse 的 HTTP 或 HTTPS 端点。
- 创建一个可访问要查询数据库的 ClickHouse 用户。
- 授予该用户相关
system表的SELECT权限,以便进行监控。
| ProbeDeck | ClickHouse Cloud | 自托管 ClickHouse | 说明 |
|---|---|---|---|
| 1.1.7 或更高版本 | 当前服务 | 未指定最低服务器版本 | 使用 HTTP(S) 接口。测试连接,并根据您的服务器版本和授权情况验证各个监控部分。 |
某些监控部分依赖可选的日志表或较新的系统表。例如,
ProbeDeck 用于获取已配置内存限制的 system.server_settings 需要 ClickHouse
23.3 或更高版本。当其数据源不可用时,ProbeDeck 会将受影响的部分标记为受限。
工作原理
- ProbeDeck 向 ClickHouse HTTP(S) 端点发送 SQL 请求。
- 它使用已配置的 ClickHouse 用户从
system表读取监控数据。 - 应用会在设备上显示查询结果和监控视图。当设备无法直接访问端点时,可通过 SSH 堡垒机建立相同的 HTTP(S) 连接。
连接 ClickHouse Cloud
获取服务连接详细信息
在 ClickHouse Cloud 控制台中,打开您的服务,选择 Connect,然后选择 HTTPS。
要通过 HTTP(S) 连接到 ClickHouse,你需要以下信息:
| Parameter(s) | Description |
|---|---|
HOST and PORT |
通常,使用 TLS 时端口为 8443;不使用 TLS 时端口为 8123。 |
DATABASE NAME |
默认情况下,存在一个名为 default 的数据库。请使用你要连接的数据库名称。 |
USERNAME and PASSWORD |
默认情况下,用户名为 default。请根据你的使用场景使用相应的用户名。 |
你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。 选择一个服务,然后点击 Connect:

选择 HTTPS。连接信息会显示在示例 curl 命令中。

如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。
在 ProbeDeck 中添加连接
- 在 Connections 页面中,点击 +。
- 输入连接名称和主机地址 (不含
https://) 。 - 将 Port 设置为
8443,并启用 TLS。 - 输入 Connect 对话框中的数据库用户名和密码。数据库名称为 可选。
- 点击 Test Connection。检查成功后,ProbeDeck 会显示服务器版本和往返时间。
- 点击 Save。
ProbeDeck 使用这些数据库凭据对发送至服务端点的 SQL 请求进行身份验证。 ClickHouse Cloud 使用 API Keys 页面中的组织级密钥来访问 Cloud API 和查询 API 端点。 ProbeDeck 的 SQL 连接流程不使用这些密钥。

连接到自托管 ClickHouse
选择 HTTP 端点
默认未加密的 HTTP 接口使用端口 8123。对于 HTTPS,请启用 TLS 并使用
服务器上配置的端口;常用端口为 8443。
添加并测试连接
- 在 Connections 页面中,点击 +。
- 输入服务器主机名,不要包含 URL 协议。
- 设置 HTTP(S) 端口和 TLS 选项。
- 输入 ClickHouse 用户名、密码和可选的数据库。
- 点击 Test Connection,然后点击 Save。
对于本地网络中的服务器,iOS 可能会请求本地网络访问权限。如果端点只能通过企业网络访问,请先将设备连接到 企业 VPN。
通过 SSH 堡垒机连接
在连接表单中启用 SSH 隧道,然后输入:
- 堡垒机主机地址和 SSH 端口 (默认为
22) 。 - SSH 用户名。
- SSH 密码或私钥。
ProbeDeck 会通过 SSH direct-tcpip 通道,从堡垒机连接到 服务器 部分中指定的 ClickHouse 主机和 HTTP(S)
端口。首次连接时,在接受前请将堡垒机的 SHA-256 主机密钥指纹与服务器管理员提供的值进行核对。
配置身份验证和 TLS
ProbeDeck 会通过 X-ClickHouse-User 和
X-ClickHouse-Key 请求头发送数据库用户名和密码,不会将凭据置于 URL 中。
如需使用双向 TLS,请启用 TLS Client Certificate,然后导入包含
客户端证书和私钥的 PKCS#12 (.p12) 文件,并输入其密码短语。
当自托管端点提供自签名证书或由私有 CA 签发的证书时,ProbeDeck 会显示其 SHA-256 指纹、签发方、主体和有效期。接受前,请将该 指纹与服务器管理员提供的值进行比对。ProbeDeck 会将此决定绑定到该连接;如果证书发生变更,连接会停止,直至您完成审核。
ProbeDeck 会将连接密钥和导入的密钥材料存储在设备的 iOS Keychain 中。
监控 ClickHouse
打开已保存的连接,然后选择 监控。该仪表板汇总以下数据源:
| 区域 | ClickHouse 数据源 |
|---|---|
| 正在运行的查询、耗时、内存和读取行数 | system.processes |
| 复制状态和队列 | system.replicas, system.replication_queue |
| 磁盘、parts 和合并 | system.disks, system.parts, system.merges |
| 变更 | system.mutations |
| 内存和服务器指标 | system.metrics, system.asynchronous_metrics, system.server_settings |
| 历史查询和磁盘速率 | system.metric_log, system.asynchronous_metric_log |

点击 正在运行的查询,按耗时对活动查询排序,并查看内存和读取行数。

查询英国房产价格数据集
本示例使用 UK property price dataset。
将数据集加载到 uk_price_paid,然后:
- 打开连接,然后选择 数据。
- 打开 SQL 编辑器。
- 运行以下有界只读查询:
SELECT
town,
count() AS sales,
round(avg(price)) AS average_price
FROM uk_price_paid
GROUP BY town
ORDER BY sales DESC
LIMIT 10结果应包含十个城镇及其交易数量和平均价格。
已知限制
- ProbeDeck 支持 iOS 和 iPadOS 17.0 及更高版本。
- 免费用户一次只能保存一个连接。删除该连接即可释放名额;ProbeDeck Pro 支持 保存不限数量的连接。
- 它支持 ClickHouse HTTP(S) 接口,不支持原生协议。
- ProbeDeck 会按每页 200 行加载 SQL 查询结果,并将每个请求最多限制为 10,000 行。对于大型表,请使用
有选择性的
WHERE子句和LIMIT。 - 监控的可见性取决于 ClickHouse 用户的授权以及可选的日志表。
- 设备需要能够通过其网络、VPN 或内置 SSH 隧道访问端点。
- 监控和只读 SQL 无需应用内购买。
KILL QUERY、KILL MUTATION、 写入和 DDL 语句以及其他运维操作需要 ProbeDeck Pro。
故障排查
身份验证失败
重新复制数据库用户名和密码。对于 ClickHouse Cloud 服务端点,请使用服务 Connect 对话框中的 数据库凭据。请勿改用 ClickHouse Cloud API Keys 页面中的组织级 密钥。
连接被拒绝或超时
确认设备能够访问主机和 HTTP(S) 端口。检查 Cloud IP 访问列表、VPN、
防火墙和端口映射。请勿使用原生协议端口 9000 或 9440。
监控显示权限受限
ClickHouse 用户无法读取一个或多个必需的 system 表。请向服务器管理员申请
使用相应监控区域所需的最低 SELECT 授权,然后重新连接。
TLS 指纹已更改
接受新指纹前,请让服务器管理员确认是否已轮换证书。意外的更改可能表明端点不同, 或 TLS 拦截路径发生了变化。
后续步骤
- 有关 ProbeDeck 的详细信息,请访问 ProbeDeck 网站。
- 有关服务器配置,请参阅 ClickHouse HTTP 接口文档。