zabbix5.0监控oracle11g(安装在windows)—Orabbix插件(linux)

[部署步骤]

1.JAVA组件部署

yum install java,java*jdk*devel

2.Orabbix部署(当前最新版本是1.2.3)

mkdir /opt/orabbix
cp orabbix-1.2.3.zip /opt/orabbix/
cd /opt/orabbix/
unzip orabbix-1.2.3.zip
chmod -R a+x *
cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props
vi conf/config.props
---- 配置开始 ----                                
#comma separed list of Zabbix servers                                
ZabbixServerList=ZabbixServer1                    # Zabbix服务器信息            
                                
ZabbixServer1.Address=127.0.0.1                                
ZabbixServer1.Port=10051                                
                                
                                
#pidFile                                
OrabbixDaemon.PidFile=./logs/orabbix.pid                                
#frequency of item's refresh                                
OrabbixDaemon.Sleep=300                                
#MaxThreadNumber should be >= than the number of your databases                                
OrabbixDaemon.MaxThreadNumber=100                                
                                
#put here your databases in a comma separated list

DatabaseList=IP                               # Zabbix监控对象

#Configuration of Connection pool                                
#if not specified Orabbis is going to use default values (hardcoded)                                
#Maximum number of active connection inside pool                                
DatabaseList.MaxActive=10                                
#The maximum number of milliseconds that the pool will wait                                
#(when there are no available connections) for a connection to be returned                                
#before throwing an exception, or <= 0 to wait indefinitely.                                
DatabaseList.MaxWait=100                                
DatabaseList.MaxIdle=1        
 

#define here your connection string for each database                                
IP.Url=jdbc:oracle:thin:@192.168.0.94:1521:ORCL                                # Zabbix监控对象信息
IP.User=ZABBIX                                
IP.Password=ZABBIX                                
#Those values are optionals if not specified Orabbix is going to use the general values                                
IP.MaxActive=10                                
IP.MaxWait=100                                
IP.MaxIdle=1                                
IP.QueryListFile=./conf/query.props                                                      # 监控项的SQL

---- 配置开始 ----  

3.Orabbix启动配置

cp /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
/etc/init.d/orabbix start
chkconfig --level 345 orabbix on
chkconfig --add orabbix
 

4.待监控数据库创建用户与权限配置

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_$LOG TO ZABBIX;
GRANT SELECT ON V_$ARCHIVED_LOG TO ZABBIX;
GRANT SELECT ON V_$PARAMETER TO ZABBIX;
GRANT SELECT ON SYS.DBA_AUDIT_SESSION TO ZABBIX;
GRANT SELECT ON DBA_OBJECTS TO ZABBIX;
GRANT SELECT ON V_$LOCKED_OBJECT 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 V_$SESSION 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 DBA_TABLESPACES TO ZABBIX;
GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;
GRANT SELECT ON V_$TEMP_EXTENT_POOL TO ZABBIX;
 

5.添加ojdbc8.jar驱动,删除jdbc6.jar驱动,ojdbc6.jar驱动的认证协议不匹配 

ojdbc8.jar驱动链接:https://pan.baidu.com/s/1hEABz4ww-AoiMgso6H1Xhw 
提取码:QGS1 
 

 #cd回到root目录下操作
cd
#把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
#切到/lib/目录下
 cd /opt/orabbix/lib/

6.重新编译orabbix-1.2.3.jar

#安装git命令

yum install -y git

#切换到cd /usr/local/src/目录下操作

cd /usr/local/src/

git  -c http.sslVerify=false clone https://github.com/snickerjp/orabbix.git

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/

 
 
  1. #拷贝orabbix-1.2.3.jar和lib库下的jar包到指定文件

  2. javac -cp "orabbix-1.2.3/orabbix-1.2.3.jar:orabbix-1.2.3/lib/*" com/smartmarmot/orabbix/Sender.java

  3. #创建build目录

  4. mkdir -p ./build

  5. cp orabbix-1.2.3/orabbix-1.2.3.jar ./build

#切换到./build目录下操作,重新打包orabbix
cd ./build
jar -xvf orabbix-1.2.3.jar com
cp ../com/smartmarmot/orabbix/Sender.class com/smartmarmot/orabbix/Sender.class
jar -uf orabbix-1.2.3.jar com
cp -rf orabbix-1.2.3.jar /opt/orabbix/orabbix-1.2.3.jar

#切换到orabbix目录下
cd /opt/orabbix/
#运行./run.sh
./run.sh
# 加入开机启动
chkconfig --add orabbix
 
# 验证开机启动项
chkconfig orabbix on
 
# 启动orabbix
systemctl start orabbix
# 验证orabbix是否启动
ps aux | grep orabbix
 
# 检查orabbix日志是否报错
tail -f /opt/orabbix/logs/orabbix.log

#验证agent2是否能通客户端(被监控端)
zabbix_get -s 'IP' -p 10050 -k 'agent.ping'
 
zabbix_get -s 'IP' -p 10050 -k 'system.hostname'

7.zabbix导入模板Orabbix_export_full.xml

8.创建被监控数据库主机

[常见问题]

1.数据库无法连接时,考虑是否是端口问题

windows安装telnet客户端,使用telnet IP port

端口无法到达,则使用netstat -a -n 查看1521端口

如果端口在127.0.0.1上,通过本地IP是到达不了1521端口的(telnet 127.0.0.1 1521能到达)

修改oracle 监听文件listener.ora,将host=localhost 改为 host = “主机名”,重新启动监听服务,再次查看1521端口,可以看到0.0.0.0:1521,此时 telnet IP 1521成功。


2.配置完毕后,系统无法显示dbsize 与 dbfilesize值。

解决方案:

query.conf文件修改配置

QueryList=archive,audit,dbblockgets,dbconsistentgets,dbhitratio,dbphysicalread,dbversion,hitratio_body,hitratio_sqlarea,hitratio_table_proc,
lio_current_read,locks,maxprocs,maxsession,miss_latch,pga_aggregate_target, pga,phio_datafile_reads,phio_datafile_writes,phio_redo_writes,pinhitratio_body,pinhitratio_sqlarea,pinhitratio_table-proc,pinhitratio_trigger,
pool_dict_cache,pool_free_mem,pool_lib_cache,pool_misc,pool_sql_area,procnum,session_active,session_inactive,session,session_system,sga_buffer_cache,
sga_fixed,sga_java_pool,sga_large_pool,sga_log_buffer,sga_shared_pool,tbl_space,userconn,waits_controfileio,waits_directpath_read,
waits_file_io,waits_latch,waits_logwrite,waits_multiblock_read,waits_singleblock_read,hitratio_trigger,lio_block_changes,lio_consistent_read,waits_other,waits_sqlnet,users_locked,uptime,dbfilesize,dbsize

query.conf文件追加配置

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’)


3.在2的基础上如果日志出现Error on DBEnquiry on query=dbsize on database=192.168.3.158 Error returned is java.lang.IllegalArgumentException: null value for key 'dbsize',给zabbix用户赋予权限
grant select on dba_space_free to ZABBIX;

相关资源:zabbix5.0监控oracle11g—Orabbix插件(linux)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ONTHEROAD_XF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值