设为首页 收藏本站
查看: 3854|回复: 0

[经验分享] zabbix监控oracle 12c

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 09:47:41 | 显示全部楼层 |阅读模式
前言某公司需要监控Oracle 12C,采用orabbix是zabbix监控oracle数据库的插件,修改一些地方就可以监控了。

一.安装配置mkdir /opt/orabbix
cd /opt/orabbix
mv conf/config.props.sample conf/config.props
cp init.d/orabbix /etc/init.d/
chmod +x /etc/init.d/orabbix
chkconfig orabbix on

二.修改orabbix配置注意:红色是修地方
vi conf/config.props

#comma separed list of Zabbix servers
ZabbixServerList=ZabbixServer

ZabbixServer.Address=0.0.0.0 #zabbix监控IP
ZabbixServer.Port=10051  #zabbix监控端口


#pidFile
OrabbixDaemon.PidFile=./logs/orabbix.pid
#frequency of item's refresh
OrabbixDaemon.Sleep=60
#MaxThreadNumber should be >= than the number ofyour databases
OrabbixDaemon.MaxThreadNumber=200

#put here your databases in a comma separated list
DatabaseList=10.78.136.18,10.78.207.22
#被监控ORACALEIP地址,采用,分开

#Configuration of Connection pool
#if not specified Orabbis is going to use defaultvalues (hardcoded)
#Maximum number of active connection inside pool
DatabaseList.MaxActive=10
#The maximum number of milliseconds that the poolwill wait
#(when there are no available connections) for aconnection to be returned
#before throwing an exception, or <= 0 to waitindefinitely.
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1

#define here your connection string foreach database
10.78.136.18.Url=jdbc:oracle:thin:@10.78.136.18:1521/syslog
10.78.136.18.User=zabbix
10.78.136.18.Password=zabbix
#Those values are optionals if notspecified Orabbix is going to use the general values
10.78.136.18.MaxActive=10
10.78.136.18.MaxWait=100
10.78.136.18.MaxIdle=1
10.78.136.18.QueryListFile=./conf/query.props


#define here your connection string foreach database
10.78.207.22.Url=jdbc:oracle:thin:@10.78.207.22:1521/sjyyt
10.78.207.22.User=zabbix
10.78.207.22.Password=zabbix
#Those values are optionals if notspecified Orabbix is going to use the general values
10.78.207.22.MaxActive=10
10.78.207.22.MaxWait=100
10.78.207.22.MaxIdle=1
10.78.207.22.QueryListFile=./conf/query.props




execdbms_network_acl_admin.create_acl(acl=> 'resolve.xml',description =>'resolve acl', principal =>'ZABBIX',is_grant => true, privilege =>'resolve');

execdbms_network_acl_admin.assign_acl(acl=> 'resolve.xml', host =>'*');

commit;


三.创建ORACLE 监控账户1.登录ORACLE 命令行
su– oracale
sqlplus/ as sydba
selectinstance_name from v$instance;  # 查看实例

2、创建用户

CREATE USER ZABBIX

IDENTIFIED BY ZABBIX

DEFAULT TABLESPACE SYSTEM

TEMPORARY TABLESPACE TEMP

PROFILE DEFAULT

ACCOUNT UNLOCK;


3、赋予角色权限

GRANT CONNECT TO ZABBIX;

GRANT RESOURCE TO ZABBIX;

ALTER USER ZABBIX DEFAULT ROLEALL;


4、赋予系统权限

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;

四.启动/etc/init.d/orabbix start

五、导入模板 QQ截图20160108094412.jpg
组态-》模板-》汇入
QQ截图20160108094421.jpg
点击汇入

六、配置主机 QQ截图20160108094438.jpg

注意:主机名一定与orabbix配置一样

QQ截图20160108094457.jpg
点击添加–》存档

七.增加SQL查询修改vi conf/query.props
DefaultQueryPeriod=2

QueryList=archive,audit,dbblockgets,dbconsistentgets,dbhitratio,dbphysicalread,dbversion,hitratio_body,hitratio_sqlarea,hitratio_table_proc,\
lio_current_read,locks,maxprocs,maxsession,miss_latch,pga_aggregate_target,pga,phio_datafile_reads,phio_datafile_writes,phio_redo_writes,pinhitratio_body,pinhitratio_sqlarea,pinhitratio_table-proc,pinhitratio_trigger,\
pool_dict_cache,pool_free_mem,pool_lib_cache,pool_misc,pool_sql_area,procnum,session_active,session_inactive,session,session_system,sga_buffer_cache,\
sga_fixed,sga_java_pool,sga_large_pool,sga_log_buffer,sga_shared_pool,tbl_space,userconn,waits_controfileio,waits_directpath_read,\
waits_file_io,waits_latch,waits_logwrite,waits_multiblock_read,waits_singleblock_read,hitratio_trigger,lio_block_changes,lio_consistent_read,waits_other,waits_sqlnet,users_locked,uptime,config_session,connect_session,active_session,Lactch_Enq_Event,User_IO,System_IO,,Administrative,Scheduler,Configuration,Rac,Application,Queueing,Network,Commit,Idle,dbfilesize,dbsize

DataGuardPrimaryQueryList=dg_error,dg_sequence_number
DataGuardStandbyQueryList=dg_sequence_number_stby
RmanQueryList=rman_check_status


rman_check_status.Query=select ' DBNAME->'||DB_NAME||'- ROW TYPE->'||ROW_TYPE||'- STARTTIME->'||to_char(start_time, 'Dy DD-Mon-YYYY HH24:MI:SS') ||'- ENDTIME->'||to_char(end_time, 'Dy DD-Mon-YYYY HH24:MI:SS')||'- MBYTESPROCESSED->'||MBYTES_PROCESSED||'- OBJECT TYPE->'||OBJECT_TYPE||'-STATUS->'||STATUS||'- OUTPUT DEVICE->'||OUTPUT_DEVICE_TYPE||'- INPUTMB->'||INPUT_BYTES/1048576||'- OUT MB'||OUTPUT_BYTES/1048576 \
  FROM   rc_rman_status \
  WHERE  start_time > SYSDATE - 1\
  AND ( STATUS like '%FAILED%' \
  OR  STATUS like '%ERROR%') \
  ORDER  BY END_TIME

rman_check_status.NoDataFound=none

uptime.Query=selectto_char((sysdate-startup_time)*86400, 'FM99999999999999990') retvalue fromv$instance

users_locked.Query=SELECT username||' '||lock_date ||' '|| account_status FROM dba_users where ACCOUNT_STATUS like'EXPIRED(GRACE)' or ACCOUNT_STATUS like 'LOCKED(TIMED)'
users_locked.NoDataFound=none


archive.Query=selectround(A.LOGS*B.AVG/1024/1024/10) from ( SELECT COUNT (*)  LOGS FROM V$LOG_HISTORY WHERE FIRST_TIME>= (sysdate -10/60/24)) A, ( SELECT Avg(BYTES) AVG,  Count(1), Max(BYTES) Max_Bytes, Min(BYTES)Min_Bytes  FROM  v$log) B
archive.RaceConditionQuery=select valuefrom v$parameter where name='log_archive_start'
archive.RaceConditionValue=FALSE



audit.Query=select username"username", \
         to_char(timestamp,'DD-MON-YYYYHH24:MI:SS') "time_stamp", \
         action_name"statement", \
         os_username"os_username", \
         userhost"userhost", \
         returncode||decode(returncode,'1004','-WrongConnection','1005','-NULL Password','1017','-WrongPassword','1045','-Insufficient Priviledge','0','-Login Accepted','--')"returncode" \
         fromsys.dba_audit_session \
         where(sysdate - timestamp)*24 < 1 and returncode <> 0 \
         orderby timestamp
audit.NoDataFound=none

