Sophos UTM 9.x Bandbreite auslesen

Hallo Miteinander,

ich habe jetzt nach langer Zeit von Euren Skripten und Eurer Hilfe profitiert. Daher auch mal was von mir zum Auslesen einer Sophos UTM, der aktuelle Up- und Downstream wird dabei alle 60s (mittels Ereignis, separat erstellen!) ausgelesen und das Delta der gesamten übermittelten Daten innerhalb der Zeit ermittelt. Werte in MBit/s.
Die IP wird unter Data eingetragen - dazu noch fünf Variablen anlegen (1x Up-Pakete gesamt, 1x Down-Pakete gesamt und 1x Up-Speed und 1x Down-Speed, einmal Bool für Linkstatus), der Rest kann gleich bleiben.

Skript:

<?
// *****************************************************************************
 $binary = "C:\IP-Symcon\modules\SNMP-Get\SnmpGet.exe";
 $data = " -r:192.168.1.1 -t:10 -c:public -o:.";
// *****************************************************************************
//SNMP Query Funktion
function snmp($oid)
{
    global $binary, $data;
    //$oid = ltrim($oid,".");
    $value = IPS_Execute($binary, "$data$oid", false, true);
    $value = trim($value);
    return $value;
	}

$in_alt=GetValueFloat(17435 /*[Komponenten\Sophos UTM\SNMP-Get Sophos UTM\in]*/);
$out_alt=GetValueFloat(11891 /*[Komponenten\Sophos UTM\SNMP-Get Sophos UTM\out]*/);
// *****************************************************************************
//Augehend
$string = snmp ("1.3.6.1.2.1.2.2.1.16.3")."
";
$out = explode("Value=", $string);


//Eingehend
$string2 = snmp ("1.3.6.1.2.1.2.2.1.10.3")."
";
$in = explode("Value=", $string2);

$out =Floatval($out[1]);
$in =Floatval($in[1]);
$data_in=$in-$in_alt;
$data_out=$out-$out_alt;
If ($data_in<0)
{$data_in=0;}
If ($data_out<0)
{$data_out=0;}
SetValueFloat(17435 /*[Komponenten\Sophos UTM\SNMP-Get Sophos UTM\in]*/, $in);
SetValueFloat(11891 /*[Komponenten\Sophos UTM\SNMP-Get Sophos UTM\out]*/, $out);
$speed_in=(($data_in)*8)/60000000; //in Mbit/s
SetValueFLoat(14008 /*[Komponenten\Sophos UTM\Speed-IN]*/, (round($speed_in, 2)));
$speed_out=(($data_out)*8)/60000000; //in Mbit/s
SetValueFLoat(48171 /*[Komponenten\Sophos UTM\Speed-OUT]*/, (round($speed_out, 2)));

//******************************************************************************
// Linkstatus
$integer = snmp ("1.3.6.1.2.1.2.2.1.8.3")."
";
$stat_value = explode("Value=", $integer);
$stat_value =Floatval($stat_value[1]);

If ($stat_value == 1) {
	$status="up";
	SetValueBoolean(35430 /*[Komponenten\Sophos UTM\LinkStatus UTM]*/, true);}
	elseif ($stat_value == 2) {
	$status="down";
	SetValueBoolean(35430 /*[Komponenten\Sophos UTM\LinkStatus UTM]*/, false);}
	elseif ($stat_value == 3) {
	$status="testing";}
print $status;
?>                                                                                                             
                                                                                                             
 

Dazu muss dann noch SNMP-Get in einen Ordner (Ich habe es bei IPS untergebracht) kopiert werden und bei der UTM das SNMP eingeschaltet werden.
SNMP bei der UTM einschalten wie im Bild (Anhang), SNMP-Get hier:
SnmpGet (Cmd-Line Tool) – Syslog Watcher Website

Das Skript war mal nur zum SNMP-Auslesen und ich habe es entsprechend umgebastelt - also ist nicht komplett von mir.

Gruß & viel Spaß,
Maeffjus

Ich habe es mal in den richtigen Bereich verschoben.
Oder war dieser Post eine Frage ? :smiley:

Ein Hinweis noch:
Das funktioniert, aufgrund der Nutzung von ‚SnmpGet (Cmd-Line Tool)‘, nur unter Windows !

Michael

Hoppla - war es weniger :smiley:

Das mit dem SnmpGet hatte ich vorrausgesetzt, im Skript wird ja auf eine executable verwiesen :wink: