使用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安装Imaging报错:The _imaging C module is not installed问题解决方法
Aug 22 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
python实现搜索文本文件内容脚本
Jun 22 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
keras.layer.input()用法说明
Jun 16 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
Python中用xlwt制作表格实例讲解
Nov 05 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
原生js三级联动的简单实现代码
2016/06/07 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
详解Python文本操作相关模块
2017/06/22 Python
Python3简单实现串口通信的方法
2019/06/12 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
计算机操作自荐信
2013/12/07 职场文书
班组安全员工作职责
2014/02/01 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
Android中View.post和Handler.post的关系
2022/06/05 Java/Android