dbblockgets.Query=selectto_char(sum(decode(name,'db block gets', value,0))) "block_gets" \
         FROMv$sysstat

dbconsistentgets.Query=selectto_char(sum(decode(name,'consistent gets', value,0)))"consistent_gets" \
         FROMv$sysstat

dbhitratio.Query=select ( \
         sum(decode(name,'consistentgets', value,0)) + sum(decode(name,'db block gets', value,0)) -sum(decode(name,'physical reads', value,0))) / (sum(decode(name,'consistentgets', value,0)) + sum(decode(name,'db block gets', value,0)) ) * 100"hit_ratio" \
         FROMv$sysstat
dbphysicalread.Query=selectsum(decode(name,'physical reads', value,0)) "phys_reads" FROMv$sysstat

dbversion.Query=select COMP_ID||''||COMP_NAME||' '||VERSION||' '||STATUS||' <br />' from dba_registryunion SELECT ' - SERVERNAME = <b>'||UTL_INADDR.get_host_name||'</b> - SERVERADDRESS =<b>'||UTL_INADDR.get_host_address||'</b> <br />'from dualunion SELECT ' - DB_NAME = <b>'||SYS_CONTEXT ('USERENV', 'DB_NAME')||'</b> - INSTANCE_NAME = <b>' ||SYS_CONTEXT ('USERENV','INSTANCE_NAME')||'</b> <br />' FROM dual

sqlnotindexed.Query=SELECT SUM(DECODE(NAME,'table scans (long tables)', VALUE, 0))/ (SUM(DECODE(NAME, 'table scans (longtables)', VALUE, 0))+SUM(DECODE(NAME, 'table scans (short tables)', VALUE,0)))*100 SQL_NOT_INDEXED FROM V$SYSSTAT WHERE 1=1 AND ( NAME IN ('table scans(long tables)','table scans (short tables)') )

hitratio_body.Query=select gethitratio*100"get_pct" FROM v$librarycache where namespace ='BODY'
hitratio_sqlarea.Query=selectgethitratio*100 "get_pct" FROM v$librarycache where namespace ='SQLAREA'
hitratio_trigger.Query=selectgethitratio*100 "get_pct" FROM v$librarycache where namespace='TRIGGER'
hitratio_table_proc.Query=selectgethitratio*100 "get_pct" FROM v$librarycache where namespace ='TABLE/PROCEDURE'

lio_block_changes.Query=SELECTto_char(SUM(DECODE(NAME,'db block changes',VALUE,0))) \
FROM V$SYSSTAT \
WHERE NAME ='db block changes'

lio_consistent_read.Query=SELECTto_char(sum(decode(name,'consistent gets',value,0))) FROM V$SYSSTAT WHERE NAME='consistent gets'
lio_current_read.Query=SELECTto_char(sum(decode(name,'db block gets',value,0))) FROM V$SYSSTAT WHERE NAME='db block gets'

locks.Query=SELECT b.session_id AS sid, \
      NVL(b.oracle_username, '(oracle)') AS username, \
      a.owner AS object_owner, \
      a.object_name, \
      Decode(b.locked_mode, 0, 'None', \
                             1, 'Null (NULL)', \
                             2, 'Row-S (SS)', \
                             3, 'Row-X (SX)', \
                             4, 'Share (S)', \
                             5, 'S/Row-X(SSX)', \
                             6, 'Exclusive(X)', \
                            b.locked_mode)locked_mode, \
      b.os_user_name \
FROM  dba_objects a, \
      v$locked_object b \
WHERE a.object_id = b.object_id \
ORDER BY 1, 2, 3, 4

#locks.Query=select         sn.USERNAME ||'@'||sn.machine, \
         '|SID->'|| m.SID, \
         '|Serial->'||sn.SERIAL#, \
         '|LockType->'||m.TYPE, \
         decode(LMODE,\
                   1,'Null', \
                   2,'Row-S (SS)', \
                   3,'Row-X (SX)', \
                   4,'Share', \
                   5,'S/Row-X (SSX)', \
                   6,'Exclusive') lock_type, \
         decode(REQUEST,\
                   0,'None', \
                   1,'Null', \
                   2,'Row-S (SS)', \
                   3,'Row-X (SX)', \
             4, 'Share', \
                   5,'S/Row-X (SSX)', \
                   6,'Exclusive') lock_requested, \
         '|Time(Sec)->'||m.CTIME "Time(sec)", \
         '|ID1->'||m.ID1,\
         '|ID2->'||m.ID2,\
         '|SQLText->'||t.SQL_TEXT \
from        v$sessionsn, \
         v$lockm , \
         v$sqltextt \
where     t.ADDRESS=sn.SQL_ADDRESS \
and          t.HASH_VALUE=sn.SQL_HASH_VALUE \
and          ((sn.SID=m.SID and m.REQUEST !=0) \
or    (sn.SID=m.SID and m.REQUEST =0 and LMODE !=4 and (ID1, ID2) in \
   (select s.ID1, s.ID2 \
    from      v$lock S \
    where   REQUEST !=0 \
          and s.ctime > 5 \
    and        s.ID1 =m.ID1 \
    and        s.ID2 =m.ID2))) \
order by sn.USERNAME, sn.SID, t.PIECE
locks.NoDataFound=none


maxprocs.Query=select value"maxprocs" from v$parameter where name ='processes'
maxsession.Query=select value"maxsess" from v$parameter where name ='sessions'
miss_latch.Query=SELECT SUM(misses) FROMV$LATCH
pga_aggregate_target.Query=selectto_char(decode( unit,'bytes', value/1024/1024, value),'999999999.9') value fromV$PGASTAT where name in 'aggregate PGA target parameter'
pga.Query=select to_char(decode(unit,'bytes', value/1024/1024, value),'999999999.9') value from V$PGASTAT wherename in 'total PGA inuse'
phio_datafile_reads.Query=selectto_char(sum(decode(name,'physical reads direct',value,0))) FROM V$SYSSTAT wherename ='physical reads direct'
phio_datafile_writes.Query=selectto_char(sum(decode(name,'physical writes direct',value,0))) FROM V$SYSSTATwhere name ='physical writes direct'
phio_redo_writes.Query=select to_char(sum(decode(name,'redowrites',value,0))) FROM V$SYSSTAT where name ='redo writes'
pinhitratio_body.Query=selectpins/(pins+reloads)*100 "pin_hit ratio" FROM v$librarycache wherenamespace ='BODY'
pinhitratio_sqlarea.Query=selectpins/(pins+reloads)*100 "pin_hit ratio" FROM v$librarycache wherenamespace ='SQL AREA'
pinhitratio_table-proc.Query=selectpins/(pins+reloads)*100 "pin_hit ratio" FROM v$librarycache wherenamespace ='TABLE/PROCEDURE'
pinhitratio_trigger.Query=selectpins/(pins+reloads)*100 "pin_hit ratio" FROM v$librarycache wherenamespace ='TRIGGER'
pool_dict_cache.Query=SELECTTO_CHAR(ROUND(SUM(decode(pool,'shared pool',decode(name,'dictionarycache',(bytes)/(1024*1024),0),0)),2)) pool_dict_cache FROM V$SGASTAT
pool_free_mem.Query=SELECT TO_CHAR(ROUND(SUM(decode(pool,'sharedpool',decode(name,'free memory',(bytes)/(1024*1024),0),0)),2)) pool_free_memFROM V$SGASTAT
pool_lib_cache.Query=SELECTTO_CHAR(ROUND(SUM(decode(pool,'shared pool',decode(name,'librarycache',(bytes)/(1024*1024),0),0)),2)) pool_lib_cache FROM V$SGASTAT
pool_misc.Query=SELECTTO_CHAR(ROUND(SUM(decode(pool,'shared pool',decode(name,'librarycache',0,'dictionary cache',0,'free memory',0,'sql area',0,(bytes)/(1024*1024)),0)),2)) pool_misc FROM V$SGASTAT
pool_sql_area.Query=SELECT TO_CHAR(ROUND(SUM(decode(pool,'sharedpool',decode(name,'sql area',(bytes)/(1024*1024),0),0)),2)) pool_sql_area FROMV$SGASTAT
procnum.Query=select count(*)"procnum" from v$process
session_active.Query=select count(*) fromv$session where TYPE!='BACKGROUND' and status='ACTIVE'
session_inactive.Query=selectSUM(Decode(Type, 'BACKGROUND', 0, Decode(Status, 'ACTIVE', 0, 1))) FROMV$SESSION
session.Query=select count(*) fromv$session
session_system.Query=selectSUM(Decode(Type, 'BACKGROUND', 1, 0)) system_sessions FROM V$SESSION
sga_buffer_cache.Query=SELECTto_char(ROUND(SUM(decode(pool,NULL,decode(name,'db_block_buffers',(bytes)/(1024*1024),'buffer_cache',(bytes)/(1024*1024),0),0)),2))sga_bufcache FROM V$SGASTAT
sga_fixed.Query=SELECT TO_CHAR(ROUND(SUM(decode(pool,NULL,decode(name,'fixed_sga',(bytes)/(1024*1024),0),0)),2))sga_fixed FROM V$SGASTAT
sga_java_pool.Query=SELECTto_char(ROUND(SUM(decode(pool,'java pool',(bytes)/(1024*1024),0)),2)) sga_jpoolFROM V$SGASTAT
sga_large_pool.Query=SELECTto_char(ROUND(SUM(decode(pool,'large pool',(bytes)/(1024*1024),0)),2))sga_lpool FROM V$SGASTAT
sga_log_buffer.Query=SELECTTO_CHAR(ROUND(SUM(decode(pool,NULL,decode(name,'log_buffer',(bytes)/(1024*1024),0),0)),2))sga_lbuffer FROM V$SGASTAT
sga_shared_pool.Query=SELECTTO_CHAR(ROUND(SUM(decode(pool,'shared pool',decode(name,'librarycache',0,'dictionary cache',0,'free memory',0,'sqlarea',0,(bytes)/(1024*1024)),0)),2)) pool_misc FROM V$SGASTAT

tbl_space.Query=SELECT * FROM ( \
select '- Tablespace->',t.tablespace_name ktablespace, \
      '- Type->',substr(t.contents, 1, 1) tipo, \
      '- Used(MB)->',trunc((d.tbs_size-nvl(s.free_space, 0))/1024/1024)ktbs_em_uso, \
      '- ActualSize(MB)->',trunc(d.tbs_size/1024/1024) ktbs_size, \
      '- MaxSize(MB)->',trunc(d.tbs_maxsize/1024/1024) ktbs_maxsize, \
      '- FreeSpace(MB)->',trunc(nvl(s.free_space, 0)/1024/1024)kfree_space, \
      '- Space->',trunc((d.tbs_maxsize - d.tbs_size + nvl(s.free_space,0))/1024/1024) kspace, \
      '- Perc->',decode(d.tbs_maxsize, 0, 0,trunc((d.tbs_size-nvl(s.free_space, 0))*100/d.tbs_maxsize)) kperc \
from \
  (select SUM(bytes) tbs_size, \
          SUM(decode(sign(maxbytes - bytes), -1, bytes, maxbytes)) tbs_maxsize,tablespace_name tablespace \
   from ( select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes,tablespace_name \
   from dba_data_files \
   union all \
   select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name \
   from dba_temp_files \
    )\
   group by tablespace_name \
    )d, \
    (select SUM(bytes) free_space, \
   tablespace_name tablespace \
   from dba_free_space \
   group by tablespace_name \
    )s, \
   dba_tablespaces t \
   where t.tablespace_name = d.tablespace(+) and \
   t.tablespace_name = s.tablespace(+) \
   order by 8) \
   where kperc > 93 \
   and tipo <>'T' \
   and tipo <>'U'
