目的:此次实验目的是为了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值,我们可以在客户端用zabbix_agentd -p命令查看
test为我自己创建的一个key
2、创建自定义Key
创建自定义key的方法相当简单
在我们客户端的zabbix_agentd.conf配置文件中加入几个参数就可以了
这是我加入的两行
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('')
except cx_Oracle.DatabaseError,error:
print('')
其中需要用到一个cx_Oracle第三方模块
安装方法可以看
https://blog.csdn.net/qq_36743482/article/details/80884190
我这里再提一点:
虽然我在单独运行脚本时是没有任何报错的,但是在我用zabbix_get进行测试的时候还是会有导入模块错误
这是由于客户端共享库链接没有做好
添加libclntsh.so.11.1所在的路径
在运行ldconfig命令生效你的配置
再次进行测试
到此基本都已经完成
剩下就是在web端添加此key的监控即可
4、web端添加监控
监控项创建完毕,我们进行触发器的创建。
至此,触发器已创建完毕(当返回值为2,也就是连不通的时候会触发告警)!
接下来我们自己可以进行测试
当我们关掉数据库监听
显然服务端收到的返回值是2
我们在来看看web端
看到web端已经有告警提示了
接下来我们把监听开起来
这时候web端已经提示问题已经解决!
此次实验至此已经全部完成。