Re: Взаимодействие по протоколу SNMP
Добавлено: Пн дек 11, 2017 6:51 pm
у меня давно не обновлял, но статистика включается вроде б (Tools - Other Settings - Enable IPTraffic (per IP monitoring) ; Monitor all IPs by default)
Никуда mib не клал. Все работает и так, у меня под windows крутиться.Lerych писал(а): Ср апр 07, 2021 7:46 pm МД стоит на Linux. Установил модуль snmp, чтобы получать данные от UPS APC1500. В модуле добавляю устройство с IP и т.д., в свойствах выставляю OID, тип, название, интервал проверки и привязку объекта (объект, свойство). Нажимаю сохранить, цикл cycle_snmpdevices валиться.
Обратил внимание в таблице "snmpdevices" есть поле "MIB_FILE", но оно пустое.
Вопрос куда родной MIB файл от ИБП класть и в таблице надо его прописывать?
Я когда-то крутил, но модуль поддерживает только snmp v1 (см. вложения). Модуль "сырой".Lerych писал(а): Чт апр 08, 2021 9:52 pm А у кого-нибудь под Линукс работает? Может ещё что надо поставить?
Код: Выделить всё
//SNMP OPiZ
$timeticks = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 1.3.6.1.2.1.1.3 | awk '{printf $4}' | awk '{printf substr($0, 2, length($0) - 2)}'");
//snmp timeticks / 100 = seconds
//snmp timeticks / 6000 = minutes
//snmp timeticks / 360000 = hours
//snmp timeticks / 8640000 = days
$uptime = intval($timeticks/100);
setGlobal("OrangePiZero01.uptimeSystem",$uptime);
$lntSecs = $uptime;
$intDays = intval($lntSecs / 86400);
$intHours = intval(($lntSecs - ($intDays * 86400)) / 3600);
$intMinutes = intval(($lntSecs - ($intDays * 86400) - ($intHours * 3600)) / 60);
$intSeconds = intval(($lntSecs - ($intDays * 86400) - ($intHours * 3600) - ($intMinutes * 60)));
if ($days == "0" && $hours <= "12") {
$uptime_opiz01 = "<span style='color: red;'>".$intDays."d. ".$intHours."h. ".$intMinutes."m. "."</span>";
} else {
$uptime_opiz01 = "<span style='color: lime;'>".$intDays."d. ".$intHours."h. ".$intMinutes."m. "."</span>";
}
setGlobal("OrangePiZero01.uptimeSystemText",$uptime_opiz01);
$cpuidle = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.11.11.0 | awk '{printf $4}'"); //percentages of idle CPU time
$cpuload = (100-$cpuidle);
setGlobal("OrangePiZero01.CPU_load",$cpuload.'%');
$memRealTotal = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.4.5.0 | awk '{printf $4}'"); //total memory in machine
$memRealTotal = round($memRealTotal/1000, 0);
$memRealAvail = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.4.6.0 | awk '{printf $4}'"); //memory avail
$memRealAvail = round($memRealAvail/1000, 0);
$memRealBuffers = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.4.14.0 | awk '{printf $4}'"); //memory buffers
$memRealBuffers = round($memRealBuffers/1000, 0);
$memRealCached = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.4.15.0 | awk '{printf $4}'"); //memory cached
$memRealCached = round($memRealCached/1000, 0);
$memFree = shell_exec("snmpwalk -v 1 -c snmp@key -O e 192.168.1.70 .1.3.6.1.4.1.2021.4.11.0 | awk '{printf $4}'"); //free memory (free Swap memory + free RAM memory)
$memFree = round($memFree/1000, 0);
$memRealUsed = $memRealTotal - $memRealAvail;
$memRealPercent = (($memRealUsed - $memRealBuffers - $memRealCached )/ $memRealTotal) * 100;
$memRealPercent = round($memRealPercent, 1);
$mem="Total: ".$memRealTotal." Used: ".$memRealUsed;
setGlobal("OrangePiZero01.memory",$mem);Попробуйте сначала вручную из linux консоли получить:Lerych писал(а): Ср апр 07, 2021 7:46 pm Вопрос куда родной MIB файл от ИБП класть и в таблице надо его прописывать?
Сейчас посмотрел, не только под windows работает. Настроена на rpi3 собирать по snmp с роутера нагрузку.Lerych писал(а): Чт апр 08, 2021 9:52 pm А у кого-нибудь под Линукс работает? Может ещё что надо поставить?