使用zabbix监控oracle数据库的方法详解
一、概述
zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库。
二、环境介绍
以下是我安装的环境,实际部署时并不需要跟我的环境一样。
1.监控机RedhatLinux6.5+Zabbixserver3.4.10+Python2.6.6(操作系统自带)+OracleClient11.2(x86_64)
2.被监控机Oracle11.2.0.4
三、选择监控方式
zabbix监控的方式主要有以下三种类型
Zabbixagent
在被监控机上面安装zabbixagent,zabbixagent将被监控机采集到的数据发送给zabbixserver。这种方式最常用,一般用来采集服务器的cpu、内存等信息。
SNMP
一些网络设备如交换机,上面无法安装zabbixagent,所以只能通过snmp的方式收集监控数据如端口状态,流量等。
Externalcheck
在zabbixserver上面运行查询脚本,直接查询被监控机上的数据。此种方式在被监控机上面不需要做任何部署,所有查询全部从zabbixserver上面发出,所以对zabbixserver的性能要求较高,官方不推荐大量使用该方式。对于少量的oracle数据库服务器,可以采用该方式。
本文介绍的就是使用externalcheck方式去监控oracle数据库。
四、规划监控项
监控数据库的目的是为了保障数据库稳定运行,一旦出现故障,dba能够及时发现并介入处理,监控项分为以下两类
1.数据库空间不足或数据库发生故障,DBA需要立即处理。
监控项包括表空间、用户状态、实例状态、锁、大量等待事件、闪回区使用率等。此类监控项需要给其设置触发器,一旦出现异常,及时告警。
2.数据库运行状态的一些统计信息,为DBA定位数据库性能问题发生的时间和类别提供参考。
监控项包括常见的等待事件发生的次数,命中率、硬解析比例等。
下面表格中列出附件中模板的监控项
五、安装
上面闲话扯完,进入正式安装环节,我假定你已经安装了zabbixserver,因此这里略过zabbixserver的安装步骤。
以下所有操作均在zabbix服务器上面执行
安装oracle客户端
从官网下载如下三个rpm包
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
使用root安装oracle客户端
rpm-ivhoracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm-ivhoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm-ivhoracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
配置环境变量
vi+/etc/profile
---------------------------------------------
exportORACLE_HOME=/usr/lib/oracle/11.2/client64
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib
exportPATH=$PATH:$ORACLE_HOME/bin
执行下面的命令让配置生效
source/etc/profile
添加动态库配置文件
vi+/etc/ld.so.conf.d/oracle.conf
---------------------------------------
/usr/lib/oracle/11.2/client64/lib
执行命令ldconfig
连接oracle进行测试
SQL>sqlplusscott/tiger@192.168.56.101:1521/orcltest
SQL*Plus:Release11.2.0.4.0ProductiononWedApr2418:24:282019
Copyright(c)1982,2013,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase11gEnterpriseEditionRelease11.2.0.4.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
SQL>
出现上面的提示证明oracleclient安装成功
安装python相关包
安装cx_Oracle(python连接oracle的包)
wgethttp://downloads.sourceforge.net/project/cx-oracle/5.1.2/cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
rpm-ivhcx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
安装argparse
wgethttps://bootstrap.pypa.io/2.6/get-pip.py--no-check-certificate
pythonget-pip.py
pipinstallargparse
上传python脚本
将附件中的pyora.py脚本放入/usr/lib/zabbix/externalscripts/目录下
赋权限,让zabbix用户能够执行该脚本
chmod755/usr/lib/zabbix/externalscripts/pyora.py
[注意:先在被监控机的oracle数据库中创建监控用户,用户名和密码可以自己随意指定
createuserzabbixidentifiedbyzabbix;
grantconnect,selectanydictionarytozabbix;]
测试脚本
pythonpyora.py--usernamezabbix--passwordzabbix--address10.30.10.32--port1521--databaseofficeshow_tablespaces
上面测试脚本的参数说明
username:用户名
password:密码
address:被监控机ip地址
port:端口号
database:oracleservicename
有返回结果表示脚本能正常运行
上传template文件
将附件中的Pyora_ExternalCheck_11G.xml模板导入到zabbixserver中
在zabbix页面中,依次点击Configuration–Templates–Import–选择文件–Import,即完成了导入
查看监控数据
Monitoring–LatestData–Host(选择对应的主机),则可以看到监控的数据了
参考:https://github.com/bicofino/Pyora
附件:
pyora.py,Pyora_ExternalCheck_11G.xml地址放在github上
https://github.com/YangBaohust/zabbix_templates
到此这篇关于使用zabbix监控oracle数据库的方法详解的文章就介绍到这了,更多相关zabbix监控oracle数据库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。