# Orabbix介绍
orabbix是一个用来监控oracle数据库性能的zabbix插件工具,通过安装在被监控服务器上客户端上收集数据并传给zabbix服务器端,然后通过调用图形显示。具有以下功能:
(1)、数据库版本
(2)、归档文件
(3)、等待的事件(如文件的I/O,单块的读,多块的读,直接读,SQLNet消息,控制文件I/O,日志写等)
(4)、HitRatio(监控Hit Ratio的触发,表/存储过程,SQLArea,Body)
(5)、逻辑I/O(当前读操作,持续的读操作,块的更改)
(6)、PGA
(7)、SGA(固定的缓冲,JAVApool,Large Pool,Log Buffer,SharedPool,Buffer Cache)
(8)、物理I/O(重写操作,数据文件写操作,数据文件读操作)
9、SharePool(PoolDictionary Cache, Pool Free Memory,Library Cache,Sql Area ,Misc.)
10、Pin Hit Ratio(monitor Hit Ratio on Trigger,Tables/Procedures, SQLArea,Body)
11、Session/Processes(monitor Sessions and processes)
12、Session (ActiveSession, Inactive Sessions, SystemSession)
一、安装 jdk
#cd /usr/local/src/tarbag/
#tar -zxvf jdk-8u144-linux-x64.tar.gz
#mv jdk1.8.0_144 /usr/local/java
# vi /etc/profile
export JAVA_HOME=/usr/local/java CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar PATH=/usr/local/java/bin:$PATH export PATH JAVA_HOME CLASSPATH |
# source /etc/profile
# java -version
java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) |
二、创建 Oracle监控账号
#创建监控用户zabbix语句
CREATE USER zabbix IDENTIFIED BYzabbix DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; GRANT ALTER SESSION TO zabbix; GRANT CREATE SESSION TO zabbix; GRANT CONNECT TO zabbix; ALTER USER zabbix DEFAULT ROLE ALL; GRANT SELECT ON V_$INSTANCE TO zabbix; GRANT SELECT ON DBA_USERS TO zabbix; GRANT SELECT ON V_$LOG_HISTORY TO zabbix; GRANT SELECT ON V_$LOG TO zabbix; GRANT SELECT ON V_$PARAMETER TO zabbix; GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO zabbix; GRANT SELECT ON V_$LOCK TO zabbix; GRANT SELECT ON DBA_REGISTRY TO zabbix; GRANT SELECT ON V_$LIBRARYCACHE TO zabbix; GRANT SELECT ON V_$SYSSTAT TO zabbix; GRANT SELECT ON V_$PARAMETER TO zabbix; GRANT SELECT ON V_$LATCH TO zabbix; GRANT SELECT ON V_$PGASTAT TO zabbix; GRANT SELECT ON V_$SGASTAT TO zabbix; GRANT SELECT ON V_$LIBRARYCACHE TO zabbix; GRANT SELECT ON V_$PROCESS TO zabbix; GRANT SELECT ON DBA_DATA_FILES TO zabbix; GRANT SELECT ON DBA_TEMP_FILES TO zabbix; GRANT SELECT ON DBA_FREE_SPACE TO zabbix; GRANT SELECT ON V_$SYSTEM_EVENT TO zabbix; GRANT SELECT ON V_$locked_object TO zabbix; GRANT SELECT ON dba_objects TO zabbix; GRANT SELECT ON dba_tablespaces TO zabbix; GRANT SELECT ON v_$SESSION TO zabbix;
#若为 Oracle11g版本,则再执行以下语句
|
三、安装部署Orabbix
#可以安装在oralce服务器上,也可以在其他有java环境的机器上!
#mkdir /usr/local/orabbix
#wget http://nchc.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
#unzip orabbix-1.2.3.zip
#chmod +x run.sh
#cp init.d/orabbix /etc/init.d/
# vi /etc/init.d/orabbix
#!/bin/sh # This is the init script for starting up the # Orabbix daemon # # chkconfig: 345 91 10 # description: Starts and stops the orabbix daemon. # processname: orabbix # # Source function library. . /etc/rc.d/init.d/functions
# Get config. . /etc/sysconfig/network
# Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0
orabbix=/usr/local/orabbix pidfile=`cat $orabbix/conf/config.props |grep -i pidfile |sed 's/.*PidFile=//'` startup=$orabbix/run.sh
start(){ echo -n "Starting Orabbix service:" cd $orabbix $startup RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/orabbix return $RETVAL }
stop(){ echo -n "Stopping Orabbix service:" pid=`ps -ef |grep java |grep orabbix | awk '{ print $2 }'` kill `cat $orabbix/logs/orabbix.pid` RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/orabbix return $RETVAL }
restart(){ stop start }
status(){ numproc=`ps -ef | grep java | grep orabbix | grep -v grep | wc -l` if [ "$numproc" -gt 0 ]; then echo "Orabbix is running" else echo "Orabbix is stopped" fi }
# See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ;; restart) restart ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 esac exit $RETVAL |
#chmod +x /etc/init.d/orabbix
# vi run.sh
# 配置 config.Props
# cp -a config.props.sample config.props
# vi config.props
ZabbixServerList=ZabbixServer1 #ZabbixServerList=ZabbixServer1,ZabbixServer2 ZabbixServer1.Address=192.168.1.208 ZabbixServer1.Port=10051 #ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER #ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
OrabbixDaemon.PidFile=./logs/orabbix.pid OrabbixDaemon.Sleep=300 OrabbixDaemon.MaxThreadNumber=100
#DatabaseList=DB1,DB2,DB3 DatabaseList=DB1
DatabaseList.MaxActive=10 DatabaseList.MaxWait=100 DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@192.168.1.81:1521:will1 DB1.User=zabbix DB1.Password=zabbix DB1.MaxActive=10 DB1.MaxWait=100 DB1.MaxIdle=1 DB1.QueryListFile=./conf/query.props
#DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2 #DB2.User=zabbix #DB2.Password=zabbix_password #DB2.QueryListFile=./conf/query.props
#DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3 #DB3.User=zabbix #DB3.Password=zabbix_password #DB3.QueryListFile=./conf/query.props
|
补充:
需要注意的是DatabaseList=CRMDB指的是被监控服务器的名称,该名称要和zabbix server界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。 CRMDB.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,oracle服务器地址是192.168.0.209,oracle的端口是1521,orcl指的是数据库的实例)
|
# 启动orabbix
#chkconfig orabbix on
# /etc/init.d/orabbix start
四、WEB端设置
# zabbix 模板文件路径:
# ls /usr/local/orabbix/template
Orabbix_export_full.xml Orabbix_export_items.xml Orabbix_export_graphs.xml Orabbix_export_triggers.xml |
# 将 Orabbix_export_full.xml 模板导入WEB端
监控图: