提升zabbix性能的三个方法

好久没有写博客了,不是因为忙的缘故,也不是因为快过年了心情浮躁。总是觉得自己有好多事情没有做,然后时间就那么消失的无影无踪,时常感慨岁月蹉跎,年华易逝;可又觉得自己一直深陷这泥潭之中,不知如何解脱。zabbix这个监控软件也一直在用,但对他的了解却很浅显,从没有沉下心来,好好的去研究下底层原理。最近重读了下吴兆松的《Zabbix企业级分布式监控系统》,正好线上zabbix也做了些小的调整,就把学习到的思路先记录下来,后续再详细研究下。

一:更换mysql的存储引擎为tokudb

肯定很少人使用mysiam的,大多人用的都是innodb,具体到为什么说用tokudb,资料上说是insert性能好,具体有待测试。

二:使用oneproxy做mysql读写分离

zabbix并没有做自己的读写分离,有些人在zabbix web中改了下php代码支持读写分离,然并卵zabbix server还要读取数据库的啊,因此找一个mysql porxy做读写分离,也不是个坏方法。

三:使用分区表

按理说做了前两步之后,再开启zabbix自带的housekeeping功能,自动删除history、trends等数据就行了,但是实际发现根本删除不过来,一堆的事务堵在数据库导致数据库性能严重下降,后来还是关了,改成对history、history_unit等,做分区表(可以按时间来做分区),定时删除。

暂时想到的就这么多,随手一记,也期望能做些更细致的学习,不要浮于表面,知其然更知其所以然。


参考资料:

迁移Zabbix数据库到TokuDB :http://imysql.com/2014/06/24/migrate-zabbix-db-to-tokudb.shtml

试玩oneproxy,做zabbix的读写分离中间件:http://peiqiang.net/2015/12/21/try-use-oneproxy.html

Docs/howto/mysql partition:https://www.zabbix.org/wiki/Docs/howto/mysql_partition