欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

zabbix自定义key监控oracle连接状态(python脚本)

程序员文章站 2023-01-20 22:06:31
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1、zabbix_server 2、zabbix_agent(含有oracle) 主要知识点: 1、zabbix_get用法 2、python中cx_Oracle模块使用 1、zabbix_get用法 ......

 

 目的:此次实验目的是为了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

zabbix自定义key监控oracle连接状态(python脚本)

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

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

zabbix自定义key监控oracle连接状态(python脚本)

test为我自己创建的一个key

 

2、创建自定义key

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

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

zabbix自定义key监控oracle连接状态(python脚本)

这是我加入的两行

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第三方模块

安装方法可以看

https://blog.csdn.net/qq_36743482/article/details/80884190

我这里再提一点:

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

zabbix自定义key监控oracle连接状态(python脚本)

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

zabbix自定义key监控oracle连接状态(python脚本)

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

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

 再次进行测试

zabbix自定义key监控oracle连接状态(python脚本)

到此基本都已经完成

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

 

4、web端添加监控

zabbix自定义key监控oracle连接状态(python脚本)

 

zabbix自定义key监控oracle连接状态(python脚本)

 zabbix自定义key监控oracle连接状态(python脚本)

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

zabbix自定义key监控oracle连接状态(python脚本)

zabbix自定义key监控oracle连接状态(python脚本)

zabbix自定义key监控oracle连接状态(python脚本)

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

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

当我们关掉数据库监听

zabbix自定义key监控oracle连接状态(python脚本)

zabbix自定义key监控oracle连接状态(python脚本)

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

我们在来看看web端

zabbix自定义key监控oracle连接状态(python脚本)

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

接下来我们把监听开起来

zabbix自定义key监控oracle连接状态(python脚本)

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

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