使用Python脚本zabbix自定义key监控oracle连接状态


Posted in Python onAugust 28, 2019

目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接

环境:1、zabbix_server

2、zabbix_agent(含有oracle)

主要知识点:

1、zabbix_get用法

2、python中cx_Oracle模块使用

------------------------------------------------------------------------------

1、zabbix_get用法

常用用法

zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key

在我们zabbix_server端可以测试一个zabbix_agent端的key

使用Python脚本zabbix自定义key监控oracle连接状态

正常情况下会返回一个结果

注:关于zabbix客户端有哪些key值,我们可以在客户端用zabbix_agentd -p命令查看

使用Python脚本zabbix自定义key监控oracle连接状态

test为我自己创建的一个key

2、创建自定义Key

创建自定义key的方法相当简单

在我们客户端的zabbix_agentd.conf配置文件中加入几个参数就可以了

使用Python脚本zabbix自定义key监控oracle连接状态

这是我加入的两行

1、UnsafeUserParameters参数有两个值1或0

0为禁用

1为开启

2、UserParameter=key名字,命令或脚本(用法)

加完配置后记得重启客户端进程!!

3、脚本的定义

这个步骤是最为核心的,所有你想实现的监控都可以在这步进行规划

此次我测试的是oracle实例的连接状态(能连或不能连)

代码如下

#-*- encoding: utf-8 -*-

import cx_Oracle
try:
 conn=cx_Oracle.connect('system/oracle@172.168.9.186:1521/orcl')
 c=conn.cursor()
 c.close()
 conn.close()
 print('1')
except cx_Oracle.DatabaseError,error:
 print('2')

其中需要用到一个cx_Oracle第三方模块

我这里再提一点:

虽然我在单独运行脚本时是没有任何报错的,但是在我用zabbix_get进行测试的时候还是会有导入模块错误

使用Python脚本zabbix自定义key监控oracle连接状态

这是由于客户端共享库链接没有做好

使用Python脚本zabbix自定义key监控oracle连接状态

添加libclntsh.so.11.1所在的路径

在运行ldconfig命令生效你的配置

再次进行测试

使用Python脚本zabbix自定义key监控oracle连接状态

到此基本都已经完成

剩下就是在web端添加此key的监控即可

4、web端添加监控

使用Python脚本zabbix自定义key监控oracle连接状态

使用Python脚本zabbix自定义key监控oracle连接状态

使用Python脚本zabbix自定义key监控oracle连接状态

监控项创建完毕,我们进行触发器的创建。

使用Python脚本zabbix自定义key监控oracle连接状态

使用Python脚本zabbix自定义key监控oracle连接状态

使用Python脚本zabbix自定义key监控oracle连接状态

至此,触发器已创建完毕(当返回值为2,也就是连不通的时候会触发告警)!

接下来我们自己可以进行测试

当我们关掉数据库监听

使用Python脚本zabbix自定义key监控oracle连接状态

使用Python脚本zabbix自定义key监控oracle连接状态

显然服务端收到的返回值是2

我们在来看看web端

使用Python脚本zabbix自定义key监控oracle连接状态

看到web端已经有告警提示了

接下来我们把监听开起来

使用Python脚本zabbix自定义key监控oracle连接状态

这时候web端已经提示问题已经解决!

此次实验至此已经全部完成。

总结

以上所述是小编给大家介绍的使用Python脚本zabbix自定义key监控oracle连接状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
详解Python中第三方库Faker
Sep 25 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
django删除表重建的实现方法
Aug 28 #Python
Python Django 前后端分离 API的方法
Aug 28 #Python
django重新生成数据库中的某张表方法
Aug 28 #Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 #Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 #Python
python使用celery实现异步任务执行的例子
Aug 28 #Python
Python Gitlab Api 使用方法
Aug 28 #Python
You might like
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
tensorflow实现简单的卷积神经网络
2018/05/24 Python
PyQt5响应回车事件的方法
2019/06/25 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
学生处主任岗位职责
2013/12/01 职场文书
高二美术教学反思
2014/01/14 职场文书
书法大赛策划方案
2014/06/04 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript