跳到主要内容
跳到主要内容

自主管理监控

本指南为评估 ClickHouse 开源版本的企业团队提供有关生产环境部署中监控与可观测性能力的全面信息。企业客户经常会询问开箱即用的监控功能、与现有可观测性技术栈(包括 Datadog 和 AWS CloudWatch 等工具)的集成方式,以及 ClickHouse 的监控能力与自托管部署相比有哪些差异。

基于 Prometheus 的集成架构

ClickHouse 会根据你的部署模型,通过不同的端点暴露与 Prometheus 兼容的指标,每种方式都有各自不同的运维特征:

自主管理 / 开源版 ClickHouse

可通过 ClickHouse 服务器上的标准 /metrics 端点访问的服务器直连 Prometheus 端点。此方式提供:

  • 完整的指标暴露能力:在没有任何内置过滤的情况下,提供 ClickHouse 所有可用指标
  • 实时指标:在被抓取时直接从 system 表生成

直接访问系统表

对生产环境的 system 表执行查询,会增加监控负载,并阻止系统进入空闲以实现节省成本

集成示例

外部集成使组织能够保持既有的监控工作流,利用团队对熟悉工具的既有专业经验,并在不扰乱当前流程或需要大量再培训投入的情况下,将 ClickHouse 监控纳入更广泛的基础设施可观测性体系。 团队可以将现有的告警规则和升级策略应用到 ClickHouse 指标上,同时在统一的可观测性平台中,将数据库性能与应用和基础设施的健康状况进行关联。此方法最大化当前监控体系的投资回报,并通过整合的仪表盘和熟悉的工具界面实现更快速的故障排查。

Grafana Cloud 监控

Grafana 既支持通过直接插件集成,也支持通过基于 Prometheus 的方案对 ClickHouse 进行监控。通过 Prometheus endpoint 的集成,可以在保持监控与生产工作负载相互隔离的同时,在现有的 Grafana Cloud 基础设施中实现可视化。有关配置说明,请参阅 Grafana 的 ClickHouse 文档

Datadog 监控

Datadog 正在开发专用的 API 集成,以在充分考虑服务空闲行为的前提下,提供完善的云服务监控。在此期间,团队可以通过 ClickHouse 的 Prometheus endpoint 使用 OpenMetrics 集成方案,以实现运行隔离和具成本效益的监控。有关配置说明,请参阅 Datadog 的 Prometheus 和 OpenMetrics 集成文档

ClickStack

ClickStack 是 ClickHouse 推荐的、用于深度系统分析和调试的可观测性解决方案,使用 ClickHouse 作为存储引擎,为日志、指标和追踪提供统一的平台。此方案依赖 HyperDX(ClickStack 的 UI),直接连接到 ClickHouse 实例内部的系统表。 HyperDX 内置了一个面向 ClickHouse 的仪表盘,包含 Selects、Inserts 和 Infrastructure 选项卡。团队还可以使用 Lucene 或 SQL 语法搜索系统表和日志,并通过 Chart Explorer 创建自定义可视化,以进行更细致的系统分析。 此方案更适合用于调试复杂问题、性能分析和深度系统内省,而非实时生产告警。

注意

请注意,由于 HyperDX 会直接查询系统表,此方案会唤醒处于空闲状态的服务。

ClickStack 部署选项

  • Helm:推荐用于基于 Kubernetes 的调试环境。支持通过 values.yaml 配置特定环境、资源限制和弹性伸缩。
  • Docker Compose:分别部署各个组件(ClickHouse、HyperDX、OTel collector、MongoDB)。
  • 仅 HyperDX:独立运行的 HyperDX 容器。

有关完整的部署选项和架构细节,请参阅 ClickStack 文档数据摄取指南

直接集成 Grafana 插件

Grafana 中的 ClickHouse 数据源插件可以利用系统表直接从 ClickHouse 可视化和探索数据。此方式非常适合用于监控性能,以及为深入的系统分析创建自定义仪表板。 有关插件安装和配置的详细信息,请参阅 ClickHouse 的 data source plugin。若要使用带有预构建仪表板和告警规则的 Prometheus-Grafana mix-in 搭建完整的监控方案,请参阅 Monitor ClickHouse with the new Prometheus-Grafana mix-in

直接集成 Datadog

Datadog 为其 agent 提供了 ClickHouse 监控插件,该插件会直接查询系统表。此集成通过 clusterAllReplicas 功能提供具备集群感知能力的全面数据库监控。

注意

由于与用于节省成本的空闲优化行为不兼容,并且受到云代理层运行限制,不建议在 ClickHouse Cloud 部署中使用此集成。

直接使用系统表

用户可以通过连接 ClickHouse 系统表(尤其是 system.query_log)并直接进行查询来执行深入的查询性能分析。使用 SQL 控制台或 clickhouse 客户端,团队可以识别慢查询、分析资源使用情况,并在整个组织范围内跟踪使用模式。

查询性能分析

用户可以使用系统表中的查询日志执行查询性能分析。

示例查询:查找整个集群中所有副本里运行时间最长的前 5 个查询:

SELECT
    type,
    event_time, 
    query_duration_ms,
    query,
    read_rows,
    tables
FROM clusterAllReplicas(default, system.query_log)
WHERE event_time >= (now() - toIntervalMinute(60)) AND type='QueryFinish'
ORDER BY query_duration_ms DESC
LIMIT 5
FORMAT VERTICAL

社区监控解决方案

ClickHouse 社区已开发出与主流可观测性技术栈集成的完善监控解决方案。ClickHouse Monitoring 提供了带有预构建仪表盘的完整监控部署方案。这个开源项目为希望基于既有最佳实践和成熟仪表盘配置来实施 ClickHouse 监控的团队提供了一种快速入门途径。

注意

与其他直接数据库监控方法类似,该解决方案会直接查询 ClickHouse 的 system 系统表,使实例无法进入空闲状态,从而影响成本优化。