简单说明:
使用Orabbix对Oracle进行监控
官方维基地址: http://www.smartmarmot.com/wiki/index.php?title=Orabbix
只需要在Zabbix Server主机上进行部署即可,需要java环境,通过jdbc连接到库,查询监控
Orabbix安装部署:
Server主机操作
# 需要jdk1.6以上的环境支持
yum -y install java-1.8.0-openjdk
# 下载Orabbix安装包
# http://www.smartmarmot.com/product/orabbix/download/
# 或者 https://sourceforge.net/projects/orabbix/
# 解压安装
mkdir /opt/orabbix
cd /opt/orabbix
unzip /tmp/orabbix-1.2.3.zip
cp -av /opt/orabbix/init.d/orabbix /etc/init.d/
chmod +x /etc/init.d/orabbix
chmod +x /opt/orabbix/run.sh
# 配置数据库连接文件
cd /opt/orabbix/conf
cat >config.props<<EOF
# ZabbixServer配置,可配置多个
ZabbixServerList=ZS1
ZS1.Address=192.168.1.10
ZS1.Port=10051
# pid 文件配置
OrabbixDaemon.PidFile=./logs/orabbix.pid
# 监控项刷新间隔
OrabbixDaemon.Sleep=300
# 参数MaxThreadNumber需要大于等于数据库最大会话数量
OrabbixDaemon.MaxThreadNumber=10000
# 配置数据库连接名,可配置多个
DatabaseList=DB1,DB2
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
# 第一个数据库连接配置
DB1.Url=jdbc:oracle:thin:@192.168.1.100:1521:orcl
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:@192.168.1.101:1521:orcl
DB2.User=zabbix
DB2.Password=zabbix
DB2.QueryListFile=./conf/query.props
EOF
# 配置启动和开机启动
chkconfig --add orabbix
chkconfig orabbix on
/etc/init.d/orabbix start
被监控库部署:
被监控库需要创建监控使用的zabbix账号
如果不需要做系统监控,则无需在被监控主机上安装zabbix agent
su - oracle
sqlplus / as sysdba
CREATE USER ZABBIX
IDENTIFIED BY ZABBIX
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;
-- 如果需要遵循权限最小化,使用以下用户创建和授权语句代替上方语句
CREATE USER ZABBIX
IDENTIFIED BY ZABBIX
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_$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;
-- 如果是11g,则需要另外执行以下语句
exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
commit;
-- 使用zabbix用户测试
conn zabbix/zabbix
select utl_inaddr.get_host_name('127.0.0.1') from dual;
exit
监控模板导入:
目录 /opt/orabbix/template 中有zabbix使用的模板
使用网页导入模板 Orabbix_export_full.xml
监控配置:
网页登陆,配置数据库监控,监控配置的数据库名DB1
监控RAC的配置写法:
配置 /opt/orabbix/conf/config.props 中的 Url,配置成RAC的写法:
RACINST.Url=jdbc:oracle:thin:@
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=RAC1IP)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=RAC2IP)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=RACINST)
)
)
上方写法是换行后的配置,真实配置的时候,换行需要用反斜杠:
RACINST.Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC1IP) \
(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=RAC2IP)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=RACINST)))
[TOC]