当前位置:首页 > 开发 > 开源软件 > 正文

大话zabbix 3.0设计假设

发表于: 2015-05-04   作者:ronin47   来源:转载   浏览:
摘要: What’s new in Zabbix 2.0? 去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:          :: Performance improvements::Trigger related da

What’s new in Zabbix 2.0?

去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:

  1.          :: Performance improvements::Trigger related data is cached to reduce number of database requests, it improves overall performance of Zabbix Server.
  2.          :: 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,我会做怎样的修改?下面说说想到的东西:

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

就想到这么多了,如果有其他想到的,以后再补充。

转自八牛的博客

大话zabbix 3.0设计假设

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Zabbix 3.0 安装 原文地址http://mp.weixin.qq.com/s?__biz=MzA5NjgwNzM0OQ==&mid=401897477&idx=1&
How to Install Zabbix 3.0 Beta on CentOS 6 Posted on January 26, 2016 by Ingus The long await
How to Install Zabbix 3.0 Beta on CentOS 6 Posted on January 26, 2016 by Ingus The long await
1、面向对象的设计思想: 可维护:要改,只需要更改要更改的地方,不需要更改的地方不动, 提取可能
前言 如何实现一个高效简单的系统权限体系是我们长期以来都在思考的问题,也是最近一年来我思考得最
前言 如何实现一个高效简单的系统权限体系是我们长期以来都在思考的问题,也是最近一年来我思考得最
导言: 大话设计模式这本书根据设计模式的用途将23个经典的设计模式分为创建型模式、结构性模式、行
第一遍看这本书,只是把目录看了一下,把最后的模式总结看了一下,里面的故事很精彩,很有趣,对设
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,这个主体对象在
大话设计模式 何为设计模式?在面向对象的设计过程中,我们经常会遇到很多重复出现的问题,总结解决
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号