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

相關文章
相關標籤/搜索