您的位置:首页 > 数据库 > Oracle

Nagios中的check_oracle的简单使用

2011-12-21 00:15 344 查看
最近根据公司的需要,开始捣腾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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: