自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表、Hosts_groups表、Interface表

点击返回:自学Zabbix之路

点击返回:自学Zabbix4.0之路

点击返回:自学zabbix集锦

自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表、Hosts_groups表、Interface表

说在前面:

  • 数据库中的表的名称都是复数,比如存放Host信息的表的名字是Hosts等。
  • 数据库操作有风险,一旦出问题会造成Zabbix crash。需要谨慎操作。
  • 普通的查询可以在备库上进行。两边数据是实时同步的。

概述:

  • Zabbix数据库共有108个表,表的名称都是复数的。
  • 针对Zabbix中的每一个资源,都有一张表与其对应,比如hosts表,items表等。
  • 每一张表中都有一个id字段,如hosts表中的hostid,items中的itemid等。而资源之间的关联关系是通过外键来完成的。
  • 资源之间的关联关系是通过外键来完成的。比如host和item的关联关系,就是在items表中使用hostid与hosts表中的资源进行关联。

1. Hosts表

“host”就是一台被监控的对象。

Hosts表结构如下:

  • Hostid:唯一标识Host在Zabbix及数据库中的id。不同表之间的关联也要用id。
  • Proxy_hostid:若启用“proxy-server”架构,才会出现被监控机器的proxy_hostid。
  • Host:被监控机器的名字。
  • Dns:DNS的名称。
  • Useip:是否用ip监控。
  • Port:监控的端口。
  • Status:机器目前的状态。“0”为正常监控,“1”为disable。
  • disable_util,error,available,errors_from(ipmi_disable_util,ipmi_error…和 snmp_disable_until…都是此类):这几个都是Zabbix Poller会去修改的值。我看了下poller.c的代码,当poller在第一次取不到值(根据值的类型不同会更新相应的列,Item类型为snmp就会更新snmp_XXX,默认为“zabbix”类型)的时候,会等15秒(CONFIG_UNREACHABLE_DELAY)来重试,并且日志会显示“first network error”,如果15秒后依然取不到值,zabbix会在数据库更新这个host取不到值的信息,即这几列。并且日志里显示“another network error”。 
  • Lastacess:表示proxy最后一次工作的时间。这里的“工作”指Zabbix Server收到Proxy数据。
  • Ipmi*、snmp*、jmx*为使用这三种监控方式时的监控记录。
  • maintenanceid,maintenance_*:这是Zabbix另一个机制Maintaince有关,用于使Host 置于维护状态而不会报警。

简单针对Host的操作:
  更新机器的proxy。找到proxy的hostid,更新对用host的proxy_hostid: 
           select hostid from hosts where host='ProxyA' and ip='0.0.0.0';  -- get hostid: 1234 
           update hosts set proxy_hostid=1234 where host='Host_To_Update_Proxy'; 
   得到更新的Host状态(enable/disable)如下:
         update hosts set status='0' where host='Host_To_Enable'; 
         update hosts set status='1' where host='Host_To_Disable'; 

2.Hosts_groups 表

  hosts_groups保存了host(主机)与host groups(主机组)的关联关系。

  这部分信息可以在我们自己做一些批量查询,例如查询关联到某个主机组的所有设备的IP 、存活状态等,进一步去查询该批量设备的load、IO、mem等统计信息。

3.Interface表 

  Interface表用于存储每一个host的接口信息,此表与hosts表分离,方便了用户修改信息与管理。

 

posted on 2018-01-11 08:05 CARLOS_CHIANG 阅读(...) 评论(...) 编辑 收藏

导航