ClickHouse 数据库监控接入

更新时间:
复制 MD 格式

本文介绍如何将自建 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;云托管实例在满足账号与网络条件时也可接入,接入时选择对应云厂商/部署来源

监控账号

推荐专用只读账号,需能读取 system.metrics、system.asynchronous_metrics、system.events、system.parts。未开启认证时可用默认账号 default、密码留空

连接方式

通过 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

步骤三:接入配置

  1. 登录云监控2.0控制台,选择目标工作空间后,在左侧导航栏单击 接入中心 ,单击 ClickHouse 开始接入。

  2. 选择接入环境(CS 或 ECS(VPC)),并在下拉列表中选择 观测对象 。

  3. 接入配置,配置完成后单击 确定 :

    配置项

    是否必填

    说明

    ClickHouse 服务地址

    是

    CS 环境填写集群内访问地址;ECS(VPC) 环境填写内网或公网访问地址(HTTP 接口)

    ClickHouse 服务端口

    是

    默认 8123(HTTP)

    云厂商 / 部署来源

    否

    写入指标标签 provider 并参与实体发现,自建选择「自建」(self-hosted/clickhouse)

    ClickHouse 账号

    否

    默认 default;需具备读取 system 库权限

    ClickHouse 密码

    否

    未开启访问认证时可留空

    Metric 采集间隔(秒)

    是

    默认 15,取值范围 1—60

    自定义标签

    否

    注入到指标上的额外标签

    使用公网镜像地址

    否

    默认关闭走 VPC 内网镜像仓库;无法访问内网镜像仓库时开启

  4. 接入成功后,可在 实体探索 查看接入的实体及相关可观测数据。

数据使用说明

实体说明

接入后,云监控定期从 clickhouse_up 等指标的标签中发现 ClickHouse 实例,并生成中间件实体:

维度

说明

域(domain)

middleware

实体类型

middleware.clickhouse

实体过滤条件

.entity with(domain='middleware', type='middleware.clickhouse')

观测对象(绑定实体)

CS 环境为 acs.ack.cluster;ECS(VPC) 环境为 acs.ecs.instance

实体字段来自采集标签,与安装次数无关:

字段

说明

instance_id

实例标识,取自 target_uri 标签,格式为 host:port

provider

部署来源,如 self-hosted/clickhouse

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}}

关联数据集 middleware.metric.clickhouse

卸载或修改接入策略

如果期望取消或修改 ClickHouse 的接入,可以在 接入中心 的 接入管理 页,找到对应的接入策略,进行 编辑 或 删除 。删除接入策略后,Exporter 与采集配置一并移除,已写入的历史指标按存储的生命周期策略保留。