Nagios中的check_oracle的简单使用

最近根据公司的需要,开始捣腾Nagios,作为一个开源的监视工具来说,实在是颇为好用的。

那o小白是从官网上下的Nagios3.3.1版本(basic 和 plugin),那自己安装了一下,本来是想把安装和配置的所有过程都写下来的,但是网上已经有了不少这样的教程,而且官方的安装文档也写得十分详尽,那o小白就不再重复一次了,但是作为一名dba,至少要把check_oracle插件的使用给写出来。

那下面的操作是建立在Nagios顺利安装,Nagios用户有Oracle Client,并且环境变量正确的情况下,换句话说就是sqlplus和tnsnames能顺利执行。(注意,环境变量设错可能会出现sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory)

首先,check_oracle -h可以知道这个插件的使用方法:

Usage:
  check_oracle --tns <Oracle Sid or Hostname/IP address>
  check_oracle --db <ORACLE_SID>
  check_oracle --login <ORACLE_SID>
  check_oracle --cache <ORACLE_SID> <USER> <PASS> <CRITICAL> <WARNING>
  check_oracle --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>
  check_oracle --oranames <Hostname>
  check_oracle --help
  check_oracle --version

根据不同的参数提供的功能比较全的,那o小白这里就拿两个比较复杂的做例子:

--cache:查看library和buffer的命中率,根据CRITICAL和WARNING的阈值进行报警。

--tablespace:查看表空间的使用率,根据CRITICAL和WARNING的阈值进行报警。

首先编辑$NAGIOS_HOME/etc/objects/commands.cfg文件,添加两个条目:

# 'check_tablespace_oracle' command definition
define command{
        command_name    check_tablespace_oracle
        command_line    $USER1$/check_oracle --tablespace $ARG1$ $ARG2$ $USER4$ $ARG3$ $ARG4$ $ARG5$
        }

# 'check_rate_oracle' command definition
define command{
        command_name    check_rate_oracle
        command_line    $USER1$/check_oracle --cache $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$
        }
为libexec下的check_oracle命令定义,用以在之后的应用的配置文件中设定。仔细看可以看到这两个配置的方式有所不同,在第一个tablespace的配置中,原来的密码位置用了一个宏来替代,为什么要用这个宏呢?由于在Nagios的网络浏览中可以看到策略的具体形式,如果用密码原文的话会有安全问题,所以可以在$NAGIOS_HOME/etc/resource.cfg文件中定义用户的宏,可以通过这个方法避免敏感信息的泄露,也可以通过设置宏来设定一些系统的路径,$USERS1$就是这个作用。在命令被最后解析的时候,所有的宏都会被替换,最多可以设置32个宏,resource.cfg中的内容如下:

$USER1$=/usr/local/nagios/libexec
# Store some usernames and passwords (hidden from the CGIs)
$USER4$=oracle
 

然后是应用的配置文件,这里o小白的是$NAGIOS_HOME/etc/objects/localhost.cfg,添加一个服务组定义,和两个服务:

服务组:#define service group
define servicegroup{
        servicegroup_name oracle-service
        alias Oracle Service
        }


服务:#define a service to test check_oracle

define service{
       use                             local-service         ; Name of service template to use
       servicegroups                   oracle-service
       host_name                       localhost
       service_description             Oracle_System_Space
       check_command                   check_tablespace_oracle!ora11g!cy!SYSTEM!90!80
       }

define service{
        use                             local-service         ; Name of service template to use
        servicegroups                   oracle-service
        host_name                       localhost
        service_description             Oracle_Buff_Rate
        check_command                   check_rate_oracle!ora11g!cy!oracle!80!90
        }

可以看到,服务定义中根据之前的commands.cfg中的命令定义来具体传递参数,方法是用!,之前由于tablespace已经设置了宏,那这里就不需要在输入密码了,当然直接输入密码也是可行的。

然后就可以重启Nagios服务,service nagios restart

打开网络浏览器,输入nagios的网址后(通常是ip/nagios),就可以看到结果了:


 

本文出自 “oracle小白前进之路” 博客,请务必保留此出处http://oxiaobai.blog.51cto.com/3369332/747037


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值