• 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)


     目的:此次实验目的是为了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('1')
    except cx_Oracle.DatabaseError,error:
        print('2')
    View Code

    其中需要用到一个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端已经提示问题已经解决!

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

  • 相关阅读:
    RPC学习
    json
    jsf
    ajax分析
    async分析
    web后台
    servlet和CGI区别(转)
    forward和redirect
    (转)jvm
    Async分析
  • 原文地址:https://www.cnblogs.com/zakker/p/11424608.html
Copyright © 2020-2023  润新知