tbl_space.NoDataFound=none


userconn.Query=select count(username) fromv$session where username is not null
waits_controfileio.Query=SELECTto_char(sum(decode(event,'control file sequential read', total_waits, 'controlfile single write', total_waits, 'control file parallel write',total_waits,0)))ControlFileIO FROM V$system_event WHERE 1=1 AND event not in ( 'SQL*Net messagefrom client', 'SQL*Net more data from client','pmon timer', 'rdbms ipcmessage', 'rdbms ipc reply', 'smon timer')

waits_directpath_read.Query=SELECTto_char(sum(decode(event,'direct path read',total_waits,0))) DirectPathReadFROM V$system_event WHERE 1=1 AND event not in (   'SQL*Net message from ', 'SQL*Net more datafrom client','pmon timer', 'rdbms ipc message', 'rdbms ipc reply', 'smontimer')

waits_file_io.Query=SELECTto_char(sum(decode(event,'file identify',total_waits, 'fileopen',total_waits,0))) FileIO FROM V$system_event WHERE 1=1 AND event not in(   'SQL*Net message from client',   'SQL*Net more data from client', 'pmontimer', 'rdbms ipc message', 'rdbms ipc reply', 'smon timer')

waits_latch.Query=SELECTto_char(sum(decode(event,'control file sequential read', total_waits, \
'control file single write', total_waits,'control file parallel write',total_waits,0))) ControlFileIO \
FROM V$system_event WHERE 1=1 AND event notin ( \
'SQL*Net message from client', \
'SQL*Net more data from client', \
'pmon timer', 'rdbms ipc message', \
'rdbms ipc reply', 'smon timer')

waits_logwrite.Query=SELECTto_char(sum(decode(event,'log file single write',total_waits, 'log fileparallel write',total_waits,0))) LogWrite \
FROM V$system_event WHERE 1=1 AND event notin ( \
'SQL*Net message from client', \
'SQL*Net more data from client', \
'pmon timer', 'rdbms ipc message', \
'rdbms ipc reply', 'smon timer')

waits_multiblock_read.Query=SELECTto_char(sum(decode(event,'db file scattered read',total_waits,0)))MultiBlockRead \
FROM V$system_event WHERE 1=1 AND event notin ( \
'SQL*Net message from client', \
'SQL*Net more data from client', \
'pmon timer', 'rdbms ipc message', \
'rdbms ipc reply', 'smon timer')

waits_other.Query=SELECTto_char(sum(decode(event,'control file sequential read',0,'control file singlewrite',0,'control file parallel write',0,'db file sequential read',0,'db filescattered read',0,'direct path read',0,'file identify',0,'file open',0,'SQL*Netmessage to client',0,'SQL*Net message to dblink',0, 'SQL*Net more data toclient',0,'SQL*Net more data to dblink',0, 'SQL*Net break/reset toclient',0,'SQL*Net break/reset to dblink',0, 'log file single write',0,'logfile parallel write',0,total_waits))) Other FROM V$system_event WHERE 1=1 ANDevent not in (  'SQL*Net message fromclient', 'SQL*Net more data from client', 'pmon timer', 'rdbms ipcmessage',  'rdbms ipc reply', 'smontimer')


waits_singleblock_read.Query=SELECTto_char(sum(decode(event,'db file sequential read',total_waits,0)))SingleBlockRead \
FROM V$system_event WHERE 1=1 AND event notin ( \
'SQL*Net message from client', \
'SQL*Net more data from client', \
'pmon timer', 'rdbms ipc message', \
'rdbms ipc reply', 'smon timer')

waits_sqlnet.Query=SELECTto_char(sum(decode(event,'SQL*Net message to client',total_waits,'SQL*Netmessage to dblink',total_waits,'SQL*Net more data toclient',total_waits,'SQL*Net more data to dblink',total_waits,'SQL*Netbreak/reset to client',total_waits,'SQL*Net break/reset todblink',total_waits,0))) SQLNET FROM V$system_event WHERE 1=1 \
AND event not in ( 'SQL*Net message fromclient','SQL*Net more data from client','pmon timer','rdbms ipc message','rdbmsipc reply', 'smon timer')


dg_error.Query=SELECT ERROR_CODE, SEVERITY,MESSAGE, TO_CHAR(TIMESTAMP, 'DD-MON-RR HH24:MI:SS') TIMESTAMP FROMV$DATAGUARD_STATUS WHERE CALLOUT='YES' AND TIMESTAMP > SYSDATE-1
dg_error.NoDataFound=none

dg_sequence_number.Query=SELECT MAX(sequence#) FROM v$log_history

#dg_sequence_number_stby.Query=SELECT MAX(sequence#) last_log_applied FROM  v$log_history
dg_sequence_number_stby.Query= selectmax(sequence#) from v$archived_log

config_session.Query=select valueconfig_session from v$parameter where name='sessions'
connect_session.Query=select count(*)connect_session from v$session where username is not null
active_session.Query=select count(*)active_session from v$session where username is not null and status='ACTIVE'

Lactch_Enq_Event.Query=select count(*)Latch_Enq_Event  from v$session wherewait_class in ('Concurrency','Other') and username is not null
User_IO.Query=select count(*) User_IO  from v$session where wait_class ='User I/O'and username is not null
System_IO.Query=select count(*)System_IO  from v$session wherewait_class ='System I/O' and username is not null
Administrative.Query=select count(*)Administrative  from v$session wherewait_class ='Administrative' and username is not null
Scheduler.Query=select count(*)Scheduler  from v$session where wait_class='Scheduler' and  username is not null
Configuration.Query=select count(*)Configuration  from v$session wherewait_class ='Configuration' and username is not null
Rac.Query=select count(*) Rac  from v$session where wait_class ='Cluster'and username is not null
Application.Query=select count(*)Application  from v$session wherewait_class ='Application' and username is not null
Queueing.Query=select count(*)Queueing  from v$session where wait_class='Queueing' and username is not null

Network.Query=select count(*) Network  from v$session where wait_class='Network'  and username is not null
Commit.Query=select count(*) Commit  from v$session where wait_class ='Commit' andusername is not null
Idle.Query=select count(*) Idle  from v$session where wait_class ='Idle' andusername is not null and event not in ('SQL*Net message from client')


dbfilesize.Query=selectto_char(sum(bytes/1024/1024/1024), 'FM99999999999999990') retvalue fromdba_data_files
dbsize.Query=SELECTto_char(sum( NVL(a.bytes/1024/1024/1024 - NVL(f.bytes/1024/1024/1024, 0), 0)),'FM99999999999999990') retvalue \
FROM sys.dba_tablespacesd, \
(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')

以上找到QueryList=    增加dbfilesize
最下面增加查询SQL语句
格式如dbfilesize.Query=

模板里增加dbfilesize
QQ截图20160108094512.jpg
模板-》找到上图-》点击项目-》创建监控项
QQ截图20160108094520.jpg

QQ截图20160108094544.jpg
名称可以自已取,类型一定要选择zabbix捉捕器,键值是就与conf/query.props 的QueryList=    增加dbfilesize一样



八、创建图组态-》筛选-》创建屏幕
QQ截图20160108094605.jpg

QQ截图20160108094617.jpg

QQ截图20160108094623.jpg
点击更改就是把那样项目增加进去了

最后展示图如下
QQ截图20160108094629.jpg
Template_Oracle.xml.zip (572 Bytes, 下载次数: 12)


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161741-1-1.html 上篇帖子: 配置zabbix网络发现 下篇帖子: Zabbix错误提示MySQL server has gone away解决 oracle 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表