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网络监控——Nagios 微信报警

nagios 添加自定义监控项目监控mysql数据库死锁

Nagios监控数据库DB2--check_db2_health

zenoss, nagios, zabbix, cacti这些网管系统有哪些特点?

运维监控四款云服务监控工具介绍:Nagios gangliazabbixonealert