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