博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zabbix监控Oracle 连接数
阅读量:5980 次
发布时间:2019-06-20

本文共 2897 字,大约阅读时间需要 9 分钟。

监控Oracle 连接数

使用python脚本编写脚本,监控oracle连接数;连接Oracle需要安装cx_Oracle模块,安装完成后检查是否正常,没有任何信息返回即正常;

python -c "import cx_Oracle"

通常,还需要加载oralce的客户端配置环境和库

libclntsh.so.11.1libnnz11.so

1、编写用于检查Oracle当前连接数、最大连接数的python脚本:zabbix_check_process.py

#!/usr/bin/python# coding:utf-8## check Oracle process# dbsession: current connect session# dbprocess: db max connect session# presession: current connect session precentimport cx_Oracleimport sys# conn to DBconn = cx_Oracle.connect('user/passwd@orcl')cursor = conn.cursor()dbProcess = {}# current connect sessionsessionSQL = "select count(*) process from v$session"cursor.execute(sessionSQL)sessionRow = cursor.fetchone()dbProcess['dbsession'] = sessionRow[0]# db max connect sessionprocessSQL = "select value count from v$parameter where name ='processes'"cursor.execute(processSQL)proce***ow = cursor.fetchone()dbProcess['dbprocess'] = proce***ow[0]# current connect session precentpresession = (dbProcess['dbsession']) / float(dbProcess['dbprocess'])dbProcess['presession'] = '%.2f' % (presession * 100)cursor.close()# close dbconn.close()#print(dbProcess)try:    if sys.argv[1]:        if sys.argv[1] == 'dbsession':            print(dbProcess['dbsession'])        if sys.argv[1] == 'dbprocess':            print(dbProcess['dbprocess'])        if sys.argv[1] == 'presession':            print(dbProcess['presession'])except:    print("Usage: %s dbsession |dbprocess |presession" % sys.argv[0])

验证脚本

[zabbix@DB1 script]$ python zabbix_check_process.pyUsage: zabbix_check_process.py dbsession |dbprocess |presession[zabbix@DB1 script]$ python zabbix_check_process.py dbsession597[zabbix@DB1 script]$ python zabbix_check_process.py dbprocess1000[zabbix@DB1 script]$ python zabbix_check_process.py presession59.40

2、在zabbix_agentd上增加UserParamete:/opt/zabbix/etc/zabbix_agentd.conf.d/oracle.conf

## db connect sessionUserParameter=oracle.dbsession,source ~/.bash_profile;/usr/bin/python /opt/zabbix/share/script/zabbix_check_process.py dbsessionUserParameter=oracle.dbprocess,source ~/.bash_profile;/usr/bin/python /opt/zabbix/share/script/zabbix_check_process.py dbprocessUserParameter=oracle.presession,source ~/.bash_profile;/usr/bin/python /opt/zabbix/share/script/zabbix_check_process.py presession

3、在服务端测试(客户端需要重启)

[root@zabbix ~]# zabbix_get -s 192.168.1.10 -p 10050 -k 'oracle.dbsession'581[root@zabbix ~]# zabbix_get -s 192.168.1.10 -p 10050 -k 'oracle.presession'58.10[root@zabbix ~]# zabbix_get -s 192.168.1.10 -p 10050 -k 'oracle.dbprocess'1000

4、创建模板,添加监控项目

Oracel数据库当前连接数的百分比         oracle.presession    60s    30d    90d    Zabbix 客户端    Oracle连接数    已启用Oracel数据库最大连接数                 oracle.dbprocess    60s    30d    90d    Zabbix 客户端    Oracle连接数    已启用Oracle数据库当前连接数                 oracle.dbsession    60s    30d    90d    Zabbix 客户端    Oracle连接数    已启用

Zabbix监控Oracle 连接数

5、效果图

Zabbix监控Oracle 连接数

6、资料下载

上传的资料包含监控模板、数据库连接数监控、表空间自动发现规则(监控),

转载于:https://blog.51cto.com/balich/2161422

你可能感兴趣的文章
使用springmvc时处理404的方法
查看>>
如何在CentOS 7中禁止IPv6
查看>>
关于xfs格式化的一些事情
查看>>
我的友情链接
查看>>
Linux误删文件教训,吃一堑长一智
查看>>
Linux Shell常用技巧(二) grep
查看>>
我的友情链接
查看>>
众首MVP们千里赴约杭州,为的就是那份兄弟情谊
查看>>
vim的简单配置
查看>>
android蓝牙模块
查看>>
上课的第一天感受
查看>>
.netcore中无法使用System.Drawing --解决方案
查看>>
阅读记录:Learning multiple layers of representation(杂乱笔记)
查看>>
Beta阶段——Scrum 冲刺博客第一天
查看>>
2012年Bing将发威的3个原因
查看>>
awk
查看>>
android 手机上设置呼叫转移
查看>>
LeetCode 1.两数之和
查看>>
Shell脚本注意点
查看>>
我的友情链接
查看>>