Build precise queries to find exactly what you need
Press ESC to close
Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now
@bangers
Favorites0
Views
Projects0
This plugin is very good in the way that you don't need the Oracle client. I did change the script to suit my needs: split the checks, add perfdata and variable thresholds. $host = $ARGV[0]; $port = $ARGV[1]; $sid = $ARGV[2]; $user = $ARGV[3]; $pass = $ARGV[4]; $check = $ARGV[5]; $thresholdw = $ARGV[6]; $thresholdc = $ARGV[7]; $ENV{LD_LIBRARY_PATH} = "/etc/oracle"; $sqlplus = '/etc/oracle/sqlplus'; sub trim($); my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3); my %checks = ( 'dictionary' => 0, 'library' => 1, 'blockbuffer' => 2, 'latch' => 3, 'disk' => 4, 'rollback' => 5, 'dispatcher' => 6, ); my @param_array = ( [">","Dictionary Cache Hit Ratio",'SELECT (1 - (Sum(getmisses)/(Sum(gets) + Sum(getmisses)))) * 100 FROM v$rowcache;'], [">","Library Cache Hit Ratio",'SELECT (1 -(Sum(reloads)/(Sum(pins) + Sum(reloads)))) * 100 FROM v$librarycache;'], [">","DB Block Buffer Cache Hit Ratio",'SELECT (1 - (phys.value / (db.value + cons.value))) * 100 FROM v$sysstat phys,v$sysstat db,v$sysstat cons WHERE phys.name = 'physical reads' AND db.name = 'db block gets' AND cons.name = 'consistent gets';'], [">","Latch Hit Ratio",'SELECT (1 - (Sum(misses) / Sum(gets))) * 100 FROM v$latch;'], [" "unless (".$results.$param_array[$checks{$check}][0].$thresholdw.") {print"".$param_array[$checks{$check}][1]." on ".$sid." is WARNING ($results !$param_array[$checks{$check}][0] $thresholdw)\n| $perfcounter"; exit ".$ERRORS{"WARNING"}.";}"; print "$param_array[$checks{$check}][1] on $sid is OK ($results $param_array[$checks{$check}][0] $thresholdw)|$perfcounter"; exit $ERRORS{"OK"}; } else {print "Bad check - values are: dictionary,library,blockbuffer,latch,disk,rollback,dispatchern "; exit $ERRORS{"UNKNOWN"};}
Reviewed 11 years ago