zabbix 用 LLD 完全自动化监控 Oracle
文章转载自:http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=2651296856&idx=1&sn=2bdf780719d3bd913f80ebab18ada237&scene=23&srcid=0719KBxswRECyHXV3DbvSgSS#rd
在这里本人只是作为好的文章储存,不做他用
上次写完《 Zabbix用好LLD,立马感觉高大上许多》后,近期又遇到一个用 Zabbix 监控 Oracle 的需求,有一些心得体会,记录一下以备后用。
这次还是用到了 Zabbix 的 LLD 功能,这个功能可谓是:无 LLD 不 Zabbix ,强大到让人想哭。
一、Orabbix 和 Zabora 的问题
一开始用 Orabbix 监控 Oracle,这个插件的工作模式是配置好实例信息,然后起一个JAVA程序,这个进程会根据定义好的查询语句获取到数据,用Trapper模式发送给 Zabbix 收集并展现。
但是用 Orabbix 监控 Oracle 存在几个问题:
1、JAVA程序需要 JRE 环境,但实际情况是:并不是所有机器都安装了JRE。
2、每个实例都需要在 Zabbix 里配置一个HOST,这是一个非人性化的设计。
3、Orabbix 不在 Zabbix 框架内,不受 Zabbix 统一管理,要想升级、配置的话都麻烦要死。
4、不能自动发现实例的所有表空间,我们非常需要这个功能。
5、最可怕的是网上的好多中文文档全有问题,走了很多弯路。
用了一段 Orabbix 时间后,果断放弃,目光转向了 Zabora 插件,这是用 Shell 写的,Zabora 设计思路还可以,不过写的有点简陋,也不能满足我的需求。有兴趣的朋友可以在全球最大的同性交友网站github上搜索:zabora
所以,我打算重新造这个轮子。
二、监控 Oracle 的需求
1、可以自动发现所有数据库实例并监控
2、可以自动发现所有数据库实例里的表空间,监控大小及使用率
3、可以灵活扩展监控选项
4、可以方便升级(如果在zabbix框架里,我已经实现里自动升级功能)
三、设计及功能详解
首先来看一个 Oracle 数据库的架构,和我们常用的MySQL有一点不一样。
在一个数据库里可以有多个实例,每个实例下面包括多个用户和多个表空间。
我们最终要监控的 item 至少应该知道以下几个信息:
实例名字、数据库用户名、数据库密码、管理数据库的操作系统用户及环境文件,如果要监控表空间,还需要表空间的名字。
听起来还是比较晕的,下面我来梳理一下这些信息。
四、几个主要程序的作用:
1) key.conf 文件中定义了4个key
第一个key用来发现有几个实例
第二个key用来获取实例里需要监控的值
第三个key用来发现所有实例里所有的表空间
第四个key用来获取表空间的大小和使用率
2) oracle.conf 定义了实例的基本信息
其实也可以没有这个文件,但是需要满足一些条件,完全做到关联模板就自动发现并监控。
但是需要两个条件,有兴趣的朋友可以试试:
用程序发现所有实例及运行实例的用户,这个简单
ps -ef|grep smon|grep -v grep|awk '{print $8}'|awk -Fora_smon_ '{print $2}'
为 Zabbix 在所有数据库里创建统一的监控账号和密码,然后在获取数据里的shell定义或者从Zabbix web传参给获取数据的shell也行。
3、discover_oracle_db.sh
发现所有实例并输出JSON格式数据给Zabbix
4、discover_oracle_tb.sh
发现所有实例及表空间并输出JSON格式数据给Zabbix
5、sql目录下的*.sql
sql目录下的所有sql文件都是用到的执行语句,所以在shell里你看不到具体的执行语句,都是调用的这里的,在shell里的调用语法大概都是这样:
sqlplus -s ${DB_USER}/${DB_PASS} @/etc/zabbix/zabbix_agentd.d/script/sql/xxxxx.sql
如果你需要扩展监控,还需要添加一个对应的sql语句
五、在Zabbix Web里配置监控项
1、添加两个自动发现,一个数据库实例自动发现,一个数据库表空间自动发现。
2、添加需要监控的item及trigger等
六、Latest data里的效果
三个Applications分组
所有实例里的监控项
所有实例里所有表空间的使用率
理论上这套架构设计可以满足多数据库实例(单实例,集群实例)、多表空间的自动发现及监控需求。
代码我需要整理一下发布,因我不太懂Oracle,谁要是很懂,可以帮我写一些oracle监控语句,我丰富一下监控项,加我微信yunweibang008
在此感谢搜狐畅游的杨建荣同学,他也是业内知名 Oracle 专家,帮我贡献了很多Oracle sql语句,下面是他的个人订阅号,有很多干货,值得关注。
zabbix 用 LLD 完全自动化监控 Oracle的更多相关文章
- Zabbix 5.0:通过LLD方式自动化监控阿里云RDS
Blog:博客园 个人 之前做了RDS监控,由于 RDS 实例梳理增多,手动添加的方式已经不够效率,故改为LLD(Low-level discovery)方式做监控. 什么是LLD LLD(Low-l ...
- 自动化监控利器-Zabbix
转自: http://www.xuliangwei.com/xubusi/117.html 1.1为何需要监控系统 在一个IT环境中会存在各种各样的设备,例如:硬件设备.软件设备.其系统的构成也是 ...
- zabbix实现百台服务器的自动化监控--技术流ken
前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...
- 自动化监控软件之zabbix安装
自动化监控系统 cacti : 基于snmp(简单的网络管理协议)协议的监控软件,强大的绘图软件 缺点: 自带的监控模板比较少,不能默认 自带监控报警功能(只能自己去官网下载模板) Nagios: 插 ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 第5章Zabbix自动化监控
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...
- zabbix利用orabbix监控oracle
Orabbix 是一个用来监控 Oracle 数据库实例的 Zabbix 插件.(插件安装在zabbix-server端) 下载地址:http://www.smartmarmot.com/produc ...
- zabbix监控Oracle
可监控项 使用zabbix监控oracle数据库需要借助第三方的插件,目前使用较多的是orabbix.目前维护到了1.2.3版本.关于oracle自带的监控项目有以下几个: DB Version (i ...
- Zabbix通过Orabbix监控Oracle数据库
一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够 ...
随机推荐
- NOIP2015跳石头[二分答案]
题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选 择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石( ...
- using关键字的用法
1.using 关键字可以用来导命名空间,与java中的import类似. 2.using关键字可以用来释放资源,并且被释放的资源代码是非托管代码. 既然可以释放非托管代码,那么什么是非托管代码? 我 ...
- Java深入 - Java 内存分配和回收机制
Java的GC机制是自动进行的,和c语言有些区别需要程序员自己保证内存的使用和回收. Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC ...
- Oracle多表连接,提高效率,性能优化 (转)
执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了. ...
- Mac下搭建php开发环境教程
方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...
- 使用Proguard做Java代码混淆
下载Proguard, 我下的是最新的Proguad5.2 在windows下运行bin/proguardgui.bat, 可以看见图形界面, 载入配置, 然后process. 配置文件例子 -inj ...
- Apache配置中的ProxyPass 和 ProxyPassReverse
apache中的mod_proxy模块用于url的转发,即具有代理的功能.应用此功能,可以很方便的实现同tomcat等应用服务器的整合,甚者可以很方便的实现web集群的功能. 例如使用apache作为 ...
- PAT 1017. A除以B (20)
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...
- Spring的反射机制和依赖注入
我们知道,Spring中大量使用了反射机制,那么究竟是什么地方使用了呢? spring的一大核心概念是注入, 但是,这存在的一个前提就是类是由spring管理起来的. 反射是根据className生成 ...
- MathType 公式后的空格问题
注册表编辑器修改 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Design Science\DSMT6\WordC ...