像MIUI一样做Zabbix二次开发(4)——乐维监控定制Zabbix的方法
做监控源于我们早期做运维服务的必然需求,我们的愿望是基于Zabbix这个强大开源平台,结合实际一线运维工作的需要+ITIL等运维理论,做成类似MIUI一样的开发、易用、实用、人性和美观的全新的监控平台。
架构设计
下图是我们的软件逻辑架构:

这个架构有两个最重要的基础:
1. 将Hosts区分为主机、网络通讯设备、数据库、中件间、业务系统、虚拟机、硬件、链路等实体IT基础架构组件;
2. 深度定制的基于Zabbix API实现,以PHP语言实现,把Zabbix原生页面保留在系统后台。
软件平台在功能逻辑上分为四层
基础层:这一层以一个分布式、高可用、高并发的软件服务端为基础,构建以被驯服了的监控模板、指标和阀值为基础的底层监控体系,这一层纯粹是我们使用Zabbix的积累和经验。
功能层:基于Zabbix API实现的管理功能,这些功能抽取了大部企事业单位的监控需求的公约数。

展示层:监控效率的显性化表达,大屏设计,业务地图(CFIA的显性化),网络拓扑图,大部分客户都会需要的业务量监控的显性化集成,业务量监控本身又是另外一个话题,当然这里的业务量核心在于源数据的获取,剩下的套路都基本一致,设计指标,设置阀值,触发告警通知等
接口层:主要对接外部接口,如IM、短信、邮件、声音等
在功能上最大的三个特点是结合生产实际:实现了拓扑的自动生成、自定制投屏和业务地图(CFIA,故障组件影响分析树),拉近了Zabbix和业务生产运维的实际需要。
前端交互
界面采用了Twitter开源的Bootstrap的前端框架,图表采用了Baidu开源的ECharts控件。


像MIUI一样做Zabbix二次开发(4)——乐维监控定制Zabbix的方法的更多相关文章
- 乐维监控与Zabbix对比分析(一)——架构、性能
近年来,Zabbix凭借其近乎无所不能的监控及优越的性能一路高歌猛进,在开源监控领域独占鳌头:而作为后起的新锐监控平台--乐维监控,则不断吸收Zabbix,Prometheus等优秀开源平台的优点,兼 ...
- Zabbix二次开发_02获取数据
最近准备写一个zabbix二次页面的呈现.打算调用zabbix api接口来进行展示. 具体流程以及获取的数据. 1. 获得认证密钥 2. 获取zabbix所有的主机组 3. 获取单 ...
- 【NX二次开发】修改dlx对话框标题的方法
修改dlx名称, 修改对话框标题的方法: theDialog->TopBlock()->FindBlock("Dialog")->GetProperties()- ...
- Zabbix二次开发_01基础
最近有个想法:想做一个zabbix数据的二次呈现,所以来写一下Zabbix的api的内容. 先说下zabbix api的认证基础. Zabbix API简介 Zabbix API开始扮演着越来越重要的 ...
- Zabbix二次开发_03api列表_中文版
基于ZABBIX 3.0 https://www.zabbix.com/documentation/3.0/manual/api/reference 参考方法 本节提供了的zabbix提供的功能的概述 ...
- Zabbix二次开发_03api列表
基于zabbix 3.0 https://www.zabbix.com/documentation/3.0/manual/api/reference Method reference This sec ...
- 如何用Qt做SolidWorks二次开发
这个问题困扰了我2年了,之前找到的教程都是MFC的,ATL导入向导或是通过导入类型库的方式来调用控件,我一直都搞不明白. 最近学习了ActiveQT以及通过ActiveQT控制EXCEL.Word.P ...
- 【NX二次开发】属性操作相关函数的使用方法
内容包括:1.属性创建2.判断属性是否存在3.读取属性值4.时间属性转换成字符串5.统计属性的数量6.删除指定属性7.删除全部属性效果: 源码: #include <stdlib.h> # ...
- (50)zabbix API二次开发使用与介绍
zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...
- 【phpcms-v9】phpcms-v9二次开发所必须知道的步骤(转载)
一.做phpcms-v9二次开发时,我们经常需要用到如下代码,所以有必须在这里注释说明一下 defined('IN_PHPCMS') or exit('No permission resources. ...
随机推荐
- python启动robotframework-ride失败,解决方案
python启动robotframework-ride提示str(os.path.dirname(rf_file), 'utf-8'))).publish() UnicodeDecodeErro的解决 ...
- N63050 第十周运维作业
十九.VPN服务 1.firewalld和最新技术nft实现防火墙功能(65分钟) 2.open-v-p-n介绍和环境准备(48分钟) 3.open-v-p-n实现CA证书(45分钟) 4.open- ...
- Java实现简单薪水计算器相关操作代码
/** * 薪水计算器 * 1.通过键盘输入用户的月薪,每年是几个薪水 * 2.输出用户年薪 * 3.输出一行字"如果年薪超过10万,恭喜你超越了90%的国人:如果年薪超过了20万,恭喜你超 ...
- i18n多语言 解决页面一刷新就恢复默认语言问题
- python实现两张图片拼接
纵向拼接 from PIL import Image def image_splicing(pic01, pic02): """ 图片拼接 :param pic01: 图 ...
- (jmeter笔记)有序递增和无序递增
有序递增:计数器 Track counter independently for each user: 不勾选,每个线程引用,顺延递增 勾选 ,每个线程引用,重新计算 Reset counter on ...
- 使用async实现多个请求并发
// 写法一 let [cache, cache2] = await Promise.all([cachePromise, cachePromise2]); // 写法二 let Promise= c ...
- 人眼对led灯的闪烁识别度:写单片机的时候,小于15ms,我们人眼视为常亮
人眼对于每11毫秒闪烁一次约83赫兹基本感觉不到,每15毫秒闪烁一次约66赫兹轻微频闪. 所以写单片机的时候,小于15ms,我们人眼视为常亮
- 简单的自动清理TIM/QQ聊天垃圾文件方案
我平时喜欢在后台挂着Tim,时间一长,我发现数据文件夹会越来越大,即使我没有看过这些消息(多为群聊消息),为了不再惦记清理垃圾文件,我整理了以下方案,可以每天清理一次7天前的文件. 1. 在磁盘任意位 ...
- locust 检查点、集合点、参数化设置。
1.参数化 方式1:循环取数据,数据可以重复使用. 所有并发虚拟用户共享同一份测试数据,各虚拟用户在数据列表中循环取值. 例如,模拟10个用户并发请求网页,总共有4个URL地址,每个虚拟用户都会依次循 ...