Понадобилось иметь информацию об оптических модулях установленных в коммутатор. В процессе разбирательств образовался алгоритм позволяющий собирать все данные со всех сенсоров устройства, что в последствии оказалось весьма удобным. Возможно кому-то будет интересно...
Попутный вопрос: Подскажите, как менять имя инстанции в процессе работы фильтра Instance Discovery. [SOLVED]
Понадобятся данные из 4-х SNMP OID-ов:
.1.3.6.1.4.1.9.9.91.1.1.1.1.4 - значение сенсоров
.1.3.6.1.2.1.47.1.1.1.1.7 - имена физических устройств.
.1.3.6.1.4.1.9.9.91.1.1.1.1.1 - тип физического устройства, если у OID-а есть значение, то это сенсор. По цифре значения определяется единица измерения (Volts,Ampers,Watts...)
.1.3.6.1.4.1.9.9.91.1.1.1.1.3 - точность сенсоров (количество знаков после запятой)
Создаем Template, в нем DCI со следующими параметрами:
Description = {instance-name}
Paramater = .1.3.6.1.4.1.9.9.91.1.1.1.1.4.{instance}
Origin = SNMP, Data type = Floating Point Number
В Instance Discovery определяем инстанции:
Instance discovery method = SNMP Walk - OIDs
Base SNMP OID = 1.3.6.1.2.1.47.1.1.1.1.7
Нужно разрешать только сенсоры имеющие единицы измерений, поэтому на Instance Discovery ставится фильтр:
Для правильного вывода данных нужно установить "запятую" на место:
Темплейт можно автоматом привязывать к узлу. Automatic Apply Rules = return $node->sysDescription like "Cisco *";
Для полного счастья не мешало бы добавлять в имя инстанции единицы измерения, из .1.3.6.1.4.1.9.9.91.1.1.1.1.1Но сделать это у меня не получается, видимо чего-то недопонимаю... Решение в посте ниже.
Попутный вопрос: Подскажите, как менять имя инстанции в процессе работы фильтра Instance Discovery. [SOLVED]
Понадобятся данные из 4-х SNMP OID-ов:
.1.3.6.1.4.1.9.9.91.1.1.1.1.4 - значение сенсоров
.1.3.6.1.2.1.47.1.1.1.1.7 - имена физических устройств.
.1.3.6.1.4.1.9.9.91.1.1.1.1.1 - тип физического устройства, если у OID-а есть значение, то это сенсор. По цифре значения определяется единица измерения (Volts,Ampers,Watts...)
.1.3.6.1.4.1.9.9.91.1.1.1.1.3 - точность сенсоров (количество знаков после запятой)
Создаем Template, в нем DCI со следующими параметрами:
Description = {instance-name}
Paramater = .1.3.6.1.4.1.9.9.91.1.1.1.1.4.{instance}
Origin = SNMP, Data type = Floating Point Number
В Instance Discovery определяем инстанции:
Instance discovery method = SNMP Walk - OIDs
Base SNMP OID = 1.3.6.1.2.1.47.1.1.1.1.7
Нужно разрешать только сенсоры имеющие единицы измерений, поэтому на Instance Discovery ставится фильтр:
Code Select
transport = CreateSNMPTransport($node);
SensorType = SNMPGetValue(transport, ".1.3.6.1.4.1.9.9.91.1.1.1.1.1.".$1);
if (typeof(SensorType) == "null") {
return false;
}
return true;
Для правильного вывода данных нужно установить "запятую" на место:
Code Select
sub_oid = right($dci->name,4);
transport = CreateSNMPTransport($node);
prec = SNMPGetValue(transport, ".1.3.6.1.4.1.9.9.91.1.1.1.1.3.".sub_oid);
if (prec == 1) {
return $1/10;
}
if (prec == 2) {
return $1/100;
}
if (prec == 3) {
return $1/1000;
}
return $1;
Темплейт можно автоматом привязывать к узлу. Automatic Apply Rules = return $node->sysDescription like "Cisco *";
Для полного счастья не мешало бы добавлять в имя инстанции единицы измерения, из .1.3.6.1.4.1.9.9.91.1.1.1.1.1