Python script to monitor oracle
cx-Oracle==8.2.1
python-argparse
Note:Try installing python-argparse: easy_install argparse
or yum install python-argarse
on RHEL/Centos.
Tested with python 3.8, should work with any 3.x version. For Python2 version check python2 branch.
CREATE USER ZABBIX IDENTIFIED BY DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT SELECT ON V_$SESSION TO ZABBIX;
GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;
GRANT SELECT ON V_$EVENT_NAME TO ZABBIX;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO ZABBIX;
» python3 pyora.py
usage: pyora.py [-h] [--username USERNAME] [--password PASSWORD]
[--address ADDRESS] [--database DATABASE]
{activeusercount,bufbusywaits,check_active,check_archive,commits,db_close,db_connect,dbfilesize,dbprllwrite,dbscattread,dbseqread,dbsize,dbsnglwrite,deadlocks,directread,directwrite,dsksortratio,enqueue,freebufwaits,hparsratio,indexffs,lastapplarclog,lastarclog,latchfree,logfilesync,logonscurrent,logprllwrite,logswcompletion,netresv,netroundtrips,netsent,query_lock,query_redologs,query_rollbacks,query_sessions,query_temp,rcachehit,redowrites,rollbacks,show_tablespaces,tablespace,tblrowsscans,tblscans,uptime,version}
...
pyora.py: error: too few arguments
# Check Oracle version
0: python3 pyora.py --username pyora --password secret --address 127.0.0.1 --database DATABASE version
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
# Check Oracle active user count
0: python3 pyora.py --username pyora --password secret --address 127.0.0.1 --database DATABASE activeusercount
68
# Show the tablespaces names in a JSON format
0: python3 pyora.py show_tablespaces
{
"data":[
{ "{#TABLESPACE}":"ORASDPM"},
{ "{#TABLESPACE}":"MDS"},
{ "{#TABLESPACE}":"SOADEV_MDS"},
{ "{#TABLESPACE}":"ORABAM"},
{ "{#TABLESPACE}":"SOAINF"},
{ "{#TABLESPACE}":"DATA"},
{ "{#TABLESPACE}":"MGMT_AD4J_TS"},
{ "{#TABLESPACE}":"MGMT_ECM_DEPOT_TS"},
{ "{#TABLESPACE}":"MGMT_TABLESPACE"},
{ "{#TABLESPACE}":"RECOVER"},
{ "{#TABLESPACE}":"RMAN_CAT"},
{ "{#TABLESPACE}":"SYSAUX"},
{ "{#TABLESPACE}":"SYSTEM"},
{ "{#TABLESPACE}":"TEMP"},
{ "{#TABLESPACE}":"UNDOTBS"},
{ "{#TABLESPACE}":"VIRTUALCENTER"},
]
}
# Show a particular tablespace usage in %
0: python3 pyora.py --username pyora --password secret --address 127.0.0.1 --database DATABASE tablespace SYSTEM
92.45