CW-Zabbix是一个Zabbix的二次开发项目,它目前基于Zabbix 5.0.4版本,使得Zabbix支持向Clickhouse写入指标数据。Zabbix在运行中产生的主要数据基本上可以分为history数据和trend数据。其中,trend数据是根据history计算出的各种中间值,如平均值,最高值等。而history就是zabbix搜集到的各种指标的实时历史数据,我们的目标就是把这些时序数据导入到clickhouse中,使其速度提高一百倍。
CW-Zabbix核心特性
- 性能提升100倍
使用 ClickHouse 作为历史存储引擎,比其他存储引擎更高效、快速。在相同硬件上使用 ClickHouse 可节省 20-50 倍的 CPU 时间、磁盘操作和磁盘大小。
- 无需过多配置
编译、部署过程与官方步骤相同,可参考Zabbix官方文档(v5.0.4)使用,对接Clickhouse数据库仅需要修改部分配置文件即可。
- Web 响应更快
Zabbix在监控项过多的场景下,页面响应缓慢。CW-Zabbix优化了请求处理,支持并发场景。
测试对比
测试一:
设备的配置为2核4G内存40G硬盘。在实验开始前记录对照组每个机器空闲时的资源利用率:
执行zabbixsender脚本,向20w监控项发送指标数据,记录脚本的执行完成与数据落盘时间:
测试二:
设备的配置为4核16G内存40G硬盘。在实验开始前记录对照组每个机器空闲时的资源利用率:
执行zabbixsender脚本,根据脚本的执行完成与数据落盘时间进行对比:
写入数据时,两者的MysqlServer与Mysql、ClickHouseServer对系统的开销情况:
写入数据时,ZabbixServer与CW-ZabbixServer对系统开销情况:
从CW-ZabbixServer和ZabbixServer服务器系统资源消耗情况可得出,CW-ZabbixServer在处理数据时,系统开销总体小于ZabbixServer系统开销,CPU利用率与内存利用率有所降低。