Динамические OID-ы

Started by nrg, April 17, 2015, 09:33:40 AM

Previous topic - Next topic

nrg

    Всем привет
    Помогите советом. Имеется много Mikrotik-ов, необходимо снимать инфу с интерфейсов ppp0, а именно необходимо подчитывать объем трафика на этих интерфейсах за определенный период. Mikrotik-и persistent ifindex не умеют, по этому при разрыве PPP-сессии велика вероятность смены OID-а у интерфейса, да и на данный момент OID-ы PPP-интерфейсов разные. Каким образом можно реализовать такую штуку наилучшим образом? И можно ли вообще?

Victor Kirhenshtein

Я бы предложил сделать скриптовый DCI, который SNMP walk'ом находит индекс ppp0, и затем считывает значение через snmp get. Как вариант, если интерфейс меняетя не очень часто - индекс брать из объекта интерфейса (находить его по имени) - он будет обновлятся во время configuration poll.

nrg

    Понял о чем речь. Благодарю за ответ.

parovoZZ

В продолжении темы.

У меня гуляют адреса ядер процессора. Т.е был .1.3.6.1.2.1.25.3.3.1.2.7, а после перезагрузки стал .1.3.6.1.2.1.25.3.3.1.2.2. Есть идея сделать таблицу .1.3.6.1.2.1.25.3.3.1.2, но как из неё выудить значения и высчитать среднее?

Victor Kirhenshtein

Я бы сделал опять-таки скриптовый DCI и в нем вытаскивал бы через walk все процессоры и считал среднее.

parovoZZ


Victor Kirhenshtein

Скрипт может выглядеть например так:


snmp = CreateSNMPTransport($node);
if (snmp == null)
   return 0;

varbinds = SNMPWalk(snmp, ".1.3.6.1.2.1.25.3.3.1.2");
if (varbinds == null)
   return 0;
   
count = 0;
total = 0;
foreach(v : varbinds)
{
   total += v->value;
   count++;
}

return (count > 0) ? total / count : 0;


parovoZZ

Спасибо!

А из таблицы-то как получить значения? Вставляю колонки, прописываю OID и сервер уходит в ошибку. Перезапускаю службу и все изменения исчезают.

Alex Kirhenshtein

Сервер не должен падать. Включите пожалуйста сохранение dump файлов (https://www.netxms.org/documentation/adminguide/troubleshooting.html#enable-crash-dump-generation) и пришлите их на [email protected].

Quote from: parovoZZ on May 06, 2015, 01:37:31 PM
А из таблицы-то как получить значения? Вставляю колонки, прописываю OID и сервер уходит в ошибку. Перезапускаю службу и все изменения исчезают.

parovoZZ

Ну вот пара файликов

Alex Kirhenshtein

Баг выглядит знакомым – обновите сервер на M4, скорее всего поможет.

parovoZZ

А где бы почитать про скриптовый язык и функции?

Alex Kirhenshtein