zabbix自定义监控项流程

网络自动发现

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

自动发现lld机制:

zabbix自定义监控项流程_第1张图片
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

zabbix自定义监控项流程_第2张图片

2.添加item prototype

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

zabbix自定义监控项流程_第3张图片

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

zabbix自定义监控项流程_第4张图片
zabbix自定义监控项流程_第5张图片
zabbix自定义监控项流程_第6张图片

trigger prototype

zabbix自定义监控项流程_第7张图片

graph prototype

zabbix自定义监控项流程_第8张图片

在agent生成的trigger和graph

zabbix自定义监控项流程_第9张图片

文章推荐:

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

你可能感兴趣的:(zabbix)