较新版本的clickhouse内部已经支持暴露监控数据给prometheus, 所以此处就不用另外部署clickhouse-exporter服务来获取监控数据。

clickhouse配置

修改clickhouse的配置文件config.xml, 将prometheus这一项原先的注释放开,使其生效。

官方文档路径:https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings/#server_configuration_parameters-prometheus

1
2
3
4
5
6
7
8
<prometheus>
<endpoint>/metrics</endpoint>
<port>9363</port>
<metrics>true</metrics>
<events>true</events>
<asynchronous_metrics>true</asynchronous_metrics>
<status_info>true</status_info>
</prometheus>

然后重启服务,此处配置的端口是9363,可以执行如下命令验证配置是否成功:

curl http://localhost:9363/metrics|less

如果有输出如图所示,则表示配置生效。

prometheus配置

修改prometheus.yml文件,增加一个clickhouse的job。

1
2
3
4
scrape_configs:
- job_name: 'clickhouse-exporter'
static_configs:
- targets: ['10.0.0.239:9363']

注意此处的端口就是之前clickhouse配置prometheus的端口。

重启prometheus服务,打开prometheus web页面上的targets页面, 如果看到clickhouse状态是up的话,表示集成成功。

grafana 配置

可以自己手动添加dashboard,也可以在grafana官网上找一个图表,直接导入即可。本人用的ID是:14432

导入这个ID之后, 效果如下: