CASA-C2200 upstream modem registererd

Started by palaniuk, October 02, 2015, 11:01:42 AM

Previous topic - Next topic

palaniuk

Здравствуйте. Я не так давно пользуюсь netxms, по этому нужна ваша помощь.
Есть устройство CASA-C2200 CMTS. Необходимо вывести график, отображающий количество модемов на одном upstream. Т.е. Для каждого upstream свой график с количеством модемов.
Знаю что нужно создать DCI только для определенных interface type. Как это реализовать? Что писать в скрипте?
Заранее, спасибо за помощь!

P.S. Тут есть что-то подобное.
transport = CreateSNMPTransport($node);
if (transport == null)
return false;
x = SNMPGet(transport, ".1.3.6.1.2.1.2.2.1.3." . $1);
if (x == null)
return false;
if (x->value != 205)
return false;
i = GetInterfaceObject($node, $1);
if (i != null && i->adminState == 1)
{
  return %(true, $1, i->name);
}
return false;


Но немного не то что нужно.
Есть oid .1.3.6.1.4.1.20858.10.12.1.2.1.2 - показывает количество модемов.
Он должен выполняться только при условии, что тип интерфейса 205.
Другими словами, необходим скрипт, который показывает количество модемов только для 205 типа интерфейса. Кто знает, как это реализовать?

Harun

Пользуйтесь поиском, подобная тема уже была:
https://www.netxms.org/forum/oe-oo/kak-ao-oat-ao/
Да, и каким OID Вы собираетесь собирать этот параметре? В стандартном docsis if mib я не нашел.

palaniuk

#2
Спасибо за информацию.
Именно из этой темы я взял код скрипта, но он не работает :(
Я импортировал mib casa. Все необходимые oid у меня есть.
.1.3.6.1.4.1.20858.10.12.1.1.1.2 - кол-во зарегистрированных модемов на upstream
.1.3.6.1.4.1.20858.10.18.1.1.1.7 - SNR.

Harun

А собственно где этот скрипт у вас работает? Куда Вы его внесли?

palaniuk

Скрипт я запускаю через консоль. "Execute server script". Результатом его выполнения является "0"

Harun

Во первых в той теме рабочий скрипт такой:

i = GetInterfaceObject($node, $1);
if ( i != null && i->adminState == 1 && i->ifType == 129)
{
  return %(true, $1, i->name);
}
return false;

Поменяйте ifType на нужный. Во вторых, скрипту нужно передать параметры node и instance, поэтому из консоли он работать не будет, нужно создать DCI,  и разместить его в Instance discovery filter script, а в качестве base snmp oid -  .1.3.6.1.2.1.2.2.1.1

palaniuk

Спасибо за информацию, обязательно попробую  :)

palaniuk

Harun, ваш совет очень помог разобраться ;). P.S. Скрипт не заработал, возможно я в нем накосячил.
Я немного подумал и нашел решение. Все реализуется без скрипта.

  • Создаем DCI (правой кнопкой на node'е, "Data Collection Configuration", там создаем "New parameter"
  • В окне Parameter вставляем OID 1.3.6.1.4.1.20858.10.12.1.1.1.2.398, где "398"- это индекс интерфейса. В моем случае это Logical Upstream Channel 1/1/0.
  • Origin: SNMP, Data Type: Unsigned Integer
  • Остальные настройки, типа интервала опроса и времени хранения информации, выставляем на свой вкус.
Для создания метрики под другой upstream - меняем индекс в конце. Индекс или Interface Index можно посмотреть, выделив нужный nod (в данном случае upstream) и открыв Object Details. 3 картинка.
Все это будет работать при условии что вы импортировали необходимые mib'ы (весь архив mib'ов для импорта приложу ниже).

Harun

А если у Вас несколько десятков интерфейсов? Проще все-таки скриптом автоматизировать.

palaniuk

Harun, Согласен, при большом количестве интерфейсов, скриптом будет быстрее. Только тут нужно будет учесть, то что на каждом Logical Upstream Channel свой Interface Index.
Например, Logical Upstream Channel 1/0/0 имеет индекс 397, Logical Upstream Channel 1/1/0  - индекс 398 и т.д.

Harun

Вообще то скрипт как раз возвращает правильный индекс и имя интерфейса.

palaniuk

#11
Возможно я что-то не так делал, раз со криптом у меня не заработало, но и руками прописать, ничего сложного. Тем более я сомневаюсь, что у кого-то установлено более 5 CASA-C2200. У меня на 3х висит порядка 1000 модемов.

Если кому понадобится сам скрипт:

i = GetInterfaceObject($node, $1);
if ( i != null && i->adminState == 1 && i->ifType == 205)
{
  return %(true, $1, i->name);
}
return false;

OID на количество зарегистрированных модемов: 1.3.6.1.4.1.20858.10.12.1.1.1.2.(здесь индекс интерфейса)
OID на данные SNR (сигнал-шум): 1.3.6.1.2.1.10.127.1.1.4.1.5.(здесь индекс интерфейса)