可监控项

使用zabbix监控oracle数据库需要借助第三方的插件,目前使用较多的是orabbix。目前维护到了1.2.3版本。关于oracle自带的监控项目有以下几个:

DB Version (i.e. Validity of package)数据库版本
Archiving (Archive log production with trend analysis)归档文件
Event Waits (Files I/O, single block read, multi-block read, direct path read, SQLNet Messages, Control file I/O, Log Write)等待的事件
Hit Ratio (Hit Ratio on Triggers, Tables/Procedures, SQL Area, Body)
Logical I/O (Server performance on Logical I/O of: Current Read, Consistent Read, Block Change)逻辑I/O
Physical I/O (Redo Writes, Datafile Writes, Datafile Reads)物理I/O
PGA
SGA (In particular; Fixed Buffer, Java Pool, Large Pool, Log Buffer, Shared Poolm Buffer Cache)
Shared Pool (Pool Dictionary Cache, Pool Free Memory, Library Chache, SQL Area, MISC.)共享池
Pin Hit Ratio (Oracle library cache pin are caused by contention with the library cache, the area used to store SQL executables for re-use)
Sessions / Processes**会话数和进程数**
Sessions (Active Sessions, Inactive Sessions, System Sessions)
DBSize/DBFileSize (DBSize size of database really used space and of Filesize)数据库大小

实施步骤
前期准备
1.节点:zabbix服务端和oracle数据库两个节点。
2.安全设置:为了实验起见,关闭selinux和iptables
3.获取安装包:
orabbix-1.2.3.zip
4.下载安装jdk(x86_64),在oracle的官网可以下载,配置好JAVA_HOME等环境变量。

安装步骤
1.创建访问数据库的用户并进行相关授权

使用oracle的管理员用户登录oracle数据库:

[oracle@server ~]$ sqlplus sys/oracle@hybris as sysdba

创建zabbix用户并且授予其相关权限:

(1)创建用户

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

(2)授予权限

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;

上述是给zabbix较高权限,如果只是为了满足orabbix自带的监控项目,可以只授予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;

如果当前的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用户登录测试下:

[oracle@server ~]$ sqlplus zabbix/zabbix

SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 7 20:11:12 2016

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

2.解压安装包orabbix,设置配置文件,启动服务

获得orabbix-1.2.3.zip解压包,这里需要注意的事必须解压到/opt/orabbix目录下(由启动服务脚本决定),所以需要创建该目录:

[root@server opt]# mkdir /opt/orabbix/
1
解压到该目录:

[root@server orabbix]# unzip orabbix-1.2.3.zip

得到配置文件/opt/orabbix/conf/config.props:

[root@server conf]# cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props

修改配置文件:

[root@server conf]# grep "^[^#]" config.props
ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=IP
ZabbixServer1.Port=port

ZabbixServer2.Address=ip
ZabbixServer2.Port=port

OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100

DatabaseList=hybristest

DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1

hybristest.Url=jdbc:oracle:thin:@10.211.33.177:1521:HYBRIS
hybristest.User=zabbix
hybristest.Password=zabbix
hybristest.MaxActive=10
hybristest.MaxWait=100
hybristest.MaxIdle=1
hybristest.QueryListFile=./conf/query.props

这里非常需要注意的一点是DatabaseList这个参数“DatabaseList=hybristest”,他所代表的含义是:被监控服务器的名称。必须要和被监控服务器在zabbix服务端控制台中的主机名称一致,要不会导致即使数据可以从数据库中获取到,但是依然无法显示到zabbix的界面上。

ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=IP
ZabbixServer1.Port=port

ZabbixServer2.Address=ip
ZabbixServer2.Port=port

其中ZabbixServerList列举的是zabbix服务端的名称,然后指定其ip和端口即可。

将启动脚本拷贝到/etc/init.d/目录中,并且授予相关文件的可执行权限:

[root@server init.d]# cp /opt/orabbix/init.d/orabbix /etc/init.d/

[root@server init.d]# chmod +x /etc/init.d/orabbix /opt/orabbix/run.sh

启动orabbix服务并且观察日志信息:

[root@server init.d]# /etc/init.d/orabbix start
[root@server init.d]# vim /opt/orabbix/logs/orabbix.log

