Для настройки метрик в шаблоне как настроить фильтр цветных принтеров HP, Xerox?
if (!$node->isSNMP)
return false;
if (
( $node->snmpOID like ".1.3.6.1.4.1.253.8.62.1.19.5.5.*")
{ return true; }
Предложенное выше решение не работает :(
Сделал такой фильтр для Xerox 7428. Ругается на if (model like "*7428*"). подскажите, что не так?
transport = CreateSNMPTransport($node);
if (transport == null)
{
trace(1,"Snmp transport error on ".$node->ipAddr);
return -1;
}
model = SNMPGetValue(transport, ".1.3.6.1.2.1.25.3.2.1.3.1");
if (model like "*7428*")
{
return $1;
}
else
{
trace(1,"Could not read value for ".$node->ipAddr);
return -1;
}
А как именно ругается? может быть SNMPGetValue не срабатывает и model получается NULL ?
Ругается так:
Failed to execute autobind script for object 7428 [9255] (Error 5 in line 8: Invalid operation with NULL value)
Решено.
Можно фильтровать по описанию:
return $node->sysDescription like "Xerox WorkCentre 7428*";
можно по snmpOID
return $node->snmpOID == ".1.3.6.1.4.1.253.8.62.1.20.5.3.1";
Если несколько моделей принтеров, то придётся указывать все через &&.
Ну да, если нода не смогла ответить по конкретному SNMP OIDу, то в model получалось null.
Там просто проверку можно добавить, аналогично как проверялось что SNMP транспорт создался:
if (model == null)...