基本配置項
https://www.jianshu.com/p/bffca8128e8f
官方說這個實驗性的功能支持es的版本是5.0.x - > 6.1.x,如果使用早期或更高版本的Elasticsearch,某些功能可能無法按預期工作。
測試環境的es版本是6.2.4,zabbix為4.0,也能完成zabbix的歷史數據對接。
在zabbix server端配置historystorageurl為es數據庫的url,同時在zabbix.conf.php中配值es的相關配置,zabbix歷史數據的五個表,映射到es中的5個索引
官方提示 :必須創建映射。 如果未按照要求創建映射,則某些功能將無法正常使用。
在我完成配置項重啟zabbix服務后,歷史數據交給了es處理,同時在es中自動創建出有數據的索引項,
此處有個問題,當監控項中沒有text類型或者log類型的數據時,es是不會創建出這些索引的,此時如果get的話會有404 not found的報錯
而且,在log類型的數據接入到es中后,timestamp字段的值不會像mysql中一樣是一個時間戳,es將其設置為0
監控項的歷史數據的存在時間,在es中變為一個ttl字段,單位為秒。(zabbix中歷史數據的有效期最小值為3600s,1個小時,比這個值小的話就會報錯。)
備注:
在原來的mysql數據庫中,歷史數據可以交給housekeeper來管理刪除,在es中,數據是不會刪除的,只是在每個文檔中增加了一個ttl字段來記錄這條記錄的歷史有效時長。單位s
zabbix_server配置文件中對hosekeeper的解釋配置,就是清理數據庫里過期的歷史數據
查看housekeeper的執行情況 /var/log/zabbix/zabbix_server.log
大意就是說首先刪除 歷史表,趨勢表中使用clock, 刪除監控項從時間表,確認時間,提示表中。
hosekeeper當量大了挺雞肋的,刪除的速度趕不上增加的速度
優化參考:
先配置獨立數據庫,使用獨立表空間
http://junqili.com/zabbix/zabbix-performance-tunning/
然后按照官網的這個文檔對mysql 做分區
https://www.zabbix.org/wiki/Docs/howto/mysql_partition
參考資料:https://www.zabbix.com/forum/showthread.php?t=43311
https://www.zabbix.com/forum/showthread.php?t=43311&page=2