#!/usr/bin/php 0 ) { echo " | "; foreach ( $perfdata as $name => $perf ) { $str = $name."=".$perf['value']; if ( isset ( $perf['uom'] ) ) $str .= $perf['uom']; $str .= ";"; if ( isset ( $perf['warn'] ) ) $str .= $perf['warn']; $str .= ";"; if ( isset ( $perf['crit'] ) ) $str .= $perf['crit']; $str .= ";"; if ( isset ( $perf['min'] ) ) $str .= $perf['min']; $str .= ";"; if ( isset ( $perf['max'] ) ) $str .= $perf['max']; $str = preg_replace ( '@(;+)$@', ';', $str ); echo $str." "; } } exit($return); } snmp_set_quick_print ( true ); snmp_set_valueretrieval(SNMP_VALUE_PLAIN); $command = $_SERVER['argv'][3]; $ip = $_SERVER['argv'][1]; $community = $_SERVER['argv'][2]; $stats = array ( 0 => ".1.3.6.1.4.1.6790.1.1.20.2.0", 1 => ".1.3.6.1.4.1.6790.1.1.30.20.10.2.0", 2 => ".1.3.6.1.4.1.6790.1.1.30.21.10.2.0", 3 => ".1.3.6.1.4.1.6790.1.1.30.22.10.2.0", 4 => ".1.3.6.1.4.1.6790.1.1.30.23.10.2.0" ); switch ( $command ) { case 'stats': if ( $_SERVER['argc'] < 5 ) nagios_return ( 3, "Wrong parameter count!" ); $num = (int) $_SERVER['argv'][4]; $value = snmpget($ip, $community, $stats[$num]); if ( $value === FALSE ) nagios_return ( 3, "Could not read value!" ); $ret = 0; if ( $_SERVER['argc'] >= 7 ) { $warn = (int) $_SERVER['argv'][5]; $crit = (int) $_SERVER['argv'][6]; if ( $value > $crit ) { $ret = 2; } else if ( $value > $warn ) { $ret = 1; } else { $ret = 0; } } if ( $num == 0 ) { nagios_return ( $ret,$value, array ( 'value' => array ( 'value' => $value ) ) ); } else { nagios_return ( $ret, "Average ".$value." Connections", array ( 'value' => array ( 'value' => $value, 'uom' => 'Connections' ) ) ); } break; case 'alarms': if ( $_SERVER['argc'] != 4 ) nagios_return ( 3, "Wrong parameter count!" ); $type = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.1' ); $cause = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.2' ); $servity = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.4' ); $alarm_text = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.5' ); $repair_text = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.6' ); $date_time = @snmpget($ip, $community, '.1.3.6.1.4.1.6790.1.1.100.1.1.11' ); if ( $type === FALSE || $servity <= 1 ) nagios_return ( 0, "No error reported" ); if ( $servity == 6 ) { $ret = 1; } else { $ret = 2; } nagios_return ( $ret, $date_time.": ".$alarm_text." -> ".$repair_text." (".$type." ".$cause." ".$servity.")" , array() ); break; case 'help': case '--help': case '-h': default: echo $_SERVER['argv'][0]." ip community command -> alarms Checkt den aktuellen Alarmstatus. -> stats num [warn] [crit] Gibt verschiedene Stats des Finjans aus. Liefert perfdata. warn und crit geben die Schwelle für die Load zur Escalation an. num entscheidet welcher Status ausgegeben wird: 0 - Current emergency status 1 - Average rate of requests 2 - Average rate of HTTP requests scanned per second 3 - Average rate of HTTPS requests scanned per second 4 - Average rate of FTP requests scanned per second "; exit (3); break; }