首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Zabbix 监控 Oracle 数据库实战:Orabbix 插件部署全流程

     編輯:Java 綜合教學

Zabbix 监控 Oracle 数据库实战

Orabbix 是专为 Zabbix 设计的 Oracle 监控插件,支持多实例、性能指标采集、预定义模板与图形。本文记录服务端部署、Oracle 客户端授权、模板导入、主机关联全流程。

监控指标覆盖

  • 数据库版本、归档日志产生趋势
  • 等待事件(I/O、SQL*Net、Control File、Log Write)
  • 命中率(Trigger、Table/Procedure、SQL Area、Body)
  • 逻辑/物理 I/O、PGA、SGA 细分(Fixed Buffer、Java Pool、Large Pool、Log Buffer、Shared Pool、Buffer Cache)
  • Shared Pool 细项、Pin Hit Ratio、会话/进程统计、DB Size、表空间使用率

监控指标示例

服务端部署

1. JDK 环境

tar zxf jdk-8u51-linux-x64.tar.gz -C /usr/local/
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_51
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile

2. 解压 Orabbix

mkdir /opt/orabbix
cp orabbix-1.2.3.zip /opt/orabbix/
cd /opt/orabbix && unzip orabbix-1.2.3.zip

3. 配置 conf/config.props

ZabbixServerList=ZabbixServer
ZabbixServer.Address=10.0.6.102
ZabbixServer.Port=10051
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=PROM
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
PROM.Url=jdbc:oracle:thin:@10.1.1.84:1521:prom
PROM.User=ZABBIX
PROM.Password=zabbix
PROM.MaxActive=10
PROM.MaxWait=100
PROM.MaxIdle=1
PROM.QueryListFile=./conf/query.props

关键点:DatabaseList 值(PROM)必须与 Zabbix 主机名完全一致。

4. 注册系统服务

cp init.d/orabbix /etc/init.d/
chmod 755 /etc/init.d/orabbix
chkconfig orabbix on

Oracle 客户端授权

1. 创建监控用户

CREATE USER ZABBIX IDENTIFIED BY "zabbix"
DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT ACCOUNT UNLOCK;

GRANT CONNECT, 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;

2. Oracle 11g+ ACL 配置(网络访问权限)

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 前端配置

  1. 启动服务:service orabbix start → tail -f logs/orabbix.log 确认 Connected as ZABBIX
  2. 导入模板:Configuration → Templates → Import 选择 template/Orabbix_export_full.xml
  3. 创建主机:Configuration → Hosts → Create host
    • Host name = PROM(与 config.props 一致)
    • Groups: Templates/Database
    • Templates: 关联 Template_Oracle
  4. 查看图形:Monitoring → Graphs 或加入 Screens

导入模板 模板列表 创建主机 主机名配置 关联模板 Screen 配置

常见问题

现象排查
Orabbix 启动报错 ORA-12541检查 Oracle 监听状态、防火墙、tnsnames.ora
Zabbix 无数据确认 Host name 与 DatabaseList 完全一致;检查 QueryListFile 路径
权限不足 ORA-01031补充 SELECT ANY DICTIONARY、ACL 配置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved