======= 系列目录 =======
Zabbix监控系统系列之一 : Server部署
Zabbix监控系统系列之二 : 初始化配置
Zabbix监控系统系列之三 :版本升级
Zabbix监控系统系列之四:Agent监控Windows客户端
Zabbix监控系统系列之五:SNMP监控Windows客户端
Zabbix监控系统系列之六:EMAIL警告配置
Zabbix监控系统系列之七:VMware虚拟化监控
Zabbix监控系统系列之八:日志监控
Zabbix监控系统系列之九:监控网络设备指定接口流量
Zabbix监控系统系列之十:自动发现配置
Zabbix监控系统系列之十一:拓扑图绘制
Zabbix监控系统系列之十二:SNMP Traps主动告警
Zabbix监控系统系列之十三:SNMP Mibs库加载
Zabbix监控系统系列之十四:Oracle监控
Zabbix监控系统系列之十五:自动发现Oracle表空间并监控
======================

上一篇文章,我们已经实现Zabbix通过Orabbix 1.2.3对Oracle进行必要的监控。许多情况之下,我们还需要对表空间运用有一个宏观的了解并在必要时对其进行扩展。

网上许多都是基于Linux环境的自动发现Oracle表空间并监控,我客户有许多是基于Windows环境,固本文以Windows环境的Oracle表空间自动发现为基础。
※ 本文也是一种Zabbix对业务系统监控的方法思路,大家可以类推到其他业务系统。

[实施步骤]
1.设置表空间信息定时输出
tablespace.sql

set feedback off
set linesize 140 pagesize 10000
col "Status"   for a10
col "Name"     for a25
col "Type"     for a10
col "Extent"   for a15
col "Size (M)" for a15
col "Used (M)" for a15
col "Used %"   for a20
spool tablespace.log
SELECT d.status "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent",
TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99999990') "Size (M)",
TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0), 0)/1024/1024,'999999999') "Used (M)",
TO_CHAR(NVL((a.bytes -  NVL(f.bytes, 0)) / a.bytes * 100, 0), '990.00') "Used %"
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')
UNION ALL
SELECT d.status         "Status", d.tablespace_name "Name", d.contents "Type", d.extent_management "Extent",
TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99999999') "Size (M)",
TO_CHAR(NVL(t.bytes,0)/1024/1024,'999999999') "Used (M)",
TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "Used %" FROM sys.dba_tablespaces d,
(select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) a, (select
tablespace_name, sum(bytes_cached) bytes from v$temp_extent_pool group by tablespace_name) t WHERE
d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND
d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY'
ORDER BY 7;
spool off
exit

tablespace.bat

sqlplus / as sysdba @tablespace.sql

※ 此处各位需要注意安全性问题,我提供思路而已。

Windows计划任务(1分钟执行一次,5分钟执行一次,10分钟执行一次,大家自己考虑)

输出结果参考:

2.设置自动发现脚本
AutodiscoverTBS.bat

@echo off
Setlocal ENABLEDELAYEDEXPANSIONtype c:\Scripts\tablespace.log | awk "{print$2}" | awk "NR>3{print}" > tmp.txtSET /a INDEX=3
for /F %%i in ('type c:\Scripts\tablespace.log ^| find /v /c ""') do ( set COUNT=%%i)
echo {"data":[
for /F "usebackq eol=# tokens=1,2 delims==" %%T in (tmp.txt) do (SET /a INDEX+=1if !INDEX! NEQ %COUNT% (echo {"{#TABLENAME}":"%%T"},) else (echo {"{#TABLENAME}":"%%T"}]}) )
del tmp.txt

3.设置截取表空间指定参数值脚本
脚本中,我用到awk命令。此命令在Linux系统环境原生命令,但Windows并没有类似的命令。可以在sourceforge下载awk for windows版本,下载地址参考http://gnuwin32.sourceforge.net/packages/gawk.htm

CheckORATBS.bat

@echo offif /I %2 EQU max (goto max)if /I %2 EQU used (goto used)if /I %2 EQU autopercent (goto autopercent):max
type c:\scripts\tablespace.log | find "%1" | awk "{print $5}"
goto Exit:used
type c:\scripts\tablespace.log | find "%1" | awk "{print $6}"
goto Exit:autopercent
type c:\scripts\tablespace.log | find "%1" | awk "{print $7}"
goto Exit:exit
exit

4.Zabbix Agent用户自定义参数配置
zabbix_agentd.win.conf配置文件追加参数:
UserParameter=ora.tab.discovery,C:\scripts\AutodiscoverTBS.bat
UserParameter=tablespace[*],C:\scripts\CheckORATBS.bat $1 $2

5.Zabbix Agent服务重启

6.Zabbix Server服务台验证用户自定义参数
zabbix_get -s 192.168.0.94 -k “ora.tab.discovery”
zabbix_get -s 192.168.0.94 -k “tablespace[USERS autopercent]”
zabbix_get -s 192.168.0.94 -k “tablespace[USERS max]”
zabbix_get -s 192.168.0.94 -k “tablespace[USERS used]”

7.设置监控模板
Name 名称 TablespaceDiscovery
Type 类型 Zabbix agent
Key 键值 ora.tab.discovery
Update interval 更新迭代 3600s


监控项原型配置

※ 更新迭代时间,请根据大家的环境要求来配置的。

图形原型配置

整个过程非常简单,不过思路非常重要!此方法给大家提供一个业务系统自定义监控项的方法。

Zabbix监控系统系列之十五:自动发现Oracle表空间并监控相关推荐

  1. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

  2. oracle表空间 unifor,Oracle 表空间的监控

    现在所有业务系统上面都部署了各种类型针对各方面的监控,那么咱们Oracle也不例外,也需要做关于oracle方面的监控,比如实例的存活状况,监听器的存活状况,系统的运行情况(包括,磁盘使用率,进程数, ...

  3. Zabbix监控系统系列之五:SNMP监控Windows客户端

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  4. Zabbix监控系统系列之八:日志监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  5. Zabbix监控系统系列之二 : 初始化配置

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  6. Zabbix监控系统系列之十七:MYSQL数据库监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  7. Zabbix 3.2.6 通过Discovery批量监控Oracle表空间

    一.背景 接到任务,要求对所有数据库的所有表空间进行监控,愿意是遇到表空间不足导致业务数据库的不可用,我们知道通过Zabbix监控Oracle的插件有一些,比如Orabbix或者Pyora,前者通过J ...

  8. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. Reflex WMS入门系列二十五:将叉车纳入系统进行管理

    Reflex WMS入门系列二十五:将叉车纳入系统进行管理 据笔者所知,SAP WM 模块里是不对仓库里常用的叉车等仓库管理工具进行管理的.笔者发现,Reflex WMS系统则会在很多仓库部门日常操作 ...

最新文章

  1. 路由器默认密码(转自ITAA)
  2. 在Delphi程序中操作注册表
  3. cplus cjson 封装
  4. 两个for还是一个for?
  5. python希尔排序的优缺点_Pythonの希尔排序
  6. 【并查集】团伙(luogu 1892)
  7. Linux下tomcat的配置
  8. Alibaba Druid未授权访问漏洞记录(敏感目录,端口:不确定)
  9. 查询表中id相同的记录mysql_mysql – 从两个表中的ID相同的两个表中选择数据
  10. SpringBoot 分布式session
  11. WEB——点击下载excel表
  12. Mqtt 客户端 java API 教程
  13. 20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)...
  14. 深入理解计算机系统寄存器寻址讲解
  15. 26个思维转换,实现跨越式成长
  16. 手把手教你开发enc424j600+Lwip以太网-送全部源码
  17. 基于SSM + MySQL的服饰服装购物平台系统的设计与实现源码+论文+包安装配置+讲解视频
  18. react中ref使用方法解析
  19. 使用python输出星号阵列
  20. win10创建Ubuntu16.04子系统,安装常用软件以及图形界面(包括win10远程桌面连接Ubuntu)

热门文章

  1. 中断和执行子服务器,windows - 命名管道服务器,如何中断或超时等待客户端连接和传入数据 - 堆栈内存溢出...
  2. Full Binary Tree 2014 SD第五届ACM大学生程序设计竞赛 F
  3. 【高效沟通】【经验总结】程序员高效沟通艺术基础
  4. 蓝桥杯嵌入式比赛知识点合集(现在什么都有好吧)
  5. 机器学习(Dog vs Cat)猫狗大战
  6. Blender图解教程:骨骼动画基本工作流程
  7. html如何在两个button之间天加空格
  8. primeton eos5.3
  9. 彼得·德鲁克的一句话
  10. 李开复给中国大学生的第二封信