设为首页 收藏本站
查看: 1875|回复: 0

[经验分享] 大话zabbix 3.0设计假设

[复制链接]

尚未签到

发表于 2017-4-20 10:54:36 | 显示全部楼层 |阅读模式
What’s new in Zabbix 2.0?
  去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:

  •          :: Performance improvements::Trigger related data is cached to reduce number of database requests, it improves overall performance of Zabbix Server.
  •          :: Much faster processing of escalations::Processing of escalations has been improved to work more efficiently.
  其他都是些enhancement,比如增加vm.memory.size的自带监控项,新的login界面,支持jmx,导出csv等等,觉得没啥意义。底层的设计已经不会做改动了。
  感觉Zabbix目前更关注易用性(比如界面)而不是性能方面的问题。因为也许大规模使用Zabbix的公司只有10%,解决这些large scalability的问题需要很多的时间和精力。大概Zabbix本身就不是为了这个方向而做的。
  下面谈谈Zabbix底层的一些问题和想法。
Zabbix 3.0 by me?
  在使用过程中,发现有很多问题,其中解决了几个performance方面的问题。但还有很多问题是没有解决的,主要原因是现在运行的比较稳定,如果patch代码,需要改代码,测试等。有风险,有些太底层的问题,也许需要几个月的时间来解决,没这个时间和精力。
  最近在想,如果我来设计Zabbix 3.0,我会做怎样的修改?下面说说想到的东西:

  • 砍掉乱七八糟的功能,做纯粹的监控系统,收集数据,数据展现,报警。
  • 改进Proxy和Server之间的网络传输性能。我们有一台电信的Proxy,Server在网通,有时会莫名其妙突然这台Proxy监控的机 器全部停止更新数据。而此时日志完全正常,网络情况也非常好(30ms,0%丢包)。机器配置和其他Proxy一致,唯一的区别就是网络,难道 Zabbix对于网络的要求这么苛刻?看来是老美不了解我们水深火热的网络情况啊。
  • API性能问题。Zabbix的API是基于PHP的。无论你是用Apache(最早我们用的),还是Nginx+php-fpm(现在我们用 的),在高并发的情况下都有性能问题。目前除了调优参数,就是定时重启php了。这个非常麻烦,有时其他程序过来的API连接,就因为重启而被关闭了。现 在解决方法是每个程序自己弄个pool来做连接池(本来想在php之前做一层pool的,但改动较大,放弃了)。
  • 降低数据库敏感性。在比较清楚Zabbix表结构后,很多操作都是通过直接update数据库完成的。最近在update proxy_hostid(调整Proxy监控的机器)时,Server会出现crash。我直接update数据库而不是使用API就是因为之前说到的 API在高并发的情况下的问题。这是因为Zabbix会将一些信息缓存到内存中,如果发现不匹配或者说冲突,Server就会crash。我联想到另一个 问题,在1.8.X的时候,Zabbix有个奇怪的限制,就是duplicate hosts问题。它是指在Zabbix中有两台host,hostname相同,那么Server就会crash。但我发现,有时明明没有相同 hostname的host,也会crash。原来,Zabbix会将host列表读入内存,如果一台机器,你删了,再马上加,内存中的缓存还在,那么 Zabbix就会认为是duplicate host,从而crash。这两个问题总结到一起来说,就是Zabbix对数据库太敏感。细小的变动会有大问题。
  • 简化数据库表结构,提高SQL执行效率。这个和1.有关,干掉乱七八糟的功能,简化数据库表结构;Zabbix拼SQL会弄出非常恶心的SQL, 直接让数据库lock半天。之前一直诟病Zabbix奇怪恶心的表结构,最近在看《企业应用架构模式》,发现其中的一些设计并不是不无道理的。这点关于数 据库的想法,需要以后再检验。
  • 提升前端易用性和fix bug。Zabbix的前端有个很奇怪的地方,比如我打开两个页面,在看不同分组的hosts,记为Group A,Group B。我先打开Group A的页面,再打开Group B的页面。然后在Group A这里更新一些东西,按道理跳到别的界面更新完后,会跳回Group A的界面。真实情况是,会跳到Group B的界面。还有莫名其妙的bug,比如Administrator-User那里没法添加用户等。(这些问题估计Zabbix在新版本中已经解决了)。
  • 增强安全性,比如zabbix_get权限控制,不单单要写在agent的配置文件中,需要更严格的安全验证。
  就想到这么多了,如果有其他想到的,以后再补充。
  转自八牛的博客

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366777-1-1.html 上篇帖子: zabbix二次开发及app 下篇帖子: zabbix监控参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表