Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

将 ProbeDeck 连接到 ClickHouse

由社区维护

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 会将受影响的部分标记为受限。

工作原理

  1. ProbeDeck 向 ClickHouse HTTP(S) 端点发送 SQL 请求。
  2. 它使用已配置的 ClickHouse 用户从 system 表读取监控数据。
  3. 应用会在设备上显示查询结果和监控视图。当设备无法直接访问端点时,可通过 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

ClickHouse Cloud 服务连接按钮

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

ClickHouse Cloud HTTPS 连接信息

如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。

在 ProbeDeck 中添加连接

  1. Connections 页面中,点击 +
  2. 输入连接名称和主机地址 (不含 https://) 。
  3. Port 设置为 8443,并启用 TLS
  4. 输入 Connect 对话框中的数据库用户名和密码。数据库名称为 可选。
  5. 点击 Test Connection。检查成功后,ProbeDeck 会显示服务器版本和往返时间。
  6. 点击 Save

ProbeDeck 使用这些数据库凭据对发送至服务端点的 SQL 请求进行身份验证。 ClickHouse Cloud 使用 API Keys 页面中的组织级密钥来访问 Cloud API 和查询 API 端点。 ProbeDeck 的 SQL 连接流程不使用这些密钥。

ProbeDeck 连接表单已配置为通过端口 8443 使用 HTTPS 和 ClickHouse 用户名

连接到自托管 ClickHouse

选择 HTTP 端点

默认未加密的 HTTP 接口使用端口 8123。对于 HTTPS,请启用 TLS 并使用 服务器上配置的端口;常用端口为 8443

添加并测试连接

  1. Connections 页面中,点击 +
  2. 输入服务器主机名,不要包含 URL 协议。
  3. 设置 HTTP(S) 端口和 TLS 选项。
  4. 输入 ClickHouse 用户名、密码和可选的数据库。
  5. 点击 Test Connection,然后点击 Save

对于本地网络中的服务器,iOS 可能会请求本地网络访问权限。如果端点只能通过企业网络访问,请先将设备连接到 企业 VPN。

通过 SSH 堡垒机连接

在连接表单中启用 SSH 隧道,然后输入:

  1. 堡垒机主机地址和 SSH 端口 (默认为 22) 。
  2. SSH 用户名。
  3. SSH 密码或私钥。

ProbeDeck 会通过 SSH direct-tcpip 通道,从堡垒机连接到 服务器 部分中指定的 ClickHouse 主机和 HTTP(S) 端口。首次连接时,在接受前请将堡垒机的 SHA-256 主机密钥指纹与服务器管理员提供的值进行核对。

配置身份验证和 TLS

ProbeDeck 会通过 X-ClickHouse-UserX-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
显示正在运行的查询、复制、磁盘、parts、变更、合并、查询速率和内存的 ProbeDeck 监控仪表板

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

按耗时排序的 ProbeDeck 正在运行的查询列表

查询英国房产价格数据集

本示例使用 UK property price dataset。 将数据集加载到 uk_price_paid,然后:

  1. 打开连接,然后选择 数据
  2. 打开 SQL 编辑器。
  3. 运行以下有界只读查询:
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 QUERYKILL MUTATION、 写入和 DDL 语句以及其他运维操作需要 ProbeDeck Pro。

故障排查

身份验证失败

重新复制数据库用户名和密码。对于 ClickHouse Cloud 服务端点,请使用服务 Connect 对话框中的 数据库凭据。请勿改用 ClickHouse Cloud API Keys 页面中的组织级 密钥。

连接被拒绝或超时

确认设备能够访问主机和 HTTP(S) 端口。检查 Cloud IP 访问列表、VPN、 防火墙和端口映射。请勿使用原生协议端口 90009440

监控显示权限受限

ClickHouse 用户无法读取一个或多个必需的 system 表。请向服务器管理员申请 使用相应监控区域所需的最低 SELECT 授权,然后重新连接。

TLS 指纹已更改

接受新指纹前,请让服务器管理员确认是否已轮换证书。意外的更改可能表明端点不同, 或 TLS 拦截路径发生了变化。

后续步骤

Navigation