Zabbix实战-简易教程--DB类--ClickHouse

1、ClickHouse介绍

Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。
传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足够高的情形下能正常提供服务。但残酷的是,这种理想情形最终会随着业务的增加走到尽头,查询会变得愈来愈慢。你可能经过增长更多的内存,订购更快的磁盘等等来解决问题(纵向扩展),但这只是拖延解决本质问题。若是你的需求是解决怎样快速查询出结果,那么ClickHouse也许能够解决你的问题。
应用场景:
  • 1.绝大多数请求都是用于读访问的
  • 2.数据须要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更新操做
  • 3.数据只是添加到数据库,没有必要修改
  • 4.读取数据时,会从数据库中提取出大量的行,但只用到一小部分列
  • 5.表很“宽”,即表中包含大量的列
  • 6.查询频率相对较低(一般每台服务器每秒查询数百次或更少)
  • 7.对于简单查询,容许大约50毫秒的延迟
  • 8.列的值是比较小的数值和短字符串(例如,每一个URL只有60个字节)
  • 9.在处理单个查询时须要高吞吐量(每台服务器每秒高达数十亿行)
  • 10.不须要事务
  • 11.数据一致性要求较低
  • 12.每次查询中只会查询一个大表。除了一个大表,其他都是小表
  • 13.查询结果显著小于数据源。即数据有过滤或聚合。返回结果不超过单个服务器内存大小


相应地,使用ClickHouse也有其自己的限制:git

  • 1.不支持真正的删除/更新支持 不支持事务(期待后续版本支持)
  • 2.不支持二级索引
  • 3.有限的SQL支持,join实现不同凡响
  • 4.不支持窗口功能
  • 5.元数据管理须要人工干预维护

 

2、ClickHouse监控

本文不介绍ClickHouse的具体功能,只是讨论监控。牛逼的Altinity公司提供了,clickhouse zabbix监控的脚本及模板,可是导入模板时,发现是3.4版本的,里面有些参数不支持,因此从新制做了3.0版本的模板。github

废话很少说,直接说监控过程。shell

一、前提条件数据库

  • 确保xmllint已经安装.
  • 确保clickhouse-client已经安装.
  • 编辑 /etc/zabbix/zabbix_agentd.conf. 添加内容:
	UserParameter=ch_params[*],sh /PATH/TO/zbx_clickhouse_monitor.sh "$1" "HOST_WHERE_CH_IS_RUNNING"

二、说明缓存

  • /PATH/TO/zbx_clickhouse_monitor.sh 取决于你存放的位置
  • HOST_WHERE_CH_IS_RUNNING是个可选参数,若是没有指定,localhost是默认使用的。

三、导入模板服务器

导入模板:zbx_clickhouse_template.xmlspa

四、数据展现3d

 

五、图表展现code

 

 

 

 

3、源码

附上源码和模板:xml

https://github.com/loveqx/zabbix-doc/tree/master/zabbix-scripts/zabbix-template-clickhouse

相关文章
相关标签/搜索