注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

nagios插件check_oracle_health的安装  

2010-08-16 14:13:29|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      check_oracle_health是nagios的一个oracle数据库状态检测插件,使用perl编写,因此需要事先安装perl连接oracle数据的组件。

check_oracle_health

http://labs.consol.de/nagios/check_oracle_health/

 

要使用check_oracle_health,先要设置设置perl访问oracle

http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.609.tar.gz DBI并编译安装
#wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.609.tar.gz
#tar -zxvf DBI-1.609.tar.gz
#cd DBI-1.609
#perl Makefile.PL
#make all 
#make install

http://cpan.wenzk.com/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.24a.tar.gz DBD-Oracle
#wget  http://cpan.wenzk.com/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.24a.tar.gz
#tar -zxvf DBD-Oracle-1.24a.tar.gz
#cd DBD-Oracle-1.24
#perl Makefile.PL
#make all 

#make install

 

有资料说,以上两个工具在make all时报错
cc1: invalid option `tune=pentium4'

解决方法是

# vi Makefile 去掉

-mtune=pentium4

就可以make过了

但我安装的时候没有碰到这个问题,只是DBD-Oracle安装前要设置ORACLE_HOME的环境变量,如:F:\oracle\product\10.2.0\db_2

 

下载check_oracle_health-1.6.4.tar.gz,解压,

./configure --prefix=/usr/local/nagios --with-nagios-user=nagiosadmin --with-nagios-group=nagios --with-mymodules-dir=/usr/local/nagios/libexec --with-mymodules-dyn-dir=/usr/local/nagios/libexec

 

还可以有以下参数设置,现在没有明确设置,则会采用默认设置:

--with-perl: /usr/bin/perl

--with-statefiles-dir: /var/tmp/check_oracle_health

--with-nagios-user: nagiosadmin

--with-nagios-group: nagios

--with-mymodules-dir: /usr/local/nagios/libexec

--with-mymodules-dyn-dir: /usr/local/nagios/libexec

 

make all

make install

 

make的时候,出现如下错误

cc1: error: unrecognized command line option "-fstack-protector"

原因如下:

This error is due to older version of GCC in your system.

The stack protector was introduced as of GCC 4. Look the version in your system by running gcc -v.

Update your system if you are using cygwin run setup.exe and from the package list check GCC4

try reinstalling the PERL module.

如上,安装gcc4以后,重新configure make,安装成功。

 

cd /usr/local/nagios/libexec/
./check_oracle_health -h
查看一下使用语法,如果出现了语法说明,则表示安装成功。
check_oracle_health的用法可以去 http://labs.consol.de/lang/en/nagios/check_oracle_health/ 了解。
将check_oracle_health配置到nagios中就不说了,之前的日志有其他服务配置的参考示例,主要是在commans.cfg中配置命令,而后在services.cfg中使用。
      配置好以后出现问题:
CRITICAL - cannot connect to realbow_test. install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: 无法打开共享对象文件: 没有那个文件或目录 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
      解决方法,编辑文件/etc/ld.so.conf,里面就一行内容
include ld.so.conf.d/*.conf
      在最后增加一行
/usr/local/oracle
      使用ldconfig命令让其生效,如果还不行,就将DBD-ORACLE重新编译安装。这时“无法打开共享对象文件”的错误提示消失了,却提示“ora-12154”错误,我在nagios外部直接使用check_oracle_health插件测试确是连接成功的。
      这里牵涉到在perl中设置环境变量的问题,check_oracle_health插件是使用perl编写的,进入check_oracle_health所在的目录:
cd /usr/local/nagios/libexec
      编辑check_oracle_health源码:
vi check_oracle_health
      在第一行#! /usr/bin/perl –w下,另起两行,主要设置变量NLS_LANG和TNS_ADMIN:
$ENV{'NLS_LANG'} = "AMERICAN_AMERICA.ZHS16GBK";
$ENV{'TNS_ADMIN'} = "/usr/local/oracle/NETWORK/ADMIN";
      保存退出后,nagios中check_oracle_health的插件执行结果就正常了。

perl设置环境变量参考以下内容及高手指点:
http://hi.chinaunix.net/?uid-9976001-action-viewspace-itemid-32398
在perl中设置环境变量,并对子进程可见
在perl中,环境变量可通过特殊散列%ENV取得,其中每一个散列键都代表一个环境变量。在程序运行开始时,%ENV会保留从父进程(通常为shell) 继承而来的设定值。只要变更这个散列,就会连带改变到环境变量:它会被新的子进程所继承,也可以由perl本身来使用。举例来说,假设要运行系统里的make工具程序(通常它会运行其他程序),并且想以自己的私有目录作为所寻找命令(包括make)的第一个目录。另外,再假设不想使用IFS环境变量,以免make或以后的命令做不正常的动作。可以这么写:
$ENV{'PATH'} = "/home/my/workdir/bin:$ENV{'PATH'}";
delete $ENV{'IFS'};
my $make_result = system "make";
  评论这张
 
阅读(4053)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017