zabbix 6.0 LTS已经包含了clickhouse的监控模板,所以我们可以直接使用自带的模板来监控clickhouse了。
0.前置条件
- clickhouse 已经安装,我安装的是24.3.5.47
- zabbix-agent 已经安装并配置。
- 系统是ubuntu 2204 server
1. 新建监控用户
使用xml的方式为clickhouse新增一个用户,接下来我们会在zabbix中使用这个用户来监控clickhouse的性能。
在/etc/clickhouse-server/users.d/
目录下新建一个zabbix.xml
文件。
vim /etc/clickhouse-server/users.d/zabbix.xml
添加以下内容:
<clickhouse>
<users>
<zabbix>
<password remove='1' />
<password_sha256_hex>f6e248ea994f3e342f61141b8b8e3ede86d4de53257abc8d06ae07a1da73fb39</password_sha256_hex>
<allow_databases>
<database>system</database>
</allow_databases>
</zabbix>
</users>
</clickhouse>
-
password_sha256_hex: 这里使用的加密方式为password_sha256_hex。使用下面的命令生成password_sha256_hex散列值。
echo -n "your_password" | sha256sum
上述命令会生成以下输出。
4da3376323046a3bb6759f0a3f4ae7100a0567950c53ee42d2e19201baaa6dfc -
其中"your_password"是你的明文密码,字符串‘4da3376323046a3bb6759f0a3f4ae7100a0567950c53ee42d2e19201baaa6dfc’是sha256加密后的字符串。
-
allow_databases:allow_databases标签是指定允许用户访问的数据库,由于clickhouse的监控值保存在system数据库中,这里我们要指定system数据库。
2.在 ClickHouse 上启用 HTTP API
ClickHouse 提供了一个内置的 HTTP API,可以通过它采集 ClickHouse 的性能指标。
2.1启用 ClickHouse HTTP API: ClickHouse 默认通过 8123
端口提供 HTTP API。确保该端口对 Zabbix Server 是开放的:
sudo ufw allow 8123/tcp
sudo ufw reload
2.2验证 ClickHouse HTTP API: 你可以通过以下命令测试是否可以通过 HTTP 访问 ClickHouse:
curl 'http://localhost:8123/?query=SELECT+1'
如果出现上图所示的响应“1”说明API已经开启。
接下来使用下面的命令检查clickhouse的测量值。
curl 'http://localhost:8123/?query=SELECT+metric,+value+FROM+system.metrics'
使用zabbix监控时还需要检查能否通过ip地址获取clickhouse的测量值。
如果使用IP地址无法获取clickhouse的测量值时请检查clickhouse的config.xml配置:
<http_port>8123</http_port>
<http_interface>0.0.0.0</http_interface>
3.为clickhouse主机添加监控模板
进入zabbix的管理页面,找到“配置—–主机”,在右侧列表中点击打开你要配置的clickhouse主机,然后在配置项“主机”中找到模板,并添加Clickhouse by HTTP
模板。
还是在配置页面中,点击“宏”选项卡,添加第一步中我们新增的clickhouse 的zabbix用户及密码。
完成上面的配置之后,在clickhouse服务器上重启zabbix-agent服务。
systemctl restart zabbix-agent
4.查看监控数据
到监测选项面板中查看clickhouse的监控数据,如果没有数据就等几分钟数据就会出来了。
好了,我们先配置了单机版的监控,接下来再配置clickhouse集群的监控。有了监控数据,在使用clickhouse时,特别是进行性能优化时会让你有一种如虎添翼的感觉,所有的优化项都有数据支持了。