通过nagios监控远程数据库健康状况,执行perl脚本登陆远端数据库得到oracle的各种数据
一、下载插件http://labs.consol.de/nagios/check_oracle_health
# tar xvf check_oracle_health-1.7.3.tar.gz# cd check_oracle_health-1.7.3
./configure && make && make check && make install,默认安装到/urs/local/nagios/libexec,会发现多了一个执行文件check_oracle_health
二、目标数据库建立用户并赋予权限
CREATE USER nagios IDENTIFIED BY oradbmon;
GRANT CREATE SESSION TO nagios;
GRANT SELECT any dictionary TO nagios;
GRANT SELECT ON V_$SYSSTAT TO nagios;
GRANT SELECT ON V_$INSTANCE TO nagios;
GRANT SELECT ON V_$LOG TO nagios;
GRANT SELECT ON SYS.DBA_DATA_FILES TO nagios;
GRANT SELECT ON SYS.DBA_FREE_SPACE TO nagios;
三、配置nagios启动变量
# vim /etc/init.d/nagios
TNS_ADMIN=/home/nagios/instantclient_10_2/network/admin
export TNS_ADMIN
ORACLE_HOME=/home/nagios/instantclient_10_2
export ORACLE_HOME
LD_LIBRARY_PATH=/home/nagios/instantclient_10_2:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
这一步很重要,编辑nagios的启动文件,这样nagios启动后可以用到这些变量, 如果写到.bash_profile里是没用的,.bash_profile只对登陆的shell有用,对启动程序没用
四、编辑nagios相关配置文件
1、首先测试连通性
check_oracle_health --connect SID --mode tnsping这里的SID必须和TNS文件里的对应,详见我的另一篇文章http://blog.csdn.net/jack161641/article/details/7631022OK - connection established to ***
2、编辑nagios命令文件command,建立监控对象,编辑各种想要监控的命令,最后实现效果如下: