nagios配合oracle监控
Posted 客服老周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nagios配合oracle监控相关的知识,希望对你有一定的参考价值。
背景:nagios要使用 nrpe 来监控 oracle 的数值,那么就需要自己制作插件,一个稍微恶心点的事情就是需要配置好环境变量,就是在远程的机器上,nagios的用户下需要拥有oracle的环境变量,并且用户需要拥有和oracle用户的权限,不然你很难获取到oracle的数值的了。话不多说了,直接上脚本了
nagios 用户的权限:
nagios使用的用户是我们之前创建的nagios,而登陆oracle需要oracle用户,所以我们需要先将nagios用户加到oracle的用户组中,并且复制oracle用户的环境变量到nagios用户,这些操作需要在root用户进行:
#usermod -G oinstall nagios
#cp /home/oracle/.bash_profile /home/nagios/.bash_profile
#chown nagios.nagios /home/nagios/.bash_profile
下面的这个脚本是个例子,就放在被探测机器上的目录下,具体nrpe部署什么的,这个简单百度就得,都是轻量级的,直接 nrpe整个目录拷过去就可以用了的。告警配置那个就简单了。注:自定义的脚本可以放在任何目录,前提是 nagios用户对该脚本有运行权限。为了方便在 nagios中定义监控命令,所以我把脚本放到了 /usr/local/nagios/libexec/目录中,触发告警这个就简单了,直接就是exit 0 1 2 就可以了。
vim check_elasped_sessions
#!/bin/bash
##查询数据库中耗时超标的语句
. /home/nagios/.bash_profile
VALUE=`/u01/app/oracle/product/11.2.0/dbhome_1/bin/sqlplus -silent hlwsb_sjfx/hlwsb_sjfx <<EOF
set pagesize 0 feedback off verify off heading off echo off
select count(1) from gv\\\\\\$session t,gv\\\\\\$sql a where t.STATUS=ACTIVE and t.SQL_ID=a.SQL_ID and t.SCHEMANAME<>SYS and t.last_call_et > 10000;
exit;
EOF`
#echo $VALUE
if [ $VALUE -ge 10 ];then
msg="Critical - Elasped Sessions"
status=2
#elif [ $VALUE -ge 0 ] && [ $VALUE -lt 2 ];then
# msg="Warning Inactive Sessions"
# status=1
else
msg="Ok - Elasped Sessions"
status=0
fi
echo -e "$msg, $VALUE"
exit $status
以上是关于nagios配合oracle监控的主要内容,如果未能解决你的问题,请参考以下文章
nagios监控插件 nagios_oracle_health+check_linux_stats.pl
Nagios监控数据库DB2--check_db2_health