zabbix性能优化实践

简介:

最 近在做数据平台这边的监控,因为之前一直在用zabbix,而且个人比较倾向于把数据放在数据库中(这一点nagios和cacti是没法和zabbix 比的),方便后面做进一步的分析和处理(容量规划等)。在架构上考虑到扩展性和性能问题,采用了master---proxy的结构,其中proxy使用 active的模式,这样可以减轻master端的压力。

谈几个遇到的问题:

1.首先,为了了解zabbix的性能情况,增加了zabbix相关的metric监控

(具体见:http://1662935.blog.51cto.com/1652935/1345664)


2. 监控添加问题,开发了添加监控的前端页面,使用zabbix api的方式来一键添加监控,完成链接模板,分配分组的操作。其中主机到模板的链接通过主机名的方式进行匹配,缺乏可维护性,因为现在cmdb不可用,和 同事讨论下来,准备自己在数据库里面维护一套信息(host--process,process--template),每天动态更新。


3.在一个proxy添加了200台机器后,开始遇到了断图的问题

比如下面这个:

142811742.png

通 过分析zabbix server 数据库中history的数据,发现有数据丢失的情况,interval 为60s,1小时应该有60条数据,但是在数据库中只有十几条,进而分析proxy 数据库中的items表,delay设置是没有问题的,排除config sync的问题,分析agent端的日志,发现在agent端就存在数据获取不完整的问题(agent使用了passive的模式),也就是说proxy busy造成了获取数据不完整,调整StartPollers后解决,这个值默认是5,在passive agent的模式下,远远不够用,建议改成hosts*1.5的值。


4.unreachable 问题

1) 接入机器后,出现大批的host unreachable的报警(agent.ping item),但是主机是可以通的,通过部署网络监测脚本,排除agent---proxy---master 3者间的网络连通问题。通过增大 StartPollersUnreachable和UnreachablePeriod解决。

2)报警问题,zabbix在 ok--->unknown状态时不会产生报警,因此unreachable的报警不能发现host item获取值的问题,可通过增加host update percent监控实现(具体见:http://1662935.blog.51cto.com/1652935/1345789)。


5.集群整体update percent很低

通过breakdown到host,发现部分host update percent导致(几台机器agent有问题,值状态为unknown)修复后,整体的update percent升高到98%左右。


6.proxy服务器load问题

一 个proxy接入350台左右的集群,nvps200左右,但是load比较高,因为agent是passive的模式,数据获取都是proxy负责的, 因此如果item比较多,proxy的压力就会比较大。考虑转换agent的模式为active,将压力分散到agent端,proxy只负责数据 sync和config sync,调整后,proxy压力减小了很多,具体见下图(没数据的地方是item没有调整为active导致)


142835755.png


同时解决了queue过多的问题,调整后,基本没有超过5分钟的delay了。


142902575.png


7.housekeeper的问题

master端和proxy端都存在这个问题(proxy不能disable housekeeper),master端可以通过disable 并partition db解决,因为需要停机维护,暂时还没做调整。


8.db partition 

http://caiguangguang.blog.51cto.com/1652935/1354093


通过上面的调整,zabbix基本没什么压力了(单proxy 350台),扩展性也不错,后面需要做benchmark test,看看能跑到多少nvps.



小结:做zabbix的性能调优之前,要做好zabbix性能的监控,调整中要考虑把压力分散,master分散至proxy,proxy分散至agent。

对zabbix的工作机制和各种process的作用要了解,对zabbix的数据库表结构也要有比较好的理解。


本文出自 “菜光光的博客” 博客,请务必保留此出处http://caiguangguang.blog.51cto.com/1652935/1346372


      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1601447,如需转载请自行联系原作者








相关文章
|
3月前
|
SQL 关系型数据库 MySQL
MySQL进阶之性能优化与调优技巧
MySQL进阶之性能优化与调优技巧
|
1月前
|
缓存 PHP 数据库
PHP程序性能优化指南
在当今互联网快速发展的时代,PHP作为一种流行的服务器端脚本语言,其性能优化显得尤为重要。本文将介绍一些提升PHP程序性能的有效方法,帮助开发者更好地优化他们的代码,提升应用程序的响应速度和效率。
|
3月前
|
监控 关系型数据库 MySQL
MySQL高可用与性能优化综述
MySQL作为一种常用的关系型数据库管理系统,高可用性、索引优化、事务处理和性能调优一直是开发人员和运维人员关注的重点。本文将从MySQL高可用性解决方案、索引设计与优化、事务处理最佳实践以及性能调优策略等方面进行探讨,为读者提供全面的MySQL技术知识概览。
|
9月前
|
SQL 缓存 关系型数据库
简述MySQL可以从哪些方面做到性能优化
数据库设计优化:良好的数据库设计是性能优化的基础。包括选择适当的数据类型、建立正确的索引以及合理划分表等。通过优化数据库结构,可以减少磁盘空间的占用和提高查询效率。
73 0
|
9月前
|
存储 监控 关系型数据库
MySQL数据库查询性能优化的技巧和经验分享
MySQL数据库查询性能优化的技巧和经验分享
|
9月前
|
消息中间件 监控 固态存储
榨干服务器:一次惨无人道的性能优化
做过2B类系统的同学都知道,2B系统最恶心的操作就是什么都喜欢批量,这不,我最近就遇到了一个恶心的需求——50个用户同时每人导入1万条单据,每个单据七八十个字段,请给我优化。
|
10月前
|
监控 网络协议 安全
聊聊服务器性能优化~(建议收藏)
聊聊服务器性能优化~(建议收藏)
269 0
|
存储 缓存 Prometheus
ELK 性能优化实战
ELK 性能优化实战
|
关系型数据库 MySQL 测试技术
增补mysql的性能优化数条经验
增补mysql的性能优化数条经验
113 0
|
Linux 网络安全

推荐镜像

更多