使用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排序搜索基本算法之希尔排序实例分析
Dec 09 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
python Celery定时任务的示例
Mar 13 Python
python实现list由于numpy array的转换
Apr 04 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
Python流程控制 while循环实现解析
Sep 02 Python
Python实现直播推流效果
Nov 26 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 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的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
javascript 有用的脚本函数
2009/05/07 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
简单了解python元组tuple相关原理
2019/12/02 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
没编程基础可以学python吗
2020/06/17 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
2015年高二班主任工作总结
2015/05/25 职场文书
单独二胎证明
2015/06/24 职场文书
MySQL分区以及建索引的方法总结
2022/04/13 MySQL