文档章节

orabbix结合python发送图形报表

Foundation
 Foundation
发布于 2015/12/25 09:25
字数 1209
阅读 174
收藏 2

在数据库的运维工作中,如果有一种运筹帷幄的感觉,那么其中一种方式就是看报表,比如喝着咖啡缓缓打开电脑,几十台,上百台的机器的负载明细都在眼底。如果某个地方出现了异常或者明显的抖动,在报表中也能够很清晰的显示出来。
目前这种情况还是很难实现,但是我们可以创造,之前的博文中也分析过了zabbix+orabbix的监控方式,还是存在很多亮点,在监控和定制功能上确实很强大,gc功能本身就很强大,但是扩展相对还是比较困难的。
首先我们来show一个概览图,这个是我们努力的目标。比如我们有几十台DB服务器,在开始工作前看看这个报表无疑会让你的工作针对性更强,哪些是需要重点关注的,哪些可能是潜在的问题,哪些问题迫在眉睫需要解决。

比如我们收到了下面的形式的邮件,描述的是4台DB在过去的24个小时内的等待事件,是不是相对来说感觉要清晰一些,当然我们还可以扩展其它的监控项。orabbix图形报表 - 1

要实现这个效果,着实不是一件容易的事情。
自己也是各方找了各种资料,也是在不断的失败经历中总算看到了一丝曙光。
首先要通过zabbix得到这个图片,大体的原理如下:
要得到一个基本的图形,除了基本指定长宽之外,最主要的就是graphid和screenid这两个属性
orabbix图形报表2 - 2
orabbix会把数据通过Jdbc得到后传给zabbix中的mysql表中,当需要取得对应的数据信息时,通过图形的方式还是要依赖screenid和graphid,在对应的表中进行关联得到数据的变化情况。
明白了基本原理,我们为了实现发送邮件中嵌入图形的需求,就需要把这些图形以附件的形式发送邮件。
按照这个思路还是有几件必须要完成的事情,
1.知道screenid和graphid和mysql表的关联关系
2.利用screenid和graphid得到对应的报表图片
3.把图形存储在临时目录下
4.把图形以附件的形式发送。

第1步从网络中也会得到一些基本的信息,如果想得到更多的明细信息,似乎资源也有限,从我的实验来看,表关联关系和网络还是存在一定的差别,最后我是根据几个关联表的数据反复比较,最后也算是找出了规律,后面详细介绍表关联关系的细节。
第2步通过screenid和graphid得到对应的报表图片,这个步骤是基于第1步,我们可以做基本的测试,得到图片的url格式,然后把一些非必须字段,比如长宽等给定一个默认值即可。
第3步需要把图片能够下载下来存放在临时目录下,这个过程还是需要借助脚本来完成,这方面python的强大的web功能就派上了用场。可以基于根据url下载图片,然后把图片放入web服务器的默认路径下,比如/var/www/zabbix/reports
第4步就是借用邮件发送的功能来把图片放入附件中,这个部分还是使用python来做,把步骤3,步骤4的功能都独立成对应的功能点。
看起来各个功能还是紧密关联的,但是我们可以把它拆分开来,比如我们可以直接实现第4步,模拟我们收到了图片的场景即可。
得到图片graphid和screenid的部分,我们可以在已有的监控图中查看属性得到一个url样例,然后按照这个格式来进行修改定制。
如果实现得都差不多了,再回到第一步来解析数据字典也不迟。解析数据字典的比偶关联有点懵懵懂懂,压根没有datamodel之类的详细文档,好在开源项目的表结构还是很清晰,还是能够基本看出字段,表名的含义,比较清晰,侥幸解析出来了关联关系。

详细的步骤在第二篇中进行分析。

原文:http://blog.itpub.net/23718752/viewspace-1776784/

如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。
免费下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

© 著作权归作者所有

Foundation
粉丝 10
博文 208
码字总数 157873
作品 0
无锡
私信 提问
这里有8个流行的Python可视化工具包,你喜欢哪个?

喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?之前文章里出现过漂亮的图表时,也总有读者在后台留言问该图表时用什么工具做的。下面,作者...

机器之心
04/29
0
0
还在做重复的劳动,不如用Python自动生成Excel以邮件发送

作者:王向君 文章来源:https://zhuanlan.zhihu.com/p/41670796 数据分析师小王每天都要被各种各样的数据数据报表搞得焦头烂额,比如老板的,运营的、产品的等等。而且大部分报表都是重复性...

菜鸟学python
2018/09/02
0
0
10个Python 统计报表/图表图形类库

今天介绍一些Python中用于画图表图形的类库。因为有些时候,他们跟matlab一样简单,方便。而且有些也具有非凡的表现力。 matplotlib,官网:http://matplotlib.sourceforge.net/,Matplotlib ...

大数据之路
2012/08/24
0
0
Zabbix 3.2.6 通过Orabbix监控Oracle数据库

一、背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩...

wzlinux
2017/09/28
0
0
开源的压力测试工具 PyLot

一、什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行HTTP负载测试,这对于制定容量计划、确定基准点、分析系统瓶颈以及系统调优都非常有用...

FreeZ
2011/03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
12分钟前
1
0
解决Windows和Ubuntu时间不一致的问题

解决Windows和Ubuntu时间不一致的问题 问题原因是使用的时间不一致导致的。win10直接从bios读出来的时间认为就是实际时间,ubuntu认为加上8个小时 后的才是。win10用的rtc ,ubuntu用的utc 在...

shzwork
15分钟前
1
0
mysql mysql三种插入数据语句和增删改方法

点开题目是不是有点懵X,因为你只知道insert...values这一种,重来没有听说过三种,现在来介绍一下。 插入数据三种方式: insert into 表名(字段名) values(插入值); 最常用的插入语句 inse...

edison_kwok
16分钟前
2
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
28分钟前
0
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部