怎么监控存储陈列运行状态_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 配置:

  <prometheus>        <endpoint>/metricsendpoint>        <port>9363port>        <metrics>truemetrics>        <events>trueevents>        <asynchronous_metrics>trueasynchronous_metrics>        <status_info>truestatus_info>  prometheus>

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

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 counterClickHouseProfileEvents_Query 218# HELP ClickHouseProfileEvents_SelectQuery Same as Query, but only for SELECT queries.# TYPE ClickHouseProfileEvents_SelectQuery counterClickHouseProfileEvents_SelectQuery 186# HELP ClickHouseProfileEvents_InsertQuery Same as Query, but only for INSERT queries.# TYPE ClickHouseProfileEvents_InsertQuery counterClickHouseProfileEvents_InsertQuery 0# HELP ClickHouseProfileEvents_FailedQuery Number of failed queries.# TYPE ClickHouseProfileEvents_FailedQuery counterClickHouseProfileEvents_FailedQuery 46# HELP ClickHouseProfileEvents_FailedSelectQuery Same as FailedQuery, but only for SELECT queries.# TYPE ClickHouseProfileEvents_FailedSelectQuery counterClickHouseProfileEvents_FailedSelectQuery 36# HELP ClickHouseProfileEvents_FailedInsertQuery Same as FailedQuery, but only for INSERT queries.# TYPE ClickHouseProfileEvents_FailedInsertQuery counterClickHouseProfileEvents_FailedInsertQuery 0

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

接着,我们安装 Prometheus:

docker pull prom/prometheus

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

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

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 了。 

28c8bda32b414ad58f956373b78781bf.png

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

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

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

fb0030fdc4f475ea20251a5c1d38b69f.png

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

4451798c56890207cfb7bb9b2b8f85dc.png

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

如果这篇文章对你有帮助,欢迎 点赞、转发、在看 三连击 :)

欢迎大家扫码关注我的 公众号和视频号 : ClickHouse的秘密基地 a2033e3af10f6c1402403d2d575a9a23.png nauu的奇思妙想 a7050c706629a0db561332160d14d5d5.png 往期精彩推荐:【专辑】ClickHouse的资讯手札【专辑】ClickHouse的原理巩固【专辑】ClickHouse的经验分享
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值