Hallo zusammen,
Ich lese meine Qnap ts-659pro mit SNMP aus. Nun habe ich das Problem, das sich meine ThreadIDs füllen und das Script nicht mehr beendet wird. Ich habe dann auch den Dienst IPS vom Tray und unter Dienste nicht mehr beenden.
Das Script wird alle 10s aufgerufen und funktioniert auch 1 bis 2 Tage und dann ist nur noch ein ThreadID. Wie habe ich die Möglichkeit den Fehler einzugrenzen.
Vielleicht könnte mal jemand von euch auf das Script schauen.
Ich habe keine Idee mehr was es sein kann das es nicht immer vorkommt.
Gruß
onkeldirk
<?
$host = "192.168.0.96";
$community = "public";
$debug = true;
$cpulast = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.1.0"); //Aktuelle CPU Last
$cpulast = str_replace("STRING: \"", "",$cpulast);
$cpulast = str_replace(" %\"", "", $cpulast);
$cpulast = str_replace(".", ",", $cpulast);
SetValue(35355 /*[Haus\Computer Raum\Qnap\CPU Last]*/, $cpulast);
if ($debug) {echo "CPU Last : $cpulast
";}
$cputemp = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.5.0"); //Aktuelle CPU Temp
$cputemp = str_replace("STRING: \"", "",$cputemp);
$cputemp = strstr($cputemp, 'C', true);
//$uptime = str_replace(" %\"", "", $uptime);
//$uptime = str_replace(".", ",", $uptime);
SetValue(59548 /*[Haus\Computer Raum\Qnap\CPU Temp]*/, $cputemp);
if ($debug) {echo "CPU Temp : $cputemp
";}
$systemp = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.6.0"); //Aktuelle System Temp
$systemp = str_replace("STRING: \"", "",$systemp);
$systemp = strstr($systemp, 'C', true);
SetValue(11753 /*[Haus\Computer Raum\Qnap\System Temp]*/, $systemp);
if ($debug) {echo "Sys Temp : $systemp
";}
$fan1 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.15.1.3.1"); //Aktuelle drehzal Fan1
$fan1 = str_replace("STRING: \"", "", $fan1);
$fan1 = str_replace(" RPM\"", "", $fan1);
SetValue(30019 /*[Haus\Computer Raum\Qnap\Fan 1]*/, $fan1);
if ($debug) {echo "FAN 1 : $fan1
";}
$fan2 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.15.1.3.2"); //Aktuelle drehzal Fan2
$fan2 = str_replace("STRING: \"", "", $fan2);
$fan2 = str_replace(" RPM\"", "", $fan2);
SetValue(57638 /*[Haus\Computer Raum\Qnap\Fan 2]*/, $fan2);
if ($debug) {echo "FAN 2 : $fan2
";}
$uptime = snmpget("$host","$community",".1.3.6.1.2.1.25.1.1.0"); //Aktuelle uptime
$uptime = str_replace("Timeticks: (", "", $uptime);
$uptime = strstr($uptime, ')', false);
$uptime = str_replace(")", "", $uptime);
SetValue(19404 /*[Haus\Computer Raum\Qnap\Uptime]*/,$uptime);
if ($debug) {echo "Upime : $uptime
";}
$stateeth0 = snmpget("$host","$community",".1.3.6.1.2.1.2.2.1.8.3"); //Aktuelle portstatus eth0
$stateeth0 = str_replace("INTEGER: ", "", $stateeth0);
switch ($stateeth0) {
case 1: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "UP"); break;
case 2: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "Down"); break;
case 3: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "testing"); break;
case 4: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "unknown"); break;
case 5: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "dormant"); break;
case 6: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "notPresent"); break;
case 7: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "lowerLayerDown"); break;
default: SetValue(58530 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0 State]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "State eth0 : $stateeth0
";}
$stateeth1 = snmpget("$host","$community",".1.3.6.1.2.1.2.2.1.8.2"); //Aktuelle portstatus eth1
$stateeth1 = str_replace("INTEGER: ", "", $stateeth1);
switch ($stateeth1) {
case 1: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "UP"); break;
case 2: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "Down"); break;
case 3: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "testing"); break;
case 4: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "unknown"); break;
case 5: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "dormant"); break;
case 6: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "notPresent"); break;
case 7: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "lowerLayerDown"); break;
default: SetValue(18819 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1 State]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "State eth1 : $stateeth1
";}
$speedeth0 = snmpget("$host","$community",".1.3.6.1.2.1.2.2.1.5.3"); //Aktuelle geschwindigkeit eth0
$speedeth0 = str_replace("Gauge32: ", "", $speedeth0);
$speedeth0 = $speedeth0 /1000 /1000;
SetValue(14694 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk0]*/, $speedeth0);
if ($debug) {echo "Speed eth0 : $speedeth0
";}
$speedeth1 = snmpget("$host","$community",".1.3.6.1.2.1.2.2.1.5.2"); //Aktuelle geschwindigkeit eth1
$speedeth1 = str_replace("Gauge32: ", "", $speedeth1);
$speedeth1 = $speedeth1 /1000 /1000;
SetValue(39575 /*[Haus\Computer Raum\Qnap\Netzwerk\Netzwerk1]*/, $speedeth1);
if ($debug) {echo "Speed eth1 : $speedeth1
";}
$temphdd1 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.1"); //Aktuelle Temperatur HDD1
$temphdd1 = str_replace("STRING: ", "", $temphdd1);
$temphdd1 = substr($temphdd1,1,strripos($temphdd1,"C")-1);
SetValue(21839 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD1]*/, $temphdd1);
if ($debug) {echo "Temp HDD1 : $temphdd1
";}
$temphdd2 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.2"); //Aktuelle Temperatur HDD2
$temphdd2 = str_replace("STRING: ", "", $temphdd2);
$temphdd2 = substr($temphdd2,1,strripos($temphdd2,"C")-1);
SetValue(59056 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD2]*/, $temphdd2);
if ($debug) {echo "Temp HDD2 : $temphdd2
";}
$temphdd3 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.3"); //Aktuelle Temperatur HDD3
$temphdd3 = str_replace("STRING: ", "", $temphdd3);
$temphdd3 = substr($temphdd3,1,strripos($temphdd3,"C")-1);
SetValue(54163 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD3]*/, $temphdd3);
if ($debug) {echo "Temp HDD3 : $temphdd3
";}
$temphdd4 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.4"); //Aktuelle Temperatur HDD4
$temphdd4 = str_replace("STRING: ", "", $temphdd4);
$temphdd4 = substr($temphdd4,1,strripos($temphdd4,"C")-1);
SetValue(55732 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD4]*/, $temphdd4);
if ($debug) {echo "Temp HDD4 : $temphdd4
";}
$temphdd5 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.5"); //Aktuelle Temperatur HDD5
$temphdd5 = str_replace("STRING: ", "", $temphdd5);
$temphdd5 = substr($temphdd5,1,strripos($temphdd5,"C")-1);
SetValue(13250 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD5]*/, $temphdd5);
if ($debug) {echo "Temp HDD5 : $temphdd5
";}
$temphdd6 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.3.6"); //Aktuelle Temperatur HDD6
$temphdd6 = str_replace("STRING: ", "", $temphdd6);
$temphdd6 = substr($temphdd6,1,strripos($temphdd6,"C")-1);
SetValue(51277 /*[Haus\Computer Raum\Qnap\Festplatten\Temp. HDD6]*/, $temphdd6);
if ($debug) {echo "Temp HDD6 : $temphdd6
";}
$statushd1 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.1"); //Aktuelle Stataus der Festplatte 1
$statushd1 = str_replace("INTEGER: ", "", $statushd1);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd1) {
case 0: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "ready"); break;
case -5: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "noDisk"); break;
case -6: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "invalid"); break;
case -9: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "rwError"); break;
case -4: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "unknown"); break;
default: SetValue(58245 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD1]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD1 : $statushd1
";}
$statushd2 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.2"); //Aktuelle Stataus der Festplatte 2
$statushd2 = str_replace("INTEGER: ", "", $statushd2);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd2) {
case 0: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "ready"); break;
case -5: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "noDisk"); break;
case -6: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "invalid"); break;
case -9: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "rwError"); break;
case -4: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "unknown"); break;
default: SetValue(15169 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD2]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD2 : $statushd2
";}
$statushd3 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.3"); //Aktuelle Stataus der Festplatte 3
$statushd3 = str_replace("INTEGER: ", "", $statushd3);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd3) {
case 0: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "ready"); break;
case -5: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "noDisk"); break;
case -6: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "invalid"); break;
case -9: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "rwError"); break;
case -4: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "unknown"); break;
default: SetValue(24764 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD3]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD3 : $statushd3
";}
$statushd4 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.4"); //Aktuelle Stataus der Festplatte 4
$statushd4 = str_replace("INTEGER: ", "", $statushd4);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd4) {
case 0: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "ready"); break;
case -5: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "noDisk"); break;
case -6: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "invalid"); break;
case -9: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "rwError"); break;
case -4: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "unknown"); break;
default: SetValue(52335 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD4]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD4 : $statushd4
";}
$statushd5 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.5"); //Aktuelle Stataus der Festplatte 5
$statushd5 = str_replace("INTEGER: ", "", $statushd5);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd5) {
case 0: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "ready"); break;
case -5: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "noDisk"); break;
case -6: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "invalid"); break;
case -9: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "rwError"); break;
case -4: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "unknown"); break;
default: SetValue(20907 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD5]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD5 : $statushd5
";}
$statushd6 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.11.1.4.6"); //Aktuelle Stataus der Festplatte 6
$statushd6 = str_replace("INTEGER: ", "", $statushd6);
//INTEGER {ready(0),noDisk(-5),invalid(-6),rwError(-9),unknown(-4)}
switch ($statushd6) {
case 0: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "ready"); break;
case -5: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "noDisk"); break;
case -6: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "invalid"); break;
case -9: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "rwError"); break;
case -4: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "unknown"); break;
default: SetValue(55841 /*[Haus\Computer Raum\Qnap\Festplatten\Status HD6]*/, "nicht 1 - 7"); break;
}
if ($debug) {echo "Status HD2 : $statushd2
";}
$totalsize1 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.4.1"); //Total Size Raid-1
$totalsize1 = str_replace("STRING: ", "", $totalsize1);
$totalsize1 = substr($totalsize1,1,strripos($totalsize1,"TB")-1);
$totalsize1 = str_replace(".", ",", $totalsize1);
SetValue(30545 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-1 Total]*/, $totalsize1);
if ($debug) {echo "Raid-1 : $totalsize1
";}
$totalsize2 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.4.2"); //Total Size Raid-1
$totalsize2 = str_replace("STRING: ", "", $totalsize2);
$totalsize2 = substr($totalsize2,1,strripos($totalsize2,"TB")-1);
$totalsize2 = str_replace(".", ",", $totalsize2);
SetValue(45508 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-2 Total]*/, $totalsize2);
if ($debug) {echo "Raid-2 : $totalsize2
";}
$totalsize3 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.4.3"); //Total Size Raid-1
$totalsize3 = str_replace("STRING: ", "", $totalsize3);
$totalsize3 = substr($totalsize3,1,strripos($totalsize3,"TB")-1);
$totalsize3 = str_replace(".", ",", $totalsize3);
SetValue(57155 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-3 Total]*/, $totalsize3);
if ($debug) {echo "Raid-3 : $totalsize3
";}
$freesize1 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.5.1"); //free Size Raid-1
$freesize1 = str_replace("STRING: ", "", $freesize1);
$freesize1 = substr($freesize1,1,strripos($freesize1,"TB")-1);
$freesize1 = str_replace(".", ",", $freesize1);
SetValue(30070 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-1 Free]*/, $freesize1);
if ($debug) {echo "Raid-1 : $freesize1
";}
$freesize2 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.5.2"); //free Size Raid-1
$freesize2 = str_replace("STRING: ", "", $freesize2);
$freesize2 = substr($freesize2,1,strripos($freesize2,"TB")-1);
$freesize2 = str_replace(".", ",", $freesize2);
SetValue(38611 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-2 Free]*/, $freesize2);
if ($debug) {echo "Raid-2 : $freesize2
";}
$freesize3 = snmpget("$host","$community",".1.3.6.1.4.1.24681.1.2.17.1.5.3"); //free Size Raid-1
$freesize3 = str_replace("STRING: ", "", $freesize3);
$freesize3 = substr($freesize3,1,strripos($freesize3,"TB")-1);
$freesize3 = str_replace(".", ",", $freesize3);
SetValue(38962 /*[Haus\Computer Raum\Qnap\Festplatten\Raid-3 Free]*/, $freesize3);
if ($debug) {echo "Raid-3 : $freesize3
";}
?>