使用插件:orabbix用于监控oracle实例的zabbix插件

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

Zabbix Server端操作:

  1. orabbix通过JDBC连接数据库,zabbix server需要安装jdk,jdk1.7jdk1.8都可以
  1. [root@172-21-3-220 ~]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y
  2. [root@172-21-3-220 ~]# java -version
  3. java version "1.8.0_45"
  4. Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
  5. Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

1)创建/opt/orabbix目录

  1. mkdir -p /opt/orabbix
  2. ***建议在此目录下,如果放置其他目录需要更改orabbix的启动文件orabbix,默认写在opt/orabbix目录下***

2)下载orabbix安装文件到/opt/目录并解压文件

  1. wget https://jaist.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
  2. unzip -o orabbix-1.2.3.zip -d /opt/orabbix/

3)拷贝orabbix配置文件

  1. cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props

4)拷贝orabbix启动文件并授权

  1. cp /opt/orabbix/init.d/orabbix /etc/init.d/
  2. chmod u+x /etc/init.d/orabbix
  3. chmod u+x /opt/orabbix/run.sh

Oracle 数据库端操作:

1)创建Oracle监控账号

  1. SQL> create user zabbix
  2. 2 identified by zabbix
  3. 3 default tablespace system
  4. 4 temporary tablespace temp
  5. 5 profile default
  6. 6 account unlock;

2) 赋予角色权限

  1. SQL> GRANT IMP_FULL_DATABASE TO zabbix;
  2. GRANT CONNECT TO zabbix;
  3. GRANT RESOURCE TO zabbix;
  4. ALTER USER zabbix DEFAULT ROLE ALL;
  5. GRANT UNLIMITED TABLESPACE TO zabbix;
  6. GRANT CREATE ANY TRIGGER TO zabbix;
  7. GRANT CREATE VIEW TO zabbix;
  8. GRANT DROP ANY TABLE TO zabbix;
  9. GRANT CREATE TABLE TO zabbix;
  10. GRANT CREATE ANY PROCEDURE TO zabbix;
  11. GRANT UPDATE ANY TABLE TO zabbix;
  12. GRANT SELECT ANY TABLE TO zabbix;
  13. GRANT CREATE ANY SYNONYM TO zabbix;
  14. GRANT DELETE ANY TABLE TO zabbix;
  15. GRANT INSERT ANY TABLE TO zabbix;
  16. GRANT CREATE SEQUENCE TO zabbix;
  17. GRANT DBA TO zabbix;

3)开放ACL访问控制,否则部分监控数据无法显示:

  1. SQL> exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
  2. SQL> exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
  3. SQL> commit;

修改orabbix配置文件:

1)编辑并修改 orabbix 配置文件 config.props

源配置文件:

  1. ZabbixServerList=ZabbixServer1,ZabbixServer2
  2. ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVER
  3. ZabbixServer1.Port=PORT_OF_ZABBIX_SERVER
  4. ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
  5. ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER
  6. OrabbixDaemon.PidFile=./logs/orabbix.pid
  7. OrabbixDaemon.Sleep=300
  8. OrabbixDaemon.MaxThreadNumber=100
  9. DatabaseList=DB1,DB2,DB3
  10. DatabaseList.MaxActive=10
  11. DatabaseList.MaxWait=100
  12. DatabaseList.MaxIdle=1
  13. DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1
  14. DB1.User=zabbix
  15. DB1.Password=zabbix_password
  16. DB1.MaxActive=10
  17. DB1.MaxWait=100
  18. DB1.MaxIdle=1
  19. DB1.QueryListFile=./conf/query.props
  20. DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
  21. DB2.User=zabbix
  22. DB2.Password=zabbix_password
  23. DB2.QueryListFile=./conf/query.props
  24. DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
  25. DB3.User=zabbix
  26. DB3.Password=zabbix_password
  27. DB3.QueryListFile=./conf/query.props

修改之后:

  1. ZabbixServerList=ZabbixServer # (zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致,自己觉得还是不修改更好一点)
  2. ZabbixServer.Address=172.21.3.220 #zabbix server ip地址
  3. ZabbixServer.Port=10051 # zabbix server的服务端口
  4. OrabbixDaemon.PidFile=./logs/orabbix.pid
  5. OrabbixDaemon.Sleep=300
  6. OrabbixDaemon.MaxThreadNumber=100
  7. DatabaseList=dthradb #这里很重要,跟下面的对应上,如果多个数据库就用逗号分隔
  8. DatabaseList.MaxActive=10 # 数据库连接池中的最大活跃数量(全局参数)
  9. DatabaseList.MaxWait=100 # 数据库连接池中的最大等待的毫秒数(全局参数)
  10. DatabaseList.MaxIdle=1
  11. dthradb.Url=jdbc:oracle:thin:@172.18.238.243:1642:dthradb #172.18.238.243 oracle数据库的地址,1642端口,dthradb数据库实例名
  12. dthradb.User=zabbix #授权的账号
  13. dthradb.Password=zabbix #授权的密码
  14. # 以下几个可对单个数据库进行配置,如果不配置则引用上面的数据库连接池全局配置
  15. dthradb.MaxActive=10
  16. dthradb.MaxWait=100
  17. dthradb.MaxIdle=1
  18. #要查询的语句都在这定义的,根据需求可添加新的监控项
  19. dthradb.QueryListFile=./conf/query.props
  20. ***如果有多个数据库需要监控、可以在下面增加配置。当然、上面的DatabaseList也需要进行添加***
  21. #DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
  22. #DB2.User=zabbix
  23. #DB2.Password=zabbix_password
  24. #DB2.QueryListFile=./conf/query.props
  25. #DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
  26. #DB3.User=zabbix
  27. #DB3.Password=zabbix_password
  28. #DB3.QueryListFile=./conf/query.props

添加ojdbc8.jar驱动

​ orabbix默认使用的是ojdbc6.jar驱动,因为ojdbc6.jar驱动的认证协议对12c的认证协议不匹配,所以这里换成ojdbc8.jar驱动:

下载地址:https://www.oracle.com/database/technologies/appdev/jdbc-ucp-183-downloads.html

1)下载完成之后我们把ojdbc8.jar包上传至服务器:

  1. # 把ojdbc8.jar文件移动到/opt/orabbix/lib/下面
  2. mv ojdbc8.jar /opt/orabbix/lib/
  3. # 删除/opt/orabbix/lib/目录下面的默认ojdbc6.jar
  4. rm -rf /opt/orabbix/lib/ojdbc6.jar
  5. # 给ojdbc8.jar授权
  6. chown -Rf root.root /opt/orabbix/lib/ojdbc8.jar
  7. chmod 644 /opt/orabbix/lib/ojdbc8.jar

2)重新编译orabbix-1.2.3.tar

​ orabbix默认是不支持zabbix4+的,因为orabbix在传输数据的时候在数据包中没有加 Header包头 ,在zabbix4之前版本中zabbix server和zabbix proxy收到的数据包允许不加 Header包头,所以orabbix在zabbix4.0版本之前可以游刃有余的对orabbix监控,但是在zabbix4.0之后由于zabbix官方删除了对纯本文协议的支持(无Header)的支持,官方解释:Header and data length

所以现在zabbix4.0之后版本必须强制添加 Header包头,对于没有添加 Header包头的数据包,Zabbix Server/Zabbix Proxy将会拒绝此数据报文,在github上给出了一个解决方法,将重新编译orabbix-1.2.3.jar加入 Header 协议头的支持。 具体操作如下(这里我们必须要使用低版本的java、使用高版本的java编译完成之后会报错的):

  1. # 克隆代码到本地
  2. cd /usr/local/src/
  3. git clone https://github.com/snickerjp/orabbix.git
  4. # 将上面下载的orabbix压缩文件复制到克隆的orabbix目录内
  5. cd orabbix/
  6. cp -rf /opt/orabbix-1.2.3.zip ./
  7. mkdir orabbix-1.2.3
  8. unzip -o orabbix-1.2.3.zip -d orabbix-1.2.3/
  9. #拷贝orabbix-1.2.3.jar和lib库下的jar包到指定文件
  10. javac -cp "orabbix-1.2.3/orabbix-1.2.3.jar:orabbix-1.2.3/lib/*" com/smartmarmot/orabbix/Sender.java
  11. #创建构建目录
  12. mkdir -p ./build
  13. cp orabbix-1.2.3/orabbix-1.2.3.jar ./build
  14. #重新打包orabbix,去刚才创建的build目录下面操作如下
  15. jar -xvf orabbix-1.2.3.jar com
  16. cp ../com/smartmarmot/orabbix/Sender.class com/smartmarmot/orabbix/Sender.class
  17. cp: overwrite `com/smartmarmot/orabbix/Sender.class'? y
  18. jar -uf orabbix-1.2.3.jar com
  19. #将重新打包好的jar包覆盖掉之前的orabbix-1.2.3.jar
  20. cp -rf orabbix-1.2.3.jar /opt/orabbix/orabbix-1.2.3.jar
  21. cp: overwrite `/opt/orabbix/orabbix-1.2.3.jar'? y

3)启动orabbix,把orabbix加入开机启动

  1. # 加入开机启动
  2. chkconfig --add orabbix
  3. # 验证开机启动项
  4. chkconfig orabbix on
  5. # 启动orabbix
  6. systemctl start orabbix
  7. # 验证orabbix是否启动
  8. ps aux | grep orabbix
  9. # 这里我们也可以通过下面的命令检查orabbix日志是否报错
  10. tail -f /opt/orabbix/logs/orabbix.log

4)配置监控模板

​ orabbix提供了已经写好的监控模板文件、模板文件放在安装包的 /opt/orabbix/template 文件目录下面、我们直接把下面的四个监控模板文件导入zabbix

  1. [root@172-21-3-220 conf]# cd /opt/orabbix/template
  2. [root@172-21-3-220 template]# ls
  3. ##只需导入Orabbix_export_full.xml这一个就好了
  4. Orabbix_export_full.xml Orabbix_export_graphs.xml Orabbix_export_items.xml Orabbix_export_triggers.xml
  5. [root@172-21-3-220 template]#

导入完成之后、我们直接添加监控主机、关联Oracle模板

添加 主机监控:

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

zabbix监控地址:http://172.21.3.220/zabbix.php

账号: Admin

密码:zabbix

参考链接:https://blog.z0ukun.com/?p=2119

zabbix---监控Oracle12c数据库的更多相关文章

  1. 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步

    使用percona-xtrabackup实现对线上zabbix监控系统数据库的主从同步 业务背景: zabbix3.0.4是业务的主要监控,部署在一台单机中,为避免数据丢失先对其做数据主从同步,因主数 ...

  2. CentOS 6.3下Zabbix监控MySQL数据库参数

    系统环境:CentOS 6.3 x64  http://www.linuxidc.com/Linux/2012-12/76583.htm mysql:    mysql-5.6.10 http://w ...

  3. 使用Zabbix监控Oracle数据库

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

  4. 利用zabbix监控oracle数据库

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

  5. zabbix监控Mariadb数据库

    1.介绍: zabbix自带的MySQL插件来监控mysql数据库,但是太过简陋,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用. percona ...

  6. zabbix监控 -mysql数据库

    1.禁用安装防护[root@mysql213 ~]# vi /etc/selinux/config #关闭安装 SELINUX=disabled 2.授权zabbix监控账号 mysql -uroot ...

  7. zabbix监控mysql数据库——qps和tps

    首先可以继续顺着zabbix监控mysql继续往下做 1.首先在42的继续编写qps和tps 1.1qps 在41服务端查询: 1.2 tps 2.在web进行查看

  8. zabbix 监控客户端数据库 zabbix客户端

    [root@zabbix客户端 zabbix]# grep -v "^$" etc/zabbix_agentd.conf|grep -v "^#" LogFil ...

  9. zabbix监控mysql数据库信息脚本

    ---恢复内容开始--- 在/usr/local/zabbix/etc/zabbix_agentd.conf增加 # 获取mysql性能指标 UserParameter=mysql.status[*] ...

  10. zabbix 监控 oracle 数据库

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

随机推荐

  1. [Mobi] MacOS 安装设置 ADB (Android Dedug Bridge)

    adb (Android Dedug Bridge) 是 Google 提供的一个工具,用于调试 Android 应用程序和系统的各个部分. 在 MacOS 平台,调试安卓应用 首先需要安装 Andr ...

  2. [TP5] 浅谈 ThinkPHP 的 Hook 行为事件及监听执行

    TP5 中使用 \think\Hook::add('xx', '\app\xxx\behavior\Xx') 注册行为. 也可以在 application/tags.php 中统一注册. 在需要监听执 ...

  3. 记 Win8.1 某应用渲染抛出 OutOfMemoryException 异常及修复方法

    本文记录某个应用在某台 Windows 8.1 x86 系统上,运行时抛出 OutOfMemoryException 异常,启动失败.应用程序能启动,但是在第一次碰到渲染时,就发现渲染初始化失败,从而 ...

  4. Microsoft.Maui.Graphics.Skia 使用 DrawString 绘制文本的坐标问题

    本文记录使用 Microsoft.Maui.Graphics.Skia 的 DrawString 进行绘制文本,不同的重载方法绘制的文本的坐标不同的问题 本文开始之前,预期已经准备好了环境和基础项目, ...

  5. ABAP 7.58 中支持任意精度算术的新类

    1. 引言 通常,有两种对编程语言的改进.第一种是让困难的事情变得简单,第二种是让不可能的事情变为可能.本文介绍的是任意精度算术,它属于第二类:使在ABAP中原本不可能的事情成为可能. 过去已经可以在 ...

  6. 深入学习和理解Django模板层:构建动态页面

    title: 深入学习和理解Django模板层:构建动态页面 date: 2024/5/5 20:53:51 updated: 2024/5/5 20:53:51 categories: 后端开发 t ...

  7. kali linux 渗透测试 01 kali介绍

    安全问题的根源 分层思想------盲人摸象 只追求功能实现----比较片面 最大的安全威胁是人---- 安全目标 先于攻击者发现和防止漏洞出现 攻击型安全 防护性安全 渗透测试 尝试击破安全防御机制 ...

  8. 对于Docker和Podman的一点使用经验

    前言:本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助. 本文bash脚本初步加工后可直接使用(兼容mac和linux系统),对于关键点 ...

  9. 用Python画一个冰墩墩!

    北京2022年冬奥会的召开,吉祥物冰墩墩着实火了,真的是一墩难求,为了实现冰墩墩的自由,经过资料搜集及参考冰墩墩网上的开源代码(https://github.com/HelloCoder-HaC/bi ...

  10. three.js 物体要使用光线投射技术,计算是否点击位置与物体有交叉

    原生 DOM 还用原生的 DOM 点击事件,要注意开启 pointerEvents CSS3DRenderer 是一个新的渲染器,需要在渲染循环调用并适配 labelRenderer.domEleme ...