前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClickHouse的运行指标监控可以怎么玩?

ClickHouse的运行指标监控可以怎么玩?

作者头像
Nauu
发布2020-11-16 16:47:52
3K1
发布2020-11-16 16:47:52
举报
文章被收录于专栏:ClickHouse的秘密基地

一般来说,当咱们的 ClickHouse 要在生产环境上线的时候,关于对 CH 的运行监控工作就必须提到议程上来了。

ClickHouse 在工作的过程中,会将一些个自身的运行状态记录到众多系统表中( sysytem.*)。所以我们对于 CH 自身的一些运行指标的监控数据,也主要来自这些系统表。

但是直接查询这些系统表会有一些不足之处:

首先,这种方式太过底层,不够直观,我们还需要在此之上加入一些可视化的直观表达;

其次,系统表只记录了CH自己的运行指标,有些时候我们需要外部系统的指标进行关联分析,例如 ZooKeeper、服务器 CPU、IO 等等。

现在比较主流的监控组合拳是 Prometheus + Grafana, 其中 Prometheus 负责收集各类系统的运行指标; Grafana 负责可视化的部分。

ClickHouse 从 v20.1.2.4 开始,内置了对接 Prometheus 的功能,可以将其作为 Prometheus 的 Endpoint 服务,从而自动的将 metrics、events 和 asynchronous_metrics 三张系统的表的数据发送给 Prometheus。

而配置的方式也很简单,接下来我们用一个简单示例说明:

首先,我们需要在 CH 的 config.xml 中增加 prometheus 配置:

代码语言:javascript
复制
  <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>

        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <status_info>true</status_info>
  </prometheus>

之后,我们就可以访问到 CH 实例的 /metrics 服务,例如:

代码语言:javascript
复制
nauu@Boness-MBP ~ % curl http://10.37.129.9:9363/metrics
# HELP ClickHouseProfileEvents_Query Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries.
# TYPE ClickHouseProfileEvents_Query counter
ClickHouseProfileEvents_Query 218
# HELP ClickHouseProfileEvents_SelectQuery Same as Query, but only for SELECT queries.
# TYPE ClickHouseProfileEvents_SelectQuery counter
ClickHouseProfileEvents_SelectQuery 186
# HELP ClickHouseProfileEvents_InsertQuery Same as Query, but only for INSERT queries.
# TYPE ClickHouseProfileEvents_InsertQuery counter
ClickHouseProfileEvents_InsertQuery 0
# HELP ClickHouseProfileEvents_FailedQuery Number of failed queries.
# TYPE ClickHouseProfileEvents_FailedQuery counter
ClickHouseProfileEvents_FailedQuery 46
# HELP ClickHouseProfileEvents_FailedSelectQuery Same as FailedQuery, but only for SELECT queries.
# TYPE ClickHouseProfileEvents_FailedSelectQuery counter
ClickHouseProfileEvents_FailedSelectQuery 36
# HELP ClickHouseProfileEvents_FailedInsertQuery Same as FailedQuery, but only for INSERT queries.
# TYPE ClickHouseProfileEvents_FailedInsertQuery counter
ClickHouseProfileEvents_FailedInsertQuery 0

Prometheus 就是通过这个服务收集 CH 系统的相关指标。

接着,我们安装 Prometheus:

代码语言:javascript
复制
docker pull prom/prometheus

在 prometheus.yml 中增加 CH 的 Endpoint 地址:

代码语言:javascript
复制
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

  - job_name: clickhouse-1
    static_configs:
      - targets: ['10.37.129.9:9363']

启动 Prometheus:

代码语言:javascript
复制
docker run --name prometheus -d -p 127.0.0.1:9090:9090   -v /Users/nauu/clickhouse/storage4docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

启动之后,我们在 Targets 菜单里面就能看到 CH 的 Endpoint 了。

现在我们进行最后一步,安装 Grafana :

代码语言:javascript
复制
docker pull grafana/grafana

docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -v /Users/nauu/clickhouse/storage4docker/grafana:/var/lib/grafana \
  grafana/grafana

登入 Grafana 后,在 Data Sources 中 添加 Prometheus 数据源:

之后新建 dashboard, 我们就能够通过 Prometheus 的数据源选取到 ClickHouse 的运行指标了:

至此,通过 ClickHouse 内置 Endpoint + Prometheus + Grafana 的监控组合拳就成型了。至于我们常见的一些监控指标,今后我再专门用一篇文章来聊一聊吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ClickHouse的秘密基地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档