发布于 2014-12-19 11:59:36 | 5025 次阅读 | 评论: 0 | 来源: PHPERZ
Zabbix 分布式系统监视系统
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
本文为大家讲解的是 zabbix监控Oracle数据库的配置方法,感兴趣的同学参考下。
公司业务使用的是一直oracle数据库,老大要求监控表空间剩余大小并且当剩余过小时能够及时报警。刚想出来的方案是通过写脚本获取表空间的数据,通 脚本中使用expect自动输入密码登陆oracle用户然后再登陆数据库查询数据返回给zabbix_server。但是由于脚本运行时间大概12秒左 右,zabbix获取数据总是超时(只是个人理解,如果你有解决方法希望给我留言,谢谢)。在网上搜索中发现zabbix插件-orabbix,原理是通 过orabbix登陆被监控主机oracle数据库,查询数据。个人认为非常好用,包括自定义监控项。唯一的麻烦就是需要在配置文件中添加每一个数据库服 务器ip、数据库用户、密码。
本文主要讲述zabbix通过orabbix插件来监控Oracle。
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
Orabbix是设计用来为zabbix监控Oracle的数据库的插件,它提供多层次的监控,包括可用性和服务器性能的指标。
它提供了从众多Oracle实例采集的有效机制,进而提供此信息的监控和性能指标。然后,您可以利用的zabbix的报告功能为收集的所有数据,并提供分 析。目前的发行版中包含了一组预先定义的模板,包括从初始部署报警和图形功能。然而,这些可以进行微调,以满足您额需求和数据/监控要求。
1、数据库版本
2、归档日志与生产趋势
3、触发器,表/过程命中率
4、逻辑IO性能
5、物理IO性能
6、PGA
7、SGA
8、共享池
9、Session
10、数据库大小
11、自定义oracle监控项
操作系统:centos6.5
服务端:192.168.0.119
客服端(数据库):192.168.0.110
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/
# rpm -ivh jre-7u67-linux-x64.rpm
Preparing... ########################################### [100%]
1:jre ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
jfxrt.jar...
补充:如果不想修改系统配置,我们可以直接下载java压缩包,加压到某个目录,然后修改/orabbix/run.sh脚本,在java前加上完整java路径,如:/usr/java/j2sdk/bin/java -Duser.language=en........(省略)
下载地址:http://www.smartmarmot.com/product/orabbix/download/
1)在/opt创建目录创建orabbix文件。(原因:orabbix启动文件默认写在/opt/orabbix目录下,也可以修改一下orabbix启动脚本的路径,启动脚本是/orabbix/init.d/orabbix)
#mkdir /opt/orabbix
#mv orabbix-1.2.3.zip /opt/orabbix
#cd /opt/orabbit
#unzip orabbix-1.2.3.zip
2)授予文件可执行的权限
#chmod a+x /opt/orabbix -R
3)创建一个名为config.props文件,有模板可以参考。
#cp /opt/orabbix/conf/config.props.sample config.props
4)修改confi.props配置文件,仅需修改如下内容即可。
# cat /opt/orabbix/conf/config.props |grep -v "#" 这里仅取没有注释的。
ZabbixServerList=ZabbixServer #zabbix名称
ZabbixServer.Address=192.168.0.119 #zabbix服务端的IP地址
ZabbixServer.Port=10051 #zabbix服务端的端口
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=twstcptest.com #这个名称可以随便起,但是必须跟监控的主机名保持一致(可以添加IP地址)。
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
twstcptest.com.Url=jdbc:oracle:thin:@192.168.0.110:1521:rdcms # 这里主要是通过JDBC来连接客户端的。rdcms主要是数据库的实例名称。在客户端可以通过select instance_name from v$instance来得到实例的名称。
twstcptest.com.User=zabbix #数据库用户
twstcptest.com.Password=zabbix #数据库用户密码
twstcptest.com.MaxActive=10
twstcptest.com.MaxWait=100
twstcptest.com.MaxIdle=1
twstcptest.com.QueryListFile=./conf/query.props #监控项定义文件,后面我们添加自定义监控项就是添加到此文件中
5)启动服务和查看进程
#cp -a /opt/orabbix/init.d/orabbix /etc/init.d/orabbix
#/etc/init.d/orabbix start
Starting Orabbix service:
# ps aux |grep orabbix
登录数据库并授予用户相关权限即可。
#su - oracle
#sqlplus /nolog
#conn /as sysdba
create user zabbix identified by "zabbix" default tablespace system 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_$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_$pagstat to zabbix;
grant select on v_$sagstat 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_$sysem_event to zabbix;
1、导入模板。模板在/opt/orabbix/template.
Orabbix_export_full.xml 全部导入(图表 监控项 触发器)
Orabbix_export_graphs.xml 图表
Orabbix_export_items.xml 监控项
Orabbix_export_triggers.xml 触发器
2、添加主机(名字必须跟config.props里面定义的名称的配置保持一致)
3、关联模板
4、结果演示
Zabbix通过Orabbix监控Oracle实验就搭建完成了,有问题的可以留言。
自定义oracle监控项
所有的监控项都在/orabbix/conf/query.props中,我添加三个监控项为例,有两处需要添加:
1、在QueryList中添加键值,就是可以直接在zabbix web填写的键值。
2、数据库中可以直接执行的查询命令,注意键值后面要添加".Query",不需要“;”结尾。
如:robots_website_all.Query=select count(*) from robots_website
3、OK!服务器上配置完成,登陆zabbix web界面对主机新建监控项即可。