zabbix监控Oracle
可监控项
使用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的更多相关文章
- 使用zabbix监控oracle的后台日志
本文将介绍如何使用zabbix监控oracle的后台日志,当oracle后台日志出现“ORA-”或“Error”时,第一时间将该信息报警出来 zabbix agent端 以下所有操作均用root执行 ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 利用zabbix监控oracle数据库
一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...
- 使用zabbix监控oracle表空间
0.概述 zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作. 前提条件是你已经有了zabbix server和zabbix age ...
- Zabbix监控oracle各服务器连接数
需求: 根据机器名查询oracle连接数,并通过zabbix进行监控 脚本: [root@rac1 Zabbix_S]# cat get_conns.py#!/usr/bin/python#codin ...
- zabbix监控oracle之orabbix安装
zabbix服务器安装配置 zabbixserver中安装该软件 mkdir /opt/orabbix cp orabbix-1.2.3.zip /opt/orabbix cd /opt/orabbi ...
- zabbix 监控 oracle 数据库
https://blog.csdn.net/dyllove98/article/details/41120853
- zabbix 用 LLD 完全自动化监控 Oracle
文章转载自:http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651296856&idx=1&sn=2bdf78071 ...
- Zabbix通过Orabbix监控Oracle数据库
一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够 ...
随机推荐
- 一篇文章带你学会Linux三剑客之一:awk
awk是一种用于处理文本.模式匹配的编程语言.与sed和grep,俗称Linux下的三剑客.学会 awk 等于你在 Linux 命令行里,又多了一种处理文本的选择.这篇文章重点教你如何使用,看完这篇文 ...
- Spring Boot2.0 设置拦截器
所有功能完成 配置登录认证 配置拦截器 在spring boot2.0 之后 通过继承这个WebMvcConfigurer类 就可以完成拦截 新建包com.example.interceptor; 创 ...
- C++STL模板库适配器之stack容器
目录 适配器 一丶适配器简介 二丶栈(stack)用法 1.栈的常用方法 适配器 一丶适配器简介 Stl中的适配器,有栈 (stack) 队列 queue 根priority_queue 适配器都是包 ...
- ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件
应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET ...
- 程序员如何描述清楚线上bug
案例 一个管理后台的bug,把操作记录中的操作员姓名,写成了该操作员的id.原因是修改了一个返回操作人姓名的函数,返回了操作人的id.但是还有其他地方也用这个函数,导致其他地方把姓名字段填写成了操作员 ...
- CSS float的相关图文详解(二)
最近这段时间有些忙,一直没有写关于如何清除浮动的,现在终于抽出时间了,还是那句话,如果哪里有错误或者错别字,希望大家留言指正.我们一起进步! 在CSS中,我们通过float属性实现元素的浮动.浮动框旁 ...
- 认识RabbitMQ交换机模型
前言 RabbitMQ是消息队列中间件(Message Queue Middleware)中一种,工作虽然有用到,但是却没有形成很好的整体包括,主要是一些基础概念的认识,这里通过阅读<Rabbi ...
- DataTable转换成List集合,传递到HTML页面
public string GetPwd(string str) { var dt= bll.Gets(str); List<string> list = new List<stri ...
- .net 发布 web应用程序
第一步:VS2015中发布 https://jingyan.baidu.com/article/7f41ecec58f7eb593c095c69.html (作用:分离开发代码和测试代码) 第二步:发 ...
- Java开发笔记(四十八)类的简单继承
前面介绍了类的基本用法,主要是如何封装一个类的各项要素,包括成员属性.成员方法.构造方法等,想必大家对类的简单运用早已驾轻就熟.所谓“物以类聚,人以群分”,之所以某些事物会聚在一起,乃是因为它们拥有类 ...