本文介绍如何将自建 ClickHouse 接入云监控 2.0。接入组件基于 aio-exporter 的 ClickHouse 适配,通过 HTTP 接口查询 system.metrics、system.asynchronous_metrics、system.events 与 system.parts 等系统表采集指标,覆盖查询、连接、内存、MergeTree、复制与 ZooKeeper 等观测场景,支持 ACK 集群(CS)与 ECS(VPC) 两种部署环境。接入后自动生成 ClickHouse 实例实体与内置大盘。
支持的中间件条件
接入前请确认目标实例满足以下条件,否则可能出现采集不到数据或指标缺失。
|
条件项 |
要求 |
|
版本 |
支持提供 HTTP 接口的 ClickHouse 版本(默认端口 8123) |
|
部署形态 |
自建 ClickHouse;云托管实例在满足账号与网络条件时也可接入,接入时选择对应云厂商/部署来源 |
|
监控账号 |
推荐专用只读账号,需能读取 |
|
连接方式 |
通过 HTTP 接口采集,默认端口 8123 |
|
网络连通 |
CS 环境要求目标 ClickHouse 可在所选 ACK 集群网络内连通;ECS(VPC) 环境要求托管探针交换机网段可访问目标 ECS |
前提条件
-
已开通可观测监控Prometheus版。
-
接入 CS 环境:目标 ACK 集群已接入云监控 2.0,且集群状态为运行中;目标 ClickHouse 服务可在该集群网络内连通。
-
接入 ECS(VPC) 环境:已选定目标 ClickHouse 所在 ECS,并确保托管探针交换机网段可访问该 ECS。
费用说明
-
根据产生的指标数据量,在 Prometheus产品中计费。无其他费用。
接入方法
步骤一:准备监控账号(如需)
若 ClickHouse 开启了访问认证,请创建具备读取 system 库权限的监控账号;未开启认证时可跳过本步骤,表单中用户名保留 default、密码留空。
推荐专用只读账号,避免直接使用超级用户。监控账号至少需能读取:
-
system.metrics -
system.asynchronous_metrics -
system.events -
system.parts
步骤二:选择接入环境
本插件支持 CS 与 ECS(VPC) 两种接入环境,工作原理不同,请按 ClickHouse 实际部署位置选择:
CS(容器服务)
-
将 Exporter 安装到用户指定的目标 ACK 集群,并复用该集群已有的采集器进行指标采集。
-
观测对象为 ACK 集群。
-
网络要求:目标 ClickHouse 服务可在该集群网络内连通即可(例如集群内 Service,或集群能访问到的 VPC 内网地址)。
ECS(VPC)
-
选择目标 ClickHouse 服务部署的 ECS 机器,系统根据该 ECS 的 VPC 信息部署全托管采集器。
-
不会在 ECS 上安装任何进程。
-
观测对象为 ECS 实例。
-
网络要求:托管探针所在交换机网段需允许访问目标 ECS(安全组、ACL 等需放行)。
|
环境 |
Exporter 部署位置 |
是否在业务机上装进程 |
观测对象 |
网络通达要求 |
|
CS |
用户指定的 ACK 集群 |
否(部署在集群内,不占用业务 Pod 宿主) |
ACK 集群 |
ClickHouse 可在该集群网络内连通 |
|
ECS(VPC) |
系统按 VPC 部署的全托管采集器 |
否,不在 ECS 上安装任何进程 |
ECS 实例 |
托管探针交换机网段可访问目标 ECS |
步骤三:接入配置
-
登录云监控2.0控制台,选择目标工作空间后,在左侧导航栏单击 接入中心 ,单击 ClickHouse 开始接入。
-
选择接入环境(CS 或 ECS(VPC)),并在下拉列表中选择 观测对象 。
-
接入配置,配置完成后单击 确定 :
配置项
是否必填
说明
ClickHouse 服务地址
是
CS 环境填写集群内访问地址;ECS(VPC) 环境填写内网或公网访问地址(HTTP 接口)
ClickHouse 服务端口
是
默认 8123(HTTP)
云厂商 / 部署来源
否
写入指标标签
provider并参与实体发现,自建选择「自建」(self-hosted/clickhouse)ClickHouse 账号
否
默认
default;需具备读取 system 库权限ClickHouse 密码
否
未开启访问认证时可留空
Metric 采集间隔(秒)
是
默认 15,取值范围 1—60
自定义标签
否
注入到指标上的额外标签
使用公网镜像地址
否
默认关闭走 VPC 内网镜像仓库;无法访问内网镜像仓库时开启
-
接入成功后,可在 实体探索 查看接入的实体及相关可观测数据。
数据使用说明
实体说明
接入后,云监控定期从 clickhouse_up 等指标的标签中发现 ClickHouse 实例,并生成中间件实体:
|
维度 |
说明 |
|
域(domain) |
middleware |
|
实体类型 |
middleware.clickhouse |
|
实体过滤条件 |
|
|
观测对象(绑定实体) |
CS 环境为 |
实体字段来自采集标签,与安装次数无关:
|
字段 |
说明 |
|
instance_id |
实例标识,取自 |
|
provider |
部署来源,如 |
|
port |
HTTP 端口 |
|
region_id |
地域 |
|
env_type |
部署环境类型(CS / ECS) |
|
cluster_id |
所属集群标识 |
可在 实体探索 或 中间件洞察 应用中按上述字段检索实例。
内置大盘
|
大盘名称 |
查看入口 |
说明 |
|
ClickHouse 概览(实例概览) |
实体详情页 实例概览 页签 |
UModel 大盘,随实例上下文自动绑定变量 |
|
ClickHouse 概览 / ClickHouse Overview |
Grafana 大盘列表 |
Grafana 大盘,提供中英文两套 |
核心指标
以下为实体数据集 middleware.metric.clickhouse 的完整指标清单,可在实体详情、大盘与告警中直接使用:
|
指标名 |
类型 |
单位 |
显示名 |
说明 |
|
clickhouse_up |
gauge |
- |
ClickHouse 存活 |
ClickHouse 上次采集是否成功(实例是否可达)。1 表示存活,0 表示不可用。 |
|
clickhouse_query_rate |
counter |
次/秒 |
查询速率 |
查询执行速率(每秒查询数)。 |
|
clickhouse_select_query_rate |
counter |
次/秒 |
SELECT 查询速率 |
SELECT 查询速率(每秒查询数)。 |
|
clickhouse_insert_query_rate |
counter |
次/秒 |
INSERT 查询速率 |
INSERT 查询速率(每秒查询数)。 |
|
clickhouse_active_queries |
gauge |
- |
活跃查询数 |
当前正在执行的查询数量。 |
|
clickhouse_failed_query_rate |
counter |
次/秒 |
失败查询速率 |
失败查询速率(每秒查询数)。 |
|
clickhouse_inserted_rows_rate |
counter |
次/秒 |
写入行速率 |
每秒写入的行数。 |
|
clickhouse_inserted_bytes_rate |
counter |
字节 |
写入字节速率 |
每秒写入的字节数。 |
|
clickhouse_merge |
gauge |
- |
运行中 Merge 数 |
正在执行的后台 merge 数量。 |
|
clickhouse_part_mutation |
gauge |
- |
分区 Mutation 数 |
正在执行的 mutation(ALTER DELETE/UPDATE)数量。 |
|
clickhouse_parts_active |
gauge |
- |
活跃分区数 |
MergeTree 表当前活跃的数据分区(part)数量。 |
|
clickhouse_max_part_count_for_partition |
gauge |
- |
单分区最大分区数 |
单个分区中活跃数据分区(part)的最大数量;数值过高预示 too-many-parts 风险。 |
|
clickhouse_tcp_connection |
gauge |
- |
TCP 连接数 |
当前 TCP 连接数量。 |
|
clickhouse_http_connection |
gauge |
- |
HTTP 连接数 |
当前 HTTP 连接数量。 |
|
clickhouse_memory_tracking |
gauge |
字节 |
内存占用 |
服务端跟踪/分配的内存总量(字节)。 |
|
clickhouse_network_receive_bytes |
counter |
字节 |
网络接收流量 |
网络每秒接收的字节数。 |
|
clickhouse_network_send_bytes |
counter |
字节 |
网络发送流量 |
网络每秒发送的字节数。 |
|
clickhouse_readonly_replica |
gauge |
- |
只读副本数 |
当前处于只读状态的副本表数量。 |
|
clickhouse_replicas_max_absolute_delay |
gauge |
秒 |
最大副本延迟 |
所有副本表中的最大复制延迟(秒)。 |
|
clickhouse_replicated_fetch |
gauge |
- |
副本拉取数 |
正在执行的副本分区后台拉取(fetch)数量。 |
|
clickhouse_replicated_send |
gauge |
- |
副本发送数 |
正在执行的副本分区后台发送(send)数量。 |
|
clickhouse_replicated_checks |
gauge |
- |
副本一致性检查数 |
当前运行的副本一致性检查数量。 |
|
clickhouse_zoo_keeper_session |
gauge |
- |
ZooKeeper 会话数 |
与 ZooKeeper 建立的会话数量。 |
|
clickhouse_zoo_keeper_watch |
gauge |
- |
ZooKeeper Watch 数 |
在 ZooKeeper 上设置的 watch 数量。 |
|
clickhouse_delayed_inserts |
gauge |
- |
延迟写入数 |
因活跃分区过多被限流而延迟的 INSERT 数量。 |
|
clickhouse_distributed_files_to_insert |
gauge |
- |
分布式表待写入文件数 |
分布式表待发送的文件数量。 |
|
clickhouse_file_open_rate |
counter |
次/秒 |
文件打开速率 |
每秒打开文件操作数。 |
|
clickhouse_background_common_pool_task |
gauge |
- |
后台通用池任务数 |
后台通用线程池中的活跃任务数量。 |
|
clickhouse_background_schedule_pool_task |
gauge |
- |
后台调度池任务数 |
后台调度线程池中的活跃任务数量。 |
|
clickhouse_kafka_consumers_in_use |
gauge |
- |
使用中的 Kafka 消费者数 |
当前使用中的 Kafka 消费者数量。 |
|
clickhouse_table_parts_bytes |
gauge |
字节 |
表分区大小 |
按数据库与表汇总的活跃分区大小(字节)。 |
|
clickhouse_table_parts_count |
gauge |
- |
表分区数量 |
按数据库与表汇总的活跃分区数量。 |
|
clickhouse_table_parts_rows |
gauge |
- |
表分区行数 |
按数据库与表汇总的活跃分区行数。 |
除上述 MetricSet 聚合指标外,Exporter 采集的原始指标(clickhouse_*)均写入 Prometheus 存储,可直接用 PromQL 查询。
常用查询示例
# 存活
clickhouse_up
# 查询速率
rate(clickhouse_query[5m])
# 失败查询速率
rate(clickhouse_failed_query[5m])
# 内存占用
clickhouse_memory_tracking
告警模板
本接入组件暂未内置告警规则。可在 告警中心 基于上述指标自行配置,例如对 clickhouse_up 存活指标不等于 1、连接数/堆积量超阈值等场景设置告警。
存储策略说明
接入 ClickHouse 后,云监控会创建对应的存储实例用于存储可观测数据。
|
数据类型 |
默认存储位置 |
备注 |
|
指标 |
Prometheus 实例:RegionShare:{{workspaceName}}:{{regionId}} |
关联数据集 |
卸载或修改接入策略
如果期望取消或修改 ClickHouse 的接入,可以在 接入中心 的 接入管理 页,找到对应的接入策略,进行 编辑 或 删除 。删除接入策略后,Exporter 与采集配置一并移除,已写入的历史指标按存储的生命周期策略保留。