zabbix自定义监控项流程

情到浓时终转凉″ 提交于 2019-12-01 06:47:43

网络自动发现

  • 支持自动发现网络设备和服务器(可通过自动配置自动发现服务规则实现)。
  • 支持Agent自动注册。
  • 支持自动发现(Low leveldiscover)实现动态监控项的批量监控(支持自定义)。

自动发现lld机制:

在这里插入图片描述
1.获取监控数据

脚本获取的数据格式必须是字典,或者字典的列表,因为zabbix discovery只接收json格式

e.g
{
   "data": [
  {
  "{#S2BACKUP}": "3306"
  },
  {
  "{#S2BACKUP}": "3305"
  }
 ]
}

2.调用zabbixdiscovery,创建监控项

调用zabbixdiscovery向server端获取监控项,并且创建监控项

3.调用zabbixsender,数据发送给server
调用zabbixsender,将json格式的监控数据导出为文件中,将文件发送给server端
注意必须将zabbix_agentd.conf中的ServerActive设置为server ip,意思为自动注册的监控数据的接收端

e.g
if __name__ == "__main__":

    logutil.make_logger(base_dir='/var/log/zabbix', level='INFO')  ##指定日志目录

    parser = argparse.ArgumentParser(description='zbx lld')  ##调用的argparse模块,主要作用在设置外界传入参数的要求

    parser.add_argument('cmd', type=str, nargs=1, choices=[
                    'discovery', 'report'], help='command to run')  ##指定了两种参数,discovery和report,help为自带参数,会显示参数用法

    args = parser.parse_args()

    cmd = args.cmd[0]

    lld_key = 'S2BACKUP'  
    item_key = 'check.mysql.backup'

    if cmd == 'discovery':  ##设置运行discovery参数执行的内容
        d = ZabbixDiscovery(lld_key=lld_key, lld_list=get_ports())  ##lld_key在Zabbix_Discovery中指定的是item的key list的在item项中的名字{#S2BACKUP},lld_list为key指定的具体key值
        d.dump()  ##d在此处的类型是dict,d.dump将dict转变为json格式

    elif cmd == 'report':
        s = ZabbixSender(item_key=item_key)  ##为监控项key的前缀,如check.mysql.backup.3306.discovery
        data = check_mysql_backup()

        print s.send(data)
        """
         0   # data sent
         -1  # data sent error
        """

zabbix-server机制

1.创建template,添加discovery roles

注:添加filter,根据discovery中{#VALUE}宏名的格式选择合适的filter

在这里插入图片描述

2.添加item prototype

自动注册的type此处选择trapper,原因:trapper的类型针对情况为,agent采用zabbix-sender主动发送监控数据到server

在这里插入图片描述

3.agent自动注册进入,生成item

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

trigger prototype

在这里插入图片描述

graph prototype

在这里插入图片描述

在agent生成的trigger和graph

在这里插入图片描述

文章推荐:

lld web设置:https://www.zabbix.com/documentation/3.4/zh/manual/discovery/low_level_discovery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!