muugua 发表于 2018-9-24 07:12:56

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]
查看完整版本: Zabbix监控Oracle 连接数