Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件。(插件安装在zabbix-server端)

下载地址:http://www.smartmarmot.com/product/orabbix/download/

zabbix-server上操作

Orabbix是通过JDBC去连接oracle数据库,然后过滤想要的数据,所以需要jdk环境

我测试过jdk1.7和1.8都可以,直接yum安装,或者下载rpm包,rpm -ivh安装,都可以

这里,我是直接rpm安装的,

[root@zabbix ~]# rpm -ivh jdk-8u102-linux-x64.rpm

Preparing...                ########################################### [100%]

   1:jdk1.8.0_102           ########################################### [100%]

在/opt目录下新建一个orabbix目录:

 [root@oracle orabbix]#mkdir -p /opt/orabbix

(建议在此目录下,如果放置其他目录稍后需要更改orabbix的启动文件orabbix,启动文件默认写在opt/orabbix目录下 )

[root@zabbix opt]# cd orabbix/

上传orabbix-1.2.3.zip

[root@zabbix orabbix]# ls

orabbix-1.2.3.zip

解压

[root@zabbix orabbix]# unzip -q orabbix-1.2.3.zip

[root@zabbix orabbix]# ls

conf  init.d       lib      orabbix-1.2.3.zip  orabbixw.exe  run.sh    uninstall.cmd

doc   install.cmd  orabbix-1.2.3.jar  orabbix.exe        run.bat       template

授权

[root@zabbix orabbix]# cd ..

[root@zabbix opt]# chmod -R a+x orabbix/

[root@zabbix ~]# cd /opt/orabbix/conf/

[root@zabbix conf]# ls

config.props    log4j.properties    query_a_1.props  query_b.props     query.props

config.props.sample  log4j.properties.sample  query_a.props  query - Copy.props  query.props.sample

[root@zabbix conf]# cp config.props.sample config.props

编辑配置文件:

[root@zabbix conf]# vim config.props

源配置文件

[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props.sample

ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVER

ZabbixServer1.Port=PORT_OF_ZABBIX_SERVER

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.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1

DB1.User=zabbix

DB1.Password=zabbix_password

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

修改之后

[root@zabbix conf]# egrep "^[a-Z,1-9]" config.props

ZabbixServerList=ZabbixServer1   #(zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致)

ZabbixServer1.Address=127.0.0.1    #我这里就是在zabbix server上面操作的,所以这里是127.0.0.1

ZabbixServer1.Port=10051   #zabbix server的服务端口

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=300

OrabbixDaemon.MaxThreadNumber=100

DatabaseList=172.20.10.183-oracle,192.168.56.99-oracle   #这里很重要,跟下面的对应上

DatabaseList.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

172.20.10.183-oracle.Url=jdbc:oracle:thin:@172.20.10.183:1521:orcl      #172.20.10.183 oracle数据库的地址,1521端口,orcl数据库实例名

172.20.10.183-oracle.User=zabbix      #授权的账号

172.20.10.183-oracle.Password=zabbix   #授权的密码

172.20.10.183-oracle.MaxActive=10

172.20.10.183-oracle.MaxWait=100

172.20.10.183-oracle.MaxIdle=1

172.20.10.183-oracle.QueryListFile=./conf/query.props    #要查询的语句都在这定义的,不满意自己改

oracle主机上操作

下面是oracle 11g的(12c 语法不一样)授权语句如下,创用户,授权,这些操作,我都是在oracle数据库的sqlplus下执行的

[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 7 18:01:54 2016

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> 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; GRANT SELECT ON V_$SESSION TO ZABBIX; GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX; GRANT SELECT ON V_$EVENT_NAME TO ZABBIX; GRANT SELECT ON V_$RECOVERY_FILE_DEST TO ZABBIX;

启动orabbix

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

[root@zabbix orabbix]# ll /etc/init.d/orabbix

-rwxr-xr-x 1 root root 1693 Sep 14 21:40 /etc/init.d/orabbix

[root@zabbix orabbix]# /etc/init.d/orabbix start

Starting Orabbix service:

centos7系统可以加入systemctl服务

[root@cn-hongkong ~]# cat /usr/lib/systemd/system/orabbix.service
[Unit]
Description=Orabbix
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/opt/orabbix/orabbix/logs/orabbix.pid
ExecStart=/opt/orabbix/orabbix/init.d/orabbix start
ExecReload=/opt/orabbix/orabbix/init.d/orabbix restart
ExecStop=/opt/orabbix/orabbix/init.d/orabbix stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

报错的话,检查配置文件,数据库地址,端口,实例名,账号,密码是否正确,需要验证对于不懂oracle的怎么办,搜命令呗,我也是一路过来,各种坑~~~~~

然后里面看日志

[root@zabbix orabbix]# tailf /opt/orabbix/logs/orabbix.log

[main] INFO  Orabbix - --------- on Database -> orcl

[pool-1-thread-1] WARN  Orabbix - Error while executing ->dbversion- on database ->172.20.10.183-oracle- Exception received ORA-24247: network access denied by access control list (ACL)

ORA-06512: at "SYS.UTL_INADDR", line 4

ORA-06512: at "SYS.UTL_INADDR", line 35

ORA-06512: at line 1

出现这些日志,不影响后面的操作,如果你是完美主义者,满足你

在oracle数据库的sqlplus下执行下面三条命令

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;

到此,安装配置完成,则通过web页面访问监控界面直接导入模板即可

模版放置在/opt/orabbix/template下
Orabbix_export_full.xml   #只需要导入这个一个模板就好

添加主机(注意host name 要和conf.props文件中指定的DatabaseList一致

然后链接oracle的模板

添加完成之后的效果

查看最新数据

这时候图也有了

常见错误

[root@zabbix orabbix]# tailf
/opt/orabbix/logs/orabbix.log

[main] ERROR Orabbix -
Error on Configurator for database 172.20.10.183 oracle -->ORA-01017:
invalid username/password; logon denied

config.props配置文件中,数据库账号密码不对,或者在oracle数据库没授权这个用户。

ORA-28040: No matching authentication protocol这个错误

解决:在Oracle用户(不是grid用户)下,将$ORACLE_HOME/network/admin/sqlnet.ora文件原来的SQLNET.ALLOWED_LOGON_VERSION=8注释掉(如果没有sqlnet.ora文件,那么就创建一个),修改为如下的行:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

不用重启数据库或者监听,也不用重启应用。

1.orabbix配置文件出现异常,首先需要清楚每个参数的含义,然后再进行配置;
2.数据无法获取(通过查看orabbix的日志文件可以看到报错),orabbix查询oracle数据库的用户权限不够,需要授予足够的权限;
3.zabbix界面无法得到数据,如果可以确保上面一项是可以从数据库中获得数据的话,则需要查看conf.props文件中指定的DatabaseList是否正确(必须是zabbix控制台上的主机名)。

补充:

自定义oracle监控项

所有的监控项都在/orabbix/conf/query.props中,添加新监控项为例,有两处需要添加:

1、在QueryList中添加键值,就是可以直接在zabbix web填写的键值。

2、数据库中可以直接执行的查询命令,注意键值后面要添加".Query",不需要“;”结尾。

如:all_tables.Query=select count(*) from all_all_tables

3、OK!服务器上配置完成,登陆zabbix web界面对主机新建监控项即可。

zabbix4.0版本相应安装包:https://github.com/hejianlai/Zabbix

zabbix利用orabbix监控oracle的更多相关文章

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

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

  2. Zabbix+Orabbix监控oracle数据库表空间

    Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 oracle 实例采集数据的有效机制,进而提供此信息的监 ...

  3. orabbix监控oracle

    Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件.下载地址: http://www.smartmarmot.com/product/orabbix/download/ O ...

  4. Orabbix监控Oracle 11g

    Orabbix简介说明 orabbix是一个用来监控oracle数据库性能的zabbix插件工具,通过安装在被监控服务器上客户端上收集数据并传给zabbix服务器端,然后通过调用图形显示.具有以下功能 ...

  5. 【Zabbix】zabora监控Oracle数据库

    zabora监控Oracle数据库 它作为一个开源项目,通过shell脚本有效的监控Oracle基础指标.本文档旨在通过实战,在Zabbix 3.0版本之下,监控生产环境下的多台Oracle数据库. ...

  6. zabbix自定义模板监控oracle

    zabbix服务器端安装:zabbix-3.2.6.tar.gzzabbix client端安装:zabbix-agent-3.2.6-1.x86_64.rpm 1.首先必须在目标机器安装zabbix ...

  7. Zabbix利用orabbix插件监控Oracle数据库

    一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 1 2 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/lo ...

  8. 亲测的orabbix监控Oracle过程

    网上教程很多,但普遍较老,担心新版本的变化,于是亲自测试了一下,记录过程如下: 一.环境 Centos7.3 192.168.56.104 Oracle安装在windows下,192.168.56.1 ...

  9. 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)

    目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...

随机推荐

  1. Java注解(2)-注解处理器(运行时|RetentionPolicy.RUNTIME)

    如果没有用来读取注解的工具,那注解将基本没有任何作用,它也不会比注释更有用.读取注解的工具叫作注解处理器.Java提供了两种方式来处理注解:第一种是利用运行时反射机制:另一种是使用Java提供的API ...

  2. java基础笔记(6)----面向对象的三大特性

    简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...

  3. 自定义ArrayList

    自定义实现ArrayList很简单,只需要明白下面几点 1.ArrayList 底层是由数组组成的 2.数组有容量限制,但是ArrayList并没有(实际上也有,Integer.MAX_VALUE). ...

  4. 网络1711-1712班 c 语言评分总表一览

    学号 姓名 作业地址 PTA实验作业5分 PTA排名2分 阅读代码2分 总结1分 代码规范扣分-2--0 总分 是否推荐博客 1 **莹 http://www.cnblogs.com/wwwwxy12 ...

  5. 敏捷冲刺每日报告——Day4

    1.情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起止时间 2017.10.28 00:00 -- 2017.10.29 00:00 讨论时间地点 2017.10.28晚9:30, ...

  6. Ubuntu下安装gsoap

    昨天在ubuntu下进行安装gSOAP,费了很多时间,没成功,今天又来找了大量教程资料,终于一次成功,这里写下自己的安装步骤和方法,供大家参考. 首先下载gsoap,我下载的是gsoap-2.8.1. ...

  7. 201621123057 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答 ...

  8. itchat 微信的使用

    #coding=utf8 import itchat # 自动回复 # 封装好的装饰器,当接收到的消息是Text,即文字消息 @itchat.msg_register('Text') def text ...

  9. session 与 cookie (一)

    服务器信息临时存储 session篇 web.xml设置 <session-config> <session-timeout></session-timeout> ...

  10. iis / asp.net 使用 .config 和 .xml 文件的区别

    由于在项目中有同学使用后缀为 .xml 的文件作为配置文件,而配置文件中有一些敏感信息被记录,如接口地址,Token,甚至还有数据库连接字符串. 以前都没想过为何微软会使用.config 的后缀在作为 ...