zabbix---监控Oracle12c数据库
使用插件:orabbix用于监控oracle实例的zabbix插件
orabbix插件下载地址:http://www.smartmarmot.com/product/orabbix/download/
Zabbix Server端操作:
orabbix通过JDBC连接数据库,zabbix server需要安装jdk,jdk1.7和jdk1.8都可以
[root@172-21-3-220 ~]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y
[root@172-21-3-220 ~]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
1)创建/opt/orabbix目录
mkdir -p /opt/orabbix
***建议在此目录下,如果放置其他目录需要更改orabbix的启动文件orabbix,默认写在opt/orabbix目录下***
2)下载orabbix安装文件到/opt/目录并解压文件
wget https://jaist.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
unzip -o orabbix-1.2.3.zip -d /opt/orabbix/
3)拷贝orabbix配置文件
cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props
4)拷贝orabbix启动文件并授权
cp /opt/orabbix/init.d/orabbix /etc/init.d/
chmod u+x /etc/init.d/orabbix
chmod u+x /opt/orabbix/run.sh
Oracle 数据库端操作:
1)创建Oracle监控账号
SQL> create user zabbix
2 identified by zabbix
3 default tablespace system
4 temporary tablespace temp
5 profile default
6 account unlock;
2) 赋予角色权限
SQL> GRANT IMP_FULL_DATABASE TO zabbix;
GRANT CONNECT TO zabbix;
GRANT RESOURCE TO zabbix;
ALTER USER zabbix DEFAULT ROLE ALL;
GRANT UNLIMITED TABLESPACE TO zabbix;
GRANT CREATE ANY TRIGGER TO zabbix;
GRANT CREATE VIEW TO zabbix;
GRANT DROP ANY TABLE TO zabbix;
GRANT CREATE TABLE TO zabbix;
GRANT CREATE ANY PROCEDURE TO zabbix;
GRANT UPDATE ANY TABLE TO zabbix;
GRANT SELECT ANY TABLE TO zabbix;
GRANT CREATE ANY SYNONYM TO zabbix;
GRANT DELETE ANY TABLE TO zabbix;
GRANT INSERT ANY TABLE TO zabbix;
GRANT CREATE SEQUENCE TO zabbix;
GRANT DBA TO zabbix;
3)开放ACL访问控制,否则部分监控数据无法显示:
SQL> exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');
SQL> exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');
SQL> commit;
修改orabbix配置文件:
1)编辑并修改 orabbix 配置文件 config.props
源配置文件:
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
修改之后:
ZabbixServerList=ZabbixServer # (zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致,自己觉得还是不修改更好一点)
ZabbixServer.Address=172.21.3.220 #zabbix server ip地址
ZabbixServer.Port=10051 # zabbix server的服务端口
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=dthradb #这里很重要,跟下面的对应上,如果多个数据库就用逗号分隔
DatabaseList.MaxActive=10 # 数据库连接池中的最大活跃数量(全局参数)
DatabaseList.MaxWait=100 # 数据库连接池中的最大等待的毫秒数(全局参数)
DatabaseList.MaxIdle=1
dthradb.Url=jdbc:oracle:thin:@172.18.238.243:1642:dthradb #172.18.238.243 oracle数据库的地址,1642端口,dthradb数据库实例名
dthradb.User=zabbix #授权的账号
dthradb.Password=zabbix #授权的密码
# 以下几个可对单个数据库进行配置,如果不配置则引用上面的数据库连接池全局配置
dthradb.MaxActive=10
dthradb.MaxWait=100
dthradb.MaxIdle=1
#要查询的语句都在这定义的,根据需求可添加新的监控项
dthradb.QueryListFile=./conf/query.props
***如果有多个数据库需要监控、可以在下面增加配置。当然、上面的DatabaseList也需要进行添加***
#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
添加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包上传至服务器:
# 把ojdbc8.jar文件移动到/opt/orabbix/lib/下面
mv ojdbc8.jar /opt/orabbix/lib/
# 删除/opt/orabbix/lib/目录下面的默认ojdbc6.jar
rm -rf /opt/orabbix/lib/ojdbc6.jar
# 给ojdbc8.jar授权
chown -Rf root.root /opt/orabbix/lib/ojdbc8.jar
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编译完成之后会报错的):
# 克隆代码到本地
cd /usr/local/src/
git clone https://github.com/snickerjp/orabbix.git
# 将上面下载的orabbix压缩文件复制到克隆的orabbix目录内
cd orabbix/
cp -rf /opt/orabbix-1.2.3.zip ./
mkdir orabbix-1.2.3
unzip -o orabbix-1.2.3.zip -d orabbix-1.2.3/
#拷贝orabbix-1.2.3.jar和lib库下的jar包到指定文件
javac -cp "orabbix-1.2.3/orabbix-1.2.3.jar:orabbix-1.2.3/lib/*" com/smartmarmot/orabbix/Sender.java
#创建构建目录
mkdir -p ./build
cp orabbix-1.2.3/orabbix-1.2.3.jar ./build
#重新打包orabbix,去刚才创建的build目录下面操作如下
jar -xvf orabbix-1.2.3.jar com
cp ../com/smartmarmot/orabbix/Sender.class com/smartmarmot/orabbix/Sender.class
cp: overwrite `com/smartmarmot/orabbix/Sender.class'? y
jar -uf orabbix-1.2.3.jar com
#将重新打包好的jar包覆盖掉之前的orabbix-1.2.3.jar
cp -rf orabbix-1.2.3.jar /opt/orabbix/orabbix-1.2.3.jar
cp: overwrite `/opt/orabbix/orabbix-1.2.3.jar'? y
3)启动orabbix,把orabbix加入开机启动
# 加入开机启动
chkconfig --add orabbix
# 验证开机启动项
chkconfig orabbix on
# 启动orabbix
systemctl start orabbix
# 验证orabbix是否启动
ps aux | grep orabbix
# 这里我们也可以通过下面的命令检查orabbix日志是否报错
tail -f /opt/orabbix/logs/orabbix.log
4)配置监控模板
orabbix提供了已经写好的监控模板文件、模板文件放在安装包的 /opt/orabbix/template 文件目录下面、我们直接把下面的四个监控模板文件导入zabbix
[root@172-21-3-220 conf]# cd /opt/orabbix/template
[root@172-21-3-220 template]# ls
##只需导入Orabbix_export_full.xml这一个就好了
Orabbix_export_full.xml Orabbix_export_graphs.xml Orabbix_export_items.xml Orabbix_export_triggers.xml
[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数据库的更多相关文章
- 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步
使用percona-xtrabackup实现对线上zabbix监控系统数据库的主从同步 业务背景: zabbix3.0.4是业务的主要监控,部署在一台单机中,为避免数据丢失先对其做数据主从同步,因主数 ...
- 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 ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 利用zabbix监控oracle数据库
一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...
- zabbix监控Mariadb数据库
1.介绍: zabbix自带的MySQL插件来监控mysql数据库,但是太过简陋,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用. percona ...
- zabbix监控 -mysql数据库
1.禁用安装防护[root@mysql213 ~]# vi /etc/selinux/config #关闭安装 SELINUX=disabled 2.授权zabbix监控账号 mysql -uroot ...
- zabbix监控mysql数据库——qps和tps
首先可以继续顺着zabbix监控mysql继续往下做 1.首先在42的继续编写qps和tps 1.1qps 在41服务端查询: 1.2 tps 2.在web进行查看
- zabbix 监控客户端数据库 zabbix客户端
[root@zabbix客户端 zabbix]# grep -v "^$" etc/zabbix_agentd.conf|grep -v "^#" LogFil ...
- zabbix监控mysql数据库信息脚本
---恢复内容开始--- 在/usr/local/zabbix/etc/zabbix_agentd.conf增加 # 获取mysql性能指标 UserParameter=mysql.status[*] ...
- zabbix 监控 oracle 数据库
https://blog.csdn.net/dyllove98/article/details/41120853
随机推荐
- ARM 反汇编速成
1.跳转指令 B 无条件跳转 BL 带链接的无条件跳转 BX 带状态切换的无条件跳转 BLX 带链接和状态切换的无条件跳转 B loc_地址 BNE, BEQ 2.存储器与寄存器交互数据指令 ...
- HarmonyOS 鸿蒙隔离层设计
在软件开发中,底层库的更换或升级是常见的需求,这可能由性能提升.新功能需求或安全性考虑等因素驱动.为了降低迁移成本,良好的设计模式至关重要. 在版本迭代过程中,网络请求库可能会经历从A到B再到C的演进 ...
- Linux上OcenBase单机版部署及基本信息查询
OceanBase单机版部署可以通过在线和离线两种方式部署.在线部署可以通过yum源或者apt源部署,直接拉取官方源码即可.实际使用中,大部分环境连不了外网,本文介绍离线方式安装. 下载"O ...
- JSON字符串数据转换指定实体对象数据
一.引入需要的maven依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId> ...
- AIRIOT物联网低代码平台如何配置交通部JT-808协议?
属性配置可配置终端ID和SIM卡号,数据点配置决定设备传上来的哪些数据可以存储展示. 驱动配置可配置采集周期和通讯超时时间. AIRIOT物联网低代码平台如何配置交通部JT-808协议?具体操作如下: ...
- vue实现的常见的动画效果
本文包括的动画: zoom-in zoom-in-left zoom-in-right zoom-in-top zoom-in-bottom zoom-in-center-x zoom-in-cent ...
- IceRPC之调度管道->快乐的RPC
作者引言 很高兴啊,我们来到了IceRPC之调度管道->快乐的RPC, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界. 调度管道 Dispatch pipeline 了解如 ...
- 线程同步 进程同步 EventWaitHandle
这个名字LLLLL取相同就能让同一台电脑上两个进程同步 主动控制程序 class Program { static EventWaitHandle eHandle = new EventWaitHan ...
- .net版OCR紧随PP-OCRv3重磅发布
.net版OCR地址PaddleOCRSharp PaddleOCRSharp是一个基于PaddleOCR的C++代码修改并封装的.NET的工具类库.包含文本识别.文本检测.基于文本检测结果的统计分析 ...
- Leetcode数组-二分法
Leetcode数组-二分法 二分法学习地址 二分法 704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 targe ...