2016-11-07 17:01:44,508 [main] INFO Orabbix - Starting Orabbix Version 1.2.3
2016-11-07 17:01:44,518 [main] INFO Orabbix - Orabbix started with pid:26807
2016-11-07 17:01:44,518 [main] INFO Orabbix - PidFile -> ./logs/orabbix.pid
2016-11-07 17:01:44,642 [main] INFO Orabbix - DB Pool created: org.apache.commons.dbcp.datasources.SharedPoolDataSource@c2e1f26
2016-11-07 17:01:44,642 [main] INFO Orabbix - URL=jdbc:oracle:thin:@10.211.33.177:1521:HYBRIS
2016-11-07 17:01:44,642 [main] INFO Orabbix - maxPoolSize=10
2016-11-07 17:01:44,643 [main] INFO Orabbix - maxIdleSize=1
2016-11-07 17:01:44,643 [main] INFO Orabbix - maxIdleTime=1800000ms
2016-11-07 17:01:44,643 [main] INFO Orabbix - poolTimeout=100
2016-11-07 17:01:44,643 [main] INFO Orabbix - timeBetweenEvictionRunsMillis=-1
2016-11-07 17:01:44,643 [main] INFO Orabbix - numTestsPerEvictionRun=3
2016-11-07 17:01:45,065 [main] INFO Orabbix - Connected as ZABBIX
2016-11-07 17:01:45,066 [main] INFO Orabbix - --------- on Database -> HYBRIS
2016-11-07 17:01:45,394 [pool-1-thread-1] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 299 ms
2016-11-07 17:02:45,123 [pool-1-thread-2] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 16 ms
2016-11-07 17:03:45,356 [pool-1-thread-3] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 233 ms
2016-11-07 17:04:45,149 [pool-1-thread-4] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 13 ms
2016-11-07 17:05:45,387 [pool-1-thread-5] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 234 ms
2016-11-07 17:06:45,181 [pool-1-thread-6] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 9 ms
2016-11-07 17:07:45,404 [pool-1-thread-7] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 214 ms
2016-11-07 17:08:45,217 [pool-1-thread-8] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 14 ms
2016-11-07 17:09:45,435 [pool-1-thread-9] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 221 ms
2016-11-07 17:10:45,234 [pool-1-thread-10] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 9 ms
2016-11-07 17:11:45,491 [pool-1-thread-11] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 250 ms
2016-11-07 17:12:45,266 [pool-1-thread-12] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 12 ms
2016-11-07 17:13:45,510 [pool-1-thread-13] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 240 ms
2016-11-07 17:14:45,289 [pool-1-thread-14] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 6 ms
2016-11-07 17:15:45,502 [pool-1-thread-15] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 201 ms
2016-11-07 17:16:45,321 [pool-1-thread-16] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 7 ms
2016-11-07 17:17:45,542 [pool-1-thread-17] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 221 ms
2016-11-07 17:18:45,339 [pool-1-thread-18] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 6 ms
2016-11-07 17:19:45,546 [pool-1-thread-19] INFO Orabbix - Done with dbJob on database hybristest QueryList elapsed time 196 ms

没有任何的报错,说明服务是正常启动的。

查看服务端口:

[root@server init.d]# netstat -anutlp | grep ora
tcp 0 0 10.211.33.177:51461 10.211.33.177:1521 ESTABLISHED 3117/ora_pmon_HYBRI
tcp 0 0 :::59335 :::* LISTEN 3149/ora_d000_HYBRI
tcp 0 0 ::ffff:10.211.33.177:1521 ::ffff:172.20.0.26:39631 ESTABLISHED 11609/oracleHYBRIS
tcp 0 0 ::ffff:10.211.33.177:1521 ::ffff:10.211.33.177:22366 ESTABLISHED 26824/oracleHYBRIS
tcp 0 0 ::ffff:10.211.33.177:1521 ::ffff:172.20.0.26:44515 ESTABLISHED 24901/oracleHYBRIS
udp 0 0 :::11898 :::* 3145/ora_mmon_HYBRI
udp 0 0 ::1:12305 :::* 3151/ora_s000_HYBRI
udp 0 0 ::1:42515 :::* 3149/ora_d000_HYBRI
udp 0 0 ::1:15670 :::* 3117/ora_pmon_HYBRI

注意:需要说明的是,orabbix可以部署在oracle所在的节点上。

3.在zabbix前台操作界面添加模板和设置监控节点

(1)首先需要导入orabbix的模板文件:

[root@server template]# pwd
/opt/orabbix/template
[root@server template]# ls
Orabbix_export_full.xml Orabbix_export_graphs.xml Orabbix_export_items.xml Orabbix_export_triggers.xml

在zabbix控制界面导入该模板:

选择模板文件Orabbix_export_full.xml:

得到Template_Oracle模板:

(2)将模板导入到被监控的节点:

(3)在graphs中查看相关视图内容:

shared pool

PGA

Session/Process

Logical IO

还有很多视图就不一一列举了.

出现的问题
1.orabbix配置文件出现异常,首先需要清楚每个参数的含义,然后再进行配置;

2.数据无法获取(通过查看orabbix的日志文件可以看到报错),orabbix查询oracle数据库的用户权限不够,需要授予足够的权限;

3.zabbix界面无法得到数据,如果可以确保上面一项是可以从数据库中获得数据的话,则需要查看conf.props文件中指定的DatabaseList是否正确(必须是zabbix控制台上的主机名)。

zabbix监控Oracle的更多相关文章

  1. 使用zabbix监控oracle的后台日志

    本文将介绍如何使用zabbix监控oracle的后台日志,当oracle后台日志出现“ORA-”或“Error”时,第一时间将该信息报警出来 zabbix agent端 以下所有操作均用root执行 ...

  2. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  3. 利用zabbix监控oracle数据库

    一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...

  4. 使用zabbix监控oracle表空间

    0.概述 zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作. 前提条件是你已经有了zabbix server和zabbix age ...

  5. Zabbix监控oracle各服务器连接数

    需求: 根据机器名查询oracle连接数,并通过zabbix进行监控 脚本: [root@rac1 Zabbix_S]# cat get_conns.py#!/usr/bin/python#codin ...

  6. zabbix监控oracle之orabbix安装

    zabbix服务器安装配置 zabbixserver中安装该软件 mkdir /opt/orabbix cp orabbix-1.2.3.zip /opt/orabbix cd /opt/orabbi ...

  7. zabbix 监控 oracle 数据库

    https://blog.csdn.net/dyllove98/article/details/41120853

  8. zabbix 用 LLD 完全自动化监控 Oracle

    文章转载自:http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651296856&idx=1&sn=2bdf78071 ...

  9. Zabbix通过Orabbix监控Oracle数据库

    一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够 ...

随机推荐

  1. react-native学习(RN)--之Window环境下搭建环境配置,以及初始化建立react-native项目,(真机和模拟器运行的相关错误解决办法,android打包报错)

    react-native以后会更火的 一.安装java 二.安装Android Studio 三.安装react-native需要的Android studio额外部分 四.安装nodeJS  五.安 ...

  2. 使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型

    本文将使用ML.NET创建机器学习分类模型,通过ASP.NET Core Web API公开它,将其打包到Docker容器中,并通过Azure Container Instances将其部署到云中. ...

  3. 在.NET Core console application中使用User Secrets(用户机密)

    微软很坑地只在Microsoft.NET.Sdk.Web中提供了VS项目右键菜单的"管理用户机密"/"Manage User Secrets"菜单项,在使用Mi ...

  4. 【算法与数据结构专场】BitMap算法基本操作代码实现

    上篇我们讲了BitMap是如何对数据进行存储的,没看过的可以看一下[算法与数据结构专场]BitMap算法介绍 这篇我们来讲一下BitMap这个数据结构的代码实现. 回顾下数据的存储原理 一个二进制位对 ...

  5. 使用mpvue开发小程序教程(五)

    在上一章节中,我们了解了组件的三个基本特性以及组件的基本使用方法.在实际的小程序开发中,我们应该以组件的思维去设计每个小程序的功能页面,对其进行合理的组件拆分,让每个部分都保持功能简洁.条理清楚.各司 ...

  6. JavaScript面向对象--多态

    一.多态的概念 相同的函数作用于不同的对象,会得到不同的结果,这就是多态. 二.如果不用多态,会怎么样? 这里有个浅显易懂的例子,定义一个函数叫makeSound,传入不同的对象,函数体里要写不同的情 ...

  7. 2018年Fintech金融科技关键词和入行互金从业必懂知识

    2018年过去大半,诸多关键词进入眼帘: 5G,消费降级,数据裸奔,新零售,AI,物联网,云计算,合规监管,风控,割韭菜,区块链,生物识别,国民空闲时间以及金融科技. 这些词充斥着我们的生活和时间,而 ...

  8. Java开发知识之Java中的泛型

    Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...

  9. NFS的安装

    NFS的安装鸟哥地址:http://vbird.dic.ksu.edu.tw/linux_server/0330nfs_2.php 13.2 NFS Server 端的设定 既然要使用 NFS 的话, ...

  10. Spring Boot(十)Logback和Log4j2集成与日志发展史

    一.简介 Java知名的日志有很多,比如:JUL.Log4j.JCL.SLF4J.Logback.Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看. 1.1 ...