设为首页 收藏本站
查看: 1413|回复: 1

[经验分享] Zabbix与Python不得不说的基情——用Python定制自己的zabbix界面

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-11-1 09:04:41 | 显示全部楼层 |阅读模式
分享提要
在平时的工作中,Zabbix对于运维来说是一个非常重要的工具,在马哥的课程中也有相当的体现。Zabbix的图形界面已经相当漂亮了,今天Derek老师就会带领大家一起来定制属于自己的监控页面哦!
大咖身份
Derek
国内某小型互联网运维工程师,51CTO推荐博客博主、5年linux一线经验,擅长shell脚本、python开发、自动化运维、web应用等,曾就职过国家电网、链家、新浪等知名公司与企业,现在关注自动化运维、虚拟化技术。

分享开始
大家好,我是今天的分享老师Derek,今天给大家带来的分享是zabbix与python之间不得不说的基情,想必在平时的工作中,大家用到的监控软件还是以zabbix为主吧,咱们的课程中马哥对zabbix也是花了很大的时间来介绍它的原理,安装,配置,维护等,但是不知道大家有没有觉得,zabbix的图形界面不是很漂亮,那么我们是不是可以自己来定制专属于我们自己的zabbix的监控界面那,如果你也有这样的想法,那么希望今天我分享的内容对你有一定的帮助。
今天我们首先会对zabbix进行简单的介绍,但是这里不会涉及zabbix的原理,安装,配置与维护,这些内容马哥的视频中已经讲的很清楚了,咱们为了节省时间,就不再做过多的介绍,会对zabbix-python模块进行介绍,包括模块的安装,使用,为了后面出图的方便,我们会对python的time模块进行介绍,最后我们会给大家介绍如何用咱们通过api查到的数据绘制出漂亮的图形
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
首先,我们来看一下zabbix的介绍,zabbix在官网写了这样一句话:The Enterprise-class Monitoring Solution for Everyone(所有人的企业级监控解决方案),zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。        
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
现在最新的稳定版本是3.4.3,关于它的安装,配置等可以参考咱们的课程中的相关介绍。
介绍一下我本地的环境,我本地准备了一台机器,里面分别安装了zabbix的server和zabbix的agent客户端,后面我们所有的操作都连接这台机器进行操作, 我这里是用到的版本为3.0.8  
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
接下来我们来对zabbix的api进行简单的介绍
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言,使用非常方便。
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们看到zabbix支持的python的模块有这么多,接下来我们开始来介绍今天的重头戏pyzabbix的使用
d3hfZm10PXBuZw==.jpg
d3hfZm10PXBuZw==.jpg
我们对pyzabbix的介绍,只挑选几个最基本的介绍,比如安装,获取zabbix的版本号,获取监控的主机组,获取某个主机组中主机,获取用户组,获取某个用户组中的用户,获取某台主机的item,获取某个item的hstory,由于时间关系,我们现在只对zabbix做获取操作,至于新增,更新,删除等操作,朋友们可以看官方文档来完成。
首先是安装,可以通过pip来进行安装,安装命令是:pip install pyzabbix
安装完成以后,第一步我们来获取一下我们的zabbix的版本号,看看和我说的是不是一样
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们可以看到我们的版本是3.0.8
d3hfZm10PXBuZw==.png
我们来看一下我们页面上的版本号,也是3.0.8,那说明我们获取的没有问题
接下来我们来获取我们的主机组,我们可以先打开zabbix的官方文档,https://www.zabbix.com/documentation/3.0/manual/api,找到Host group
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们可以看到我们可以对主机组有这么多的操作,我们此次只演示,hostgroup.get的操作
我们可以看到我们在进行get操作的时候可以传递很多的参数,参数的含义咱们这里就不做一一说明了,有兴趣的朋友可以看一下文档的介绍,接下来我们来获取我们系统的主机组 aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们也可以指输出我们需要的内容,比如只输出groupid和name aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
获取到主机组的信息了,那么我们来获取zabbix server组里面的主机,我们也是首先找一下官方文档,看一下我们主机可以进行的操作
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们这里还是只做get操作,我们这里来获取一下zabbix server组里面的主机看一下 aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
这里为了操作方便,我们只需要获取主机的id和主机的name aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.png
系统的用户组和用户的获取方式与主机和主机组的获取类似,为了节省时间,我们这里就不在进行一一获取,有兴趣的小伙伴可以自己尝试一下。
接下来我们来获取监控项,然后选择一个监控项来获取这个监控项的数据,首先来获取监控项,我们还是先来看一下官方文档的介绍 aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
接下来我们来获取我们主机id为10084的监控项
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们可以看到我们一台主机的监控项还是有很多的,我们还是挑一个监控项来获取他的监控值,还是老办法,先看一下官方文档对于监控值的说明以及可以做的操作

监控值只能用来获取,我们这里随便选择一个item来获取一下他的监控值,我们这里选择获取机器15分钟的loa d3hfZm10PXBuZw==.jpg d值,它的itemsid为23295,我们来获取最后10次的值,然后根据时间来进行一下排序
我们可以看到我们获取到的是时间戳,可以将时间戳转换成年月日的类型,可以用到time模块,time模块的具体应用咱们这里就不具体讲了,有需要的朋友可以自己看官方文档
接下来我们来介绍使用erchart来绘制我们想要的图形
ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。
ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化。
ECharts 提供了常规的折线图,柱状图,散点图,饼图,K线图,用于统计的盒形图,用于地理数据可视化的地图,热力图,线图,用于关系数据可视化的关系图,treemap,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
你可以在下载界面下载包含所有图表的构建文件,如果只是需要其中一两个图表,又嫌包含所有图表的构建文件太大,也可以在在线构建中选择需要的图表类型后自定义构建
echart的官方网站是:http://echarts.baidu.com
接下来我们就用我们上面获取到的数据,来用echarts来绘制一个折线图,
假设我们获取到数据经过处理以后是这样的,接下来我们用django搭建一个简单的应用,至于django的应用,如果大家有兴趣,可以下次给朋友做一个简单的分享
我们来看一下前段的配置,主要看一下后端获取的变量是怎么传递到前端的
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
我们来接着看一下我们最后的出图
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
好的,今天的分享就到这里了,谢谢大家的参与!
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg
aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9wbmcvSVA3MFZpYzQxN0RQZ0o5Mkh3SzhNUlViRzVl.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-406381-1-1.html 上篇帖子: zabbix进程 下篇帖子: 分布式监控系统Zabbix-3.0.3-lnmp安装记录
累计签到:5 天
连续签到:1 天
发表于 2017-11-12 12:03:02 | 显示全部楼层
收藏下慢慢研究

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表