cp orabbix/conf/config.props.sample orabbix/conf/config.props vi !$ #comma separed list of Zabbix servers ZabbixServerList=ZabbixServer1 ZabbixServer1.Address=10.6.0.180 #zabbix服务器的IP地址 ZabbixServer1.Port=10051 #zabbix服务器的监听端口 #pidFile OrabbixDaemon.PidFile=./logs/orabbix.pid #frequency of item's refresh OrabbixDaemon.Sleep=300 #MaxThreadNumber should be >= than the number of your databases OrabbixDaemon.MaxThreadNumber=100 #put here your databases in a comma separated list DatabaseList=DB_QM #这个名字可以自行命名,但是需要和下面的名字保持一致,并且在zabbixserver上面配置的主机名要和这个保持一致 #Configuration of Connection pool #if not specified Orabbis is going to use default values (hardcoded) #Maximum number of active connection inside pool DatabaseList.MaxActive=10 #The maximum number of milliseconds that the pool will wait #(when there are no available connections) for a connection to be returned #before throwing an exception, or <= 0 to wait indefinitely. DatabaseList.MaxWait=100 DatabaseList.MaxIdle=1 #define here your connection string for each database DB_QM.Url=jdbc:oracle:thin:@10.6.0.207:1521:test #orabbix是通过jdbc链接oracle数据库的,orcl指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是10.6.0.207,oracle的端口是1521,test指的是数据库的实例) DB_QM.User=zabbix #链接oracle数据库的账号密码,这个需要在oracle数据库中配置 DB_QM.Password=123456 #Those values are optionals if not specified Orabbix is going to use the general values DB_QM.MaxActive=10 #删除用不到的多余的配置,保留这些就可以了。 DB_QM.MaxWait=100 DB_QM.MaxIdle=1 DB_QM.QueryListFile=./conf/query.props #DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
然后在oracle数据库中创建zabbix用户:
1 2 3 4 5 6 7 8 9
CREATE USER ZABBIX IDENTIFIED BY 123456 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; 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;
[iyunv@test opt]# cat /home/oracle/oracle_cron.sh #!/bin/bash source /home/oracle/.bash_profile sqlplus -s zabbix/123456 > /tmp/tablespace.log<<EOF set linesize 140 pagesize 10000 col "Status" for a10 col "Name" for a25 col "Type" for a10 col "Extent" for a15 col "Size (M)" for a20 col "Used (M)" for a20 col "Used %" for a20 SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent", TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,990') "Size (M)", TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0), 0)/1024/1024,'999,999,999') "Used (M)", TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) f WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) AND NOT (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY') UNION ALL SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent", TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,999') "Size (M)", TO_CHAR(NVL(t.bytes,0)/1024/1024,'999,999,999') "Used (M)", TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) a, (select tablespace_name, sum(bytes_cached) bytes from v\$temp_extent_pool group by tablespace_name) t WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY' ORDER BY 7; EOF