分布式监控系统开发【day38】:监控trigger表结构设计(一)
一、需求讨论
1、zabbix触发器的模板截图
1、zabbix2.4.7
2、zabbix3.0
2、模板与触发器关联的好处
好处就是可以批量处理,比如我说我有1000机器都要监控cpu、内存、IO的监控
3、模板触发器多对多的优缺点
1、优点:
可以批量引用,不用重复创建相同的模板,比如我说我有1000机器都要监控cpu、内存、IO的监控创建相同的触发器,
2、缺点:
模板1更改触发器的阀值会影响所有的模板
3、生产不建议使用多对多的关系,这样灵活性就会很差,而且修改模板1会影响别的模板,这样会出现很多坑
4、表达式的创建考虑的逻辑处理
二、实现代码
1、触发器表
class Trigger(models.Model):name = models.CharField(u'触发器名称',max_length=64)severity_choices = ((1,'Information'),(2,'Warning'),(3,'Average'),(4,'High'),(5,'Diaster'),)#expressions = models.ManyToManyField(TriggerExpression,verbose_name=u"条件表达式")severity = models.IntegerField(u'告警级别',choices=severity_choices)enabled = models.BooleanField(default=True)memo = models.TextField(u"备注",blank=True,null=True)def __str__(self):return "<serice:%s, severity:%s>" %(self.name,self.get_severity_display())
2、触发器表达式表
class TriggerExpression(models.Model):trigger = models.ForeignKey('Trigger',verbose_name=u"所属触发器")service = models.ForeignKey(Service,verbose_name=u"关联服务")service_index = models.ForeignKey(ServiceIndex,verbose_name=u"关联服务指标")specified_index_key = models.CharField(verbose_name=u"只监控专门指定的指标key",max_length=64,blank=True,null=True)operator_type_choices = (('eq','='),('lt','<'),('gt','>'))operator_type = models.CharField(u"运算符",choices=operator_type_choices,max_length=32)data_calc_type_choices = (('avg','Average'),('max','Max'),('hit','Hit'),('last','Last'),)data_calc_func= models.CharField(u"数据处理方式",choices=data_calc_type_choices,max_length=64)data_calc_args = models.CharField(u"函数传入参数",help_text=u"若是多个参数,则用,号分开,第一个值是时间",max_length=64)threshold = models.IntegerField(u"阈值")logic_type_choices = (('or','OR'),('and','AND'))logic_type = models.CharField(u"与一个条件的逻辑关系",choices=logic_type_choices,max_length=32,blank=True,null=True)def __str__(self):return "%s %s(%s(%s))" %(self.service_index,self.operator_type,self.data_calc_func,self.data_calc_args)
转载于:https://www.cnblogs.com/luoahong/p/9558352.html
分布式监控系统开发【day38】:监控trigger表结构设计(一)相关推荐
- Python自动化开发基础 分布式监控系统开发实战 day8-李杰-专题视频课程
Python自动化开发基础 分布式监控系统开发实战 day8-10994人已学习 课程介绍 从0基础开始讲解Python语法.流程控制.函数式编程.面向对象开发等重要的Python开发 ...
- 智能农业大棚监控系统开发
近年来,我国农业温室大棚得到了迅速发展,但这些大棚的管理主要是由人工来完成的,管理的技术含量很低.随着温室种植面积的迅速增加,单纯依靠人工管理已经不能满足高效农业生产的需求.随着物联网技术的进一步发展 ...
- 数字视频监控系统开发及应用
前言 第1章 概述 1.1 模拟视频监控现状 1.1.1 模拟视频监控系统简介 1.1.2 模拟视频监控系统存在的问题 1.2 数字视频监控系统 1.2.1 数字视频监控系统的组成 1. ...
- 对微服务监控系统分层和监控架构的理解
对微服务监控系统分层和监控架构的理解 目录 微服务专栏地址 目录 1. 简介 2. 为什么需要监控体系 3. 与单体应用有什么区别 4. 要监控什么 5. 监控体系和分层 6. 监控架构和主流技术栈 ...
- 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目
案例1:常用系统监控命令 案例2:部署Zabbix监控平台 案例3:配置及使用Zabbix监控系统 案例4:自定义Zabbix监控项目 1 案例1:常用系统监控命令 1.1 问题 本案例要求熟悉查看L ...
- 打造自己的树莓派监控系统2--内存监控-matplotlib显示数据
系列文章: 文章1:打造自己的树莓派监控系统1–CPU监控-matplotlib显示数据 文章2:打造自己的树莓派监控系统2–内存监控-matplotlib显示数据 文章3:打造自己的树莓派监控系统3 ...
- 什么是机房监控系统(机房监控系统功能特点)
一个完善的机房环境动环监控系统应该具备三个特点:能够实现从设备运行到机柜微环境再到机房整体环境的多层次监控:有丰富的阈值设置来监控危机的存在,有丰富的预警方式和预警流程来保证相关人员能够收到预警信息, ...
- 水厂监控系统、巡检监控、数据分析、生产报表、工艺报表、设备监控、水厂加药、工艺监控、水质分析、电耗、阀门、供水、冲洗、原水、加氯、蓄水、加药、滤池、沉淀池、配水井、氯耗、压力、浊度日、流量日、故障巡检
水厂监控系统.巡检监控.数据分析.生产报表.工艺报表.设备监控.水厂加药.工艺监控.水质分析.电耗.阀门.供水.冲洗.原水.加氯.蓄水.加药.滤池.沉淀池.配水井.氯耗.压力.浊度日.流量日.故障巡检 ...
- 分布式监控系统开发【day37】:需求讨论(一)
本节内容 为什么要做监控? 常用监控系统设计讨论 监控需求讨论 如何实现监控服务器的水平扩展? 监控系统架构设计 一.为什么要做监控? 熟悉IT监控系统的设计原理 开发一个简版的类Zabbix监控系统 ...
- 艺龙十万级服务器监控系统开发的架构和心得
一.监控系统架构 经历了许多公司,监控系统大概都是从无到有,该经历的也都经历了.所谓监控系统,大概的架构如下: ◆在服务器布置一个Agent,它负责采集数据: ◆由网上转发到一个分布式管道再转接,就 ...
最新文章
- Linux 虚拟化网络技术 — 虚拟二层网卡(Tap)与虚拟三层隧道网卡(Tun)
- 优秀的中文分词第三方库——jieba
- PHP中常见的几种运行代码的方式
- 网络最大流的三种基础算法
- asp 检查黑名单_十九、绕过黑名单检查实现文件上传2
- Windows10 对系统盘C 有效清理
- 光流 | MATLAB实现HS Optical Flow(代码类)
- 自定义PopupWindow弹出后背景灰色状态
- 2017《面向对象程序设计》作业四
- A的大小是多少c语言中,C/C+中字符(A)的大小
- [Leetcode][第977题][JAVA][有序数组的平方][排序][双指针]
- 驱动的定义、分类、安全性
- wordpress模板-单栏多色调全站pajx个人博客模板 idevs主题
- 母亲节:微信喊你给母亲充钱 华为帮你教爸妈用手机
- Amazon亲儿子MXNet与其他框架有哪些不同?| 赠书
- android 批量扫描,Android:连续扫描所有AP(接入点)
- 自定义加载等待动画,仿金山词霸
- 团队管理---管理经典理论
- C++二分查找相关函数用法总结
- android app报告,知乎APP用户体验报告
热门文章
- 关于linux拨号上网的软件实现方案[原创]
- 晨哥真有料丨女生眼中的高级感!
- linux下面java配置,linux下面配置java环境变量
- mysql8 修改密码_Mysql 8新特性之(1):账户与安全更人性化
- 软考路:2021年系统架构设计师之心得
- Linux Intel网卡IGB驱动修改mac地址
- 再记一下sscanf的一个小问题
- sscanf一小用法
- java------用File类列出一个目录下的所有文件夹和文件
- 【Kafka】kafka Failed to acquire lock on file .lock in /data/kafak-logs a kafka instance