Skip to content

zabbix_tool

遇见王斌 edited this page Feb 21, 2018 · 11 revisions

zabbix_tool

zabbix_tool 是使用 python 直接调用 zabbix_api,程序文件为 /opt/ZabbixTool/main.py

1 使用

直接输入 zabbix_tool 时会输出可执行的函数列表

[root@meetbill ~]# zabbix_tool
Usage:
/usr/bin/zabbix_tool create_config
/usr/bin/zabbix_tool status
/usr/bin/zabbix_tool version
/usr/bin/zabbix_tool week_report

上面的几个方法主要是我自己需要用的,自己可以编写下自己需要的哈

2 功能说明

2.1 Create_config 生成所有主机特定应用名对应的 key 列表

应用场景:Zabbix 获取后的数据主动上报到第三方监控平台,并且每台机器上报的监控项在第三方平台上有固定格式名词和上报格式

程序调用流程

  • (1) 读取 /etc/zabbix_tool/zabbix_tool.ini 列表获取应用名列表机器输出文件位置
  • (2) 调用 zabbix_api 的 host_list 接口获取所有机器列表
  • (3) 依次对每台机器调用 zabbix_api 的 item_list 获取此机器对应 application 的 key 列表
  • (4) 以 python 字典的形式输出到配置文件中,默认输出到 /etc/monit_config.py

输出的文件包括以下字典

  • hostname_ip:key 为主机名,value 为 IP
  • hostname_key: key 为主机名,value 为对应主机的监控项 key 列表(特定 application)
  • service_key: key 为监控项的 key , value 为监控项名称(根据监控项 key 生成的名字)

2.2 Status 输出异常主机和正常主机

应用场景:Zabbix 获取后的数据主动上报到第三方监控平台,获取异常主机信息,异常主机单独处理,其他主机则直接将所有监控项生成对应格式文件,同时监控项状态为 OK

程序调用流程

  • (1) host_list=zabbix.host_list() 获取所有机器列表
  • (2) issues_dict = zabbix.issues() 获取异常信息字典,字典的 key 为异常主机主机名,value 为主机异常的监控项 key 列表