Hiho zusammen,
ich habe mehrere Mikrotik Router die ausserhalb meiner Wohnung stehen und per SNMP abgefragt werden wollen, ich hab durch viel recherchieren und in diesem Forum nach Lösungsansätzen gesucht, leider bin ich noch nicht auf das ultimative Script gestoßen.
Das Problem ist das die Router nur über einen OpenVPN Tunnel abgefragt werden können, und die SNMP Abfragen durch die Verzögerung im Internet ( Ping Timeouts oder Lange Latenzlaufzeiten ) leider immer wieder das IPS zerschießen indem Sie Tote PHP Threads erzeugen.
Ich hab mich dann gestern an mein erstes selbstgebautes Script rangewagt und mir überlegt … okay dann wird die SNMP Abfrage garnicht erst durchgeführt wenn der Ping nicht sauber läuft, stattdessen sollst du mir einen statischen Wert in die Integervariable schreiben.
… ich weiß sehr Amateurhaft aber es hat nach mehreren Stunden rumprobieren dann eigentlich auch funktioniert und ich bin dann wieder mal Spät ins Bett gegangen
Am nächsten Morgen wollte ich dann mal gucken ob alles geklappt hat und siehe da das Webfront wahr total Tot, und alle 10 PHP Threads waren Rot.
Was könnte man dem Script noch hinzufügen damit die Threads alle brav am Leben bleiben :
<?
$host = "10.255.255.250"; // IP Adresse des Ziels im VPN
$community = "4steps-pub"; // SNMP Community
$ping = Sys_Ping("10.255.255.250", 100); // Sysping auf das Ziel ( Unter 100 ms = True / 1 )
IPS_Sleep(200); // Das Script soll schlafen gehen für 200 ms
if ($ping == 1){ // Wennn der Ping okay ist 1 = True dann SNMP Abfrage starten
$data = snmpget("$host","$community","1.3.6.1.4.1.14988.1.1.1.2.1.3.0.21.109.234.193.84.6"); // SNMP Abfrage
$data = intval(str_replace("INTEGER: ", "", $data)); // INTEGER: wegschneiden
SetValueInteger(20422 /*Integervariable*/ ,$data); // Schreibe SNMP Daten in die Integervariable
} else
{
SetValueInteger(20422 /*[Integervariable]*/ ,-200); // Wenn Ping = 0 / False => schreibe -200 in die Variable
}
?>
Bitte ganz lieb um Hilfe