Zabbix数据库表浅析

老大说zabbix图形展现没有cacti漂亮,最开始是将zabbix的图形插件ztree上面的展示图改成和cacti展现形式差不多的样子(其实就是稍微改了改ztree插件的php代码和html标签神马的),效果如下:
zabbix01
图形很快就改好了,但是有个大的缺点就是图形没有按业务信息(php,nginx,mysql……)和硬件信息(network,cpu,hdd…)分类,都是混在一起的,不便于观察和查询,老大是完美主义者。最后就开始重新写了个图形展现的模块,数据全部来自zabbix的数据库,死磕了一段时间,基本把zabbix数据库数据结构搞明白了。下面就已如何取一台主机的绘图数据来一一道来:

  • hosts表,有这几个字段需要注意,hostid:每台主机唯一id标识;host:主机名;status:主机状态标识(为0则是你要找的主机,3表示的貌似是模板主机)
    zabbix02
  • groups表,zabbix中所有组和组id
    zabbix03
  • hosts_groups表,关联着上面的两张表,通过它可以由找到每个组的主机,或由主机id找到属于那个组,一样一样的道理。
    zabbix04
  • items表,上面的三张表可以在主机和主机组之间来去自如。items表则记录着没台主机所有图形项目(比如一个网卡图,有流入和流出两根线,则这张图就有两个item)。字段说明,itemid是每个绘图项目唯一标识,hostid每个主机的标识,name每个item的名字,delay数据采集间隔,history历史数据保存时间,status标识item的状态(0表示正常显示的item),units保存item的单位。
    zabbix05
  • graphs_items表,关联着每幅图的item和图形id,简单的说就是告诉我们每台主机有多少幅图及每幅图上有哪些item。
    zabbix06
  • graphs表,关联着图形id和图形的名字,还有其它一些zabbix绘图参数
    zabbix07
  • history,history_text,history_uint有着一样的字段,存储着不同类型item的历史数据,最终1小时或者1天等短时间的绘图数据都从其中获取。每条记录由itemid,clock(时间戳形式,精确到秒),value,ns构成。
    zabbix08
  • trends,trends_uint有有着同样的字段,储存着不同类型item的历史趋势数据,每隔一小时从历史数据中统计一次,并计算统计区间的平均值、最值。长时间区间的绘图数据的数据源。
    zabbix09
  • 以上的这些表之间的关联关系弄明白后就可以绘图了,当然用zabbixapi也是可以画图的。但是,还是那个原因应用和硬件的图分不开(ztree貌似就是用zabbixapi来绘图的)。我是用Highcharts这款插件绘图的,效果不错并且由于绘图方式已经脱离了zabbix,所以应用和硬件信息的图就比较容易分开了,图形展示效果还行
    zabbix10zabbix11
    开发完成后用了一段时间发现Highcharts在前端绘图渲染时,如果单副图的数据过大(如3万左右的监控数据)会显示很慢,之后还是用RRDtool绘制的图形,RRDtool绘图不仅快而且美观,具体的效果可以参看
    Zabbix与RRDtool绘图篇(6)_最终图形展示
    原创转载请注明出处 http://www.xiaomastack.com/2014/07/03/zabbixdbtable/ 谢谢!

    12 Comments

     Add your comment
    1. 博主能不能加一下我的QQ,
      2086248557有问题请教!!

    2. 已加

    3. 哥们可以加我吗?请教一个问题
      1280121018

    4. 已加

    5. 请教关于zabbix数据库表的问题
      QQ:2329143336

    6. 已加

    7. 博主,可以加下QQ吗,ns字段是什么意思,谢谢
      360929805

    8. https://www.zabbix.com/documentation/2.0/manual/appendix/api/host/definitions
      还是要感谢你,找到了api中的表结构部分

    9. 接收item值时的时间值存放在两个字段内,大于1秒的部分存放找clock字段单位是秒(s),小于一秒的部分存放在ns字段单位是纳秒(ns)。两个字段相加的值才是接收item值时的时间值,一般不用关心小于1秒的部分。

    10. 客气了!

    11. 905600227有问题请教!

    12. 博主,能否加下QQ,4520336,有问题请教

    发表评论:

    你的电子邮件地址将不会被公开.

    36 ÷ = 6