Zabbix利用orabbix插件监控Oracle数据库(增强版)

简介:

按照网上的一些资料进行安装最后发现问题挺多的,于是自己修复了一些问题便记录了下来。

一.jdk的安装(Orabbix Server)

1.软件解压,放到固定位置

1
2
tar  zxf jdk-8u51-linux-x64. tar .gz
mv  jdk1.8.0_51/  /usr/local/

2.设置系统变量,编辑/etc/profile在末尾增加

1
2
3
export  JAVA_HOME= /usr/local/jdk1 .8.0_51
exportCLASSPATH=$JAVA_HOME /lib/dt .jar:$JAVA_HOME /lib/tools .jar
export  PATH=$JAVA_HOME /bin :$PATH

3.执行一下/etc/profile使之生效

1
source  /etc/profile


二.Oracle中增加监控用户,并设置相应的用户权限,这一步在sqlplus中完成(ORACLE服务器)

1
2
3
4
5
6
7
8
su - oracle
sqlplus /  as  sysdba
SQL> CREATE  USER  zabbix
IDENTIFIED  BY  zabbix_password
DEFAULT  TABLESPACE USERS
TEMPORARY  TABLESPACE  TEMP
PROFILE  DEFAULT
ACCOUNT UNLOCK;

赋予zabbix用户对应权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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_$LOG  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;
GRANT  SELECT  ON  V_$locked_object  TO  ZABBIX;
GRANT  SELECT  ON  dba_objects  TO  ZABBIX;
GRANT  SELECT  ON  dba_tablespaces  TO  ZABBIX;
GRANT  SELECT  ON  v_$session  TO  ZABBIX;

以上有部分小写的是我对其他文章的增加部分

如果数据库是11G,还要执行如下部分:

1
2
3
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 ;

三.安装orabbix(Orabbix Server)

其实orabbix只需要安装在一台服务器即可,我就选择安装在Zabbix Server上,当然上面的jdk是为orabbix服务的,因为orabbix就是一个oracle客户端去查找oracle中的数据,然后传给zabbix.

1
2
3
4
5
6
7
8
9
10
mkdir  /usr/local/orabbix
cd  /usr/local/orabbix
wget orabbix http: //nchc .dl.sourceforge.net /project/orabbix/orabbix-1 .2.3.zip
unzip orabbix-1.2.3.zip
chmod  +x run.sh
cp  init.d /orabbix  /etc/init .d/
sed  -i  's#/opt/orabbix#orabbix=/usr/local/orabbix#g'  /etc/init .d /orabbix
chmod  +x  /etc/init .d /orabbix
sed  -i  's#java#/usr/local/jdk1.8.0_51/bin/java#g'  /usr/local/orabbix/run .sh
#用以解决/usr/local/orabbix/run.sh: line 2: java: command not found这个错误

配置orabbix,进入/usr/local/orabbix/conf/目录

cd /usr/local/orabbix/conf

cp config.props.sample config.props

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ZabbixServerList=ZabbixServer
ZabbixServer.Address=192.168.0.81
ZabbixServer.Port=10051
OrabbixDaemon.PidFile=. /logs/orabbix .pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=tpy100
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
tpy100.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl
tpy100.User=ZABBIX
tpy100.Password=zabbix
tpy100.MaxActive=10
tpy100.MaxWait=100
tpy100.MaxIdle=1
tpy100.QueryListFile=. /conf/query .props

需要注意的是DatabaseList=CRMDB指的是被监控服务器的名称,该名称要和zabbixserver界面中的机器名称保持一致,该配置文件中后续所引用的设定都以该名称为准。
CRMDB.Url=jdbc:oracle:thin:@192.168.0.209:1521:orcl 
指定的是被监控服务器的连接信息(例如采用jdbc的联接方式,服务器地址是192.168.0.209oracle的端口是1521orcl指的是数据库的实例)

默认按照上面的步骤就差不多了,但是你导入模板之后就会发现监控项目不全,如dbsize及dbfilesize这些类目,orabbix默认情况下未开启数据库大小,需要配置query.props

编辑 /usr/local/orabbix/conf/query.props文件

在QueryList=类目下增加dbfilesize,dbsize,如图所示

wKiom1ZqjZGQBymTAAENezZyqGI805.jpg

然后在该文件的末尾添加

1
2
3
4
5
6
7
8
dbfilesize.Query= select  to_char( sum (bytes /1024/1024/10 ),  'FM99999999999999990' ) retvalue from dba_data_files
 
dbsize.Query=SELECT to_char( sum (  NVL(a.bytes /1024/1024/10  - NVL(f.bytes /1024/1024/10 , 0), 0)),  'FM99999999999999990' ) retvalue \
FROM sys.dba_tablespaces d, \
( select  tablespace_name,  sum (bytes) bytes from dba_data_files group by tablespace_name) a, \
( select  tablespace_name,  sum (bytes) bytes from dba_free_space group by tablespace_name) f \
WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) \
AND NOT (d.extent_management like  'LOCAL'  AND d.contents like  'TEMPORARY' )

用以定义查询dbfilesize,dbsize的SQL语句

这个时候就可以启动orabbix服务了

service orabbix start

检查服务ps aux |grep orabbix|wc -l 如果等于2就说明启动那个成功了,启动成功不一定就是没问题了,这个时候需要查看日志

/usr/local/orabbix/logs/orabbix.log

wKiom1Zqj4SRX_L6AAdiQaHLJBY087.jpg

从以上可以看到我很多数据是抓不到的,都是因为权限的问题找不到表,于是就需要利用query.props

/usr/local/orabbix/conf/query.props

找到对应的表,如这里找archive的表

wKiom1ZqkLzB8TkHAAB1tEcr--0828.jpg

如果没有权限的话 就需要用DBA的权限进数据库给予权限

GRANT SELECT ON v_$LOG TO ZABBIX;

即可


本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1722118


相关文章
|
1月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
303 28
|
1月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
|
2月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
100 10
|
2月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回查询
本文介绍了Oracle数据库的闪回查询(Flashback Query)功能及其实际应用。闪回查询通过`AS OF`子句,结合时间戳或SCN号,可查询历史数据状态,帮助分析数据差异。文中通过具体示例演示了如何使用闪回查询:创建测试表、记录当前SCN号、更新数据并提交事务,最后通过闪回查询获取历史数据。附带的视频和代码块详细展示了操作步骤与结果。
|
1月前
|
运维 监控 安全
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
76 0
|
2月前
|
Oracle 关系型数据库 数据管理
【赵渝强老师】Oracle数据库的闪回技术
在Oracle数据库操作中,难免会遇到误删表或提交错误事务等问题,可能导致数据丢失甚至数据库停止运行。传统解决方法依赖备份恢复,但需提前准备正确备份。为此,Oracle提供了闪回技术,无需备份即可快速恢复数据。它支持7种类型的操作,如闪回查询、版本查询、表恢复等,能有效应对逻辑损坏和用户错误。闪回技术基于还原(undo)数据管理,启用自动管理后可实现高效恢复。
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle数据库的客户端工具
本文介绍了Oracle数据库的三种客户端工具:SQL*Plus、Oracle Enterprise Manager Database Express(EM)和SQL Developer的使用方法。首先通过命令行工具SQL*Plus登录数据库,创建用户并授权,建立部门与员工表,插入数据并查询;接着讲解了如何通过浏览器访问EM界面监控数据库及表空间状态;最后演示了SQL Developer的下载安装、连接配置以及执行查询的过程,帮助用户快速上手Oracle数据库管理与操作。
|
2月前
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
5月前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
309 11