標籤:conf 下載 param pre type png 資料表空間 rom port
監控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/[email protected]‘)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 = float(sessionRow[0]) / float(proce***ow[0])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])
驗證指令碼
[[email protected] script]$ python zabbix_check_process.pyUsage: zabbix_check_process.py dbsession |dbprocess |presession[[email protected] script]$ python zabbix_check_process.py dbsession597[[email protected] script]$ python zabbix_check_process.py dbprocess1000[[email protected] 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、在服務端測試(用戶端需要重啟)
[[email protected] ~]# zabbix_get -s 10.0.18.121 -p 10050 -k ‘oracle.dbsession‘581[[email protected] ~]# zabbix_get -s 10.0.18.121 -p 10050 -k ‘oracle.presession‘58.10[[email protected] ~]# zabbix_get -s 10.0.18.121 -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串連數 已啟用
5、
6、資料下載
上傳的資料包含監控模板、資料庫連接數監控、資料表空間自動探索規則(監控),
Zabbix監控Oracle 串連數