Есть две разных инсталляции netxms с одинаковыми версиями, создан одинаковый DCI для снятия параметра memory used на роутерах Mikrotik. У Mikrotik два instance - "main memory" и "system disk", был создан instance discovery:
snmp walk - values: .1.3.6.1.2.1.25.2.3.1.1
script:
transport = CreateSNMPTransport($node);
if (transport == null)
return false;
name = SNMPGetValue(transport, ".1.3.6.1.2.1.25.2.3.1.3." . $1);
if (name == null)
return false;
return %(true, $1, name);
На одной инсталяции появляется два DCI с нужными именами, на второй - только одна (main memory), второй не видно. Сделал tcpdump работы DCI, вроде опрашивает всё верно:
IP 10.11.0.3.53103 > 10.11.0.1.161: C=community GetNextRequest(29) .1.3.6.1.2.1.25.2.3.1.1
IP 10.11.0.1.161 > 10.11.0.3.53103: C=community GetResponse(35) .1.3.6.1.2.1.25.2.3.1.1.65536=65536
IP 10.11.0.3.53103 > 10.11.0.1.161: C=community GetNextRequest(32) .1.3.6.1.2.1.25.2.3.1.1.65536
IP 10.11.0.1.161 > 10.11.0.3.53103: C=community GetResponse(35) .1.3.6.1.2.1.25.2.3.1.1.131072=131072
IP 10.11.0.3.53103 > 10.11.0.1.161: C=community GetNextRequest(32) .1.3.6.1.2.1.25.2.3.1.1.131072
IP 10.11.0.1.161 > 10.11.0.3.53103: C=community GetResponse(41) .1.3.6.1.2.1.25.2.3.1.2.65536=.1.3.6.1.2.1.25.2.1.1
IP 10.11.0.3.37580 > 10.11.0.1.161: C=community GetRequest(32) .1.3.6.1.2.1.25.2.3.1.3.65536
IP 10.11.0.1.161 > 10.11.0.3.37580: C=community GetResponse(43) .1.3.6.1.2.1.25.2.3.1.3.65536="main memory"
IP 10.11.0.3.42202 > 10.11.0.1.161: C=community GetRequest(32) .1.3.6.1.2.1.25.2.3.1.3.131072
IP 10.11.0.1.161 > 10.11.0.3.42202: C=community GetResponse(43) .1.3.6.1.2.1.25.2.3.1.3.131072="system disk"
Еще проверка:
snmpwalk 10.11.0.1 .1.3.6.1.2.1.25.2.3.1.3
iso.3.6.1.2.1.25.2.3.1.3.65536 = STRING: "main memory"
iso.3.6.1.2.1.25.2.3.1.3.131072 = STRING: "system disk"
Из дампа видно, что netxms опрашивает оба instance, но DCI создает только для первого. В чем может быть дело?
Как можно сделать отладку, почему не появляются DCI для второго instance?
Обновился до 2.0-RC1-2, проблема снята.