前言

我们往往需要关心数据库的查询执行情况,特别是慢查询。本文简述配置ClickHouse查询监控的一种傻瓜方法。

开启查询日志

打开各个ClickHouse实例的users.xml,在当前使用的profile(如default)中加入:


vim /etc/clickhouse-server/users.xml
#添加以下内容
<log_queries>1</log_queries>

利用Grafana与系统表监控ClickHouse查询_clickhouse

再去各个ClickHouse实例的config.xml中检查一下查询日志的配置,以下是默认启用的配置:

[root@dbos-bigdata-test005 ~]# vim /etc/clickhouse-server/config.xml
以下都是默认配置
<query_log>
<database>system</database>
<table>query_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>

<trace_log>
<database>system</database>
<table>trace_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</trace_log>

<query_thread_log>
<database>system</database>
<table>query_thread_log</table>
<partition_by>toYYYYMM(event_date)</partition_by>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_thread_log>

其中,partition_by表示查询日志表的分区列,语法与普通建表时相同,默认按月分区。flush_interval_milliseconds则表示日志刷入表中的周期,默认7.5秒。按需修改后,重启ClickHouse实例,就会自动在system库中创建对应的系统表,并写数据。

重启clickhouse-server的服务

sudo systemctl restart   clickhouse-server

下载、安装、启动Grafana

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.2.5-1.x86_64.rpm
yum -y localinstall grafana-enterprise-8.2.5-1.x86_64.rpm
systemctl start grafana-server

访问<grafana_ip>:3000即可。

利用Grafana与系统表监控ClickHouse查询_clickhouse_02

安装与添加ClickHouse DataSource

方法1:

​ClickHouse DataSource​​是由Vertamedia开发的第三方插件(这家公司也开源了负载均衡组件CHProxy)。直接用grafana-cli安装之。

grafana-cli plugins install vertamedia-clickhouse-datasource

方法2:

点击添加数据源,搜clickhouse,点击install即可

利用Grafana与系统表监控ClickHouse查询_clickhouse_03

添加数据源

利用Grafana与系统表监控ClickHouse查询_clickhouse_04

如果以上有密码,要点击Basic auth

利用Grafana与系统表监控ClickHouse查询_Grafana_05

点击save即可

配置Grafana Dashboard

添加模板

模板下载地址

​https://grafana.com/grafana/dashboards/2515​

利用Grafana与系统表监控ClickHouse查询_Grafana_06

点击immort

利用Grafana与系统表监控ClickHouse查询_Grafana_07

点击Upload JSON file

利用Grafana与系统表监控ClickHouse查询_Grafana_08

选择对应的json模板

利用Grafana与系统表监控ClickHouse查询_clickhouse_09

因为我导入过了,所以以下图片会出现红色

选择clickhouse数据源

利用Grafana与系统表监控ClickHouse查询_clickhouse_10

效果界面

利用Grafana与系统表监控ClickHouse查询_Grafana_11

利用Grafana与系统表监控ClickHouse查询_clickhouse_12

利用Grafana与系统表监控ClickHouse查询_clickhouse_13