Вопрос по возможностям NetXMS

Started by VolanD, September 22, 2014, 06:12:14 AM

Previous topic - Next topic

VolanD

Добрый день!

Вчера поставил netxms на виртуалку, решил посмотреть что это за зверь такой. Вроде все нравится, но не нашел некоторых вещей, может они и есть и я не туда смотрю, поэтому хочу спросить тут:
1) При добавлении cisco-роутера появляются его интерфейсы и даже модули появляются. Но как посмотреть графики загрузки эти интерфейсов? Или их нужно добавлять руками? Еще вопрос про смену индексов на циске, т.е. получается netxms не опрашивает таблицу интерфейсов периодически? А если у инт-са сменится ИП или появится новый интерфейс?

2) Можно ли с консоли управления запустить какую-нить команду относительно хоста и увидеть результат ее выполнения. Например, запустить пинг с ИПом узла и увидеть результат.

3) Можно ли собирать данные с скрипта, который запускает сам сервер относительно этого объекта и выводить их на график. Есть оборудование, на него нет возможности поставить агента, а по SNMP оно некоторые данные не отдает. Можно написать скрипт который будет вытаскивать эти данные, но как их скормить серверу?

Victor Kirhenshtein

Quote from: VolanD on September 22, 2014, 06:12:14 AM
1) При добавлении cisco-роутера появляются его интерфейсы и даже модули появляются. Но как посмотреть графики загрузки эти интерфейсов? Или их нужно добавлять руками? Еще вопрос про смену индексов на циске, т.е. получается netxms не опрашивает таблицу интерфейсов периодически? А если у инт-са сменится ИП или появится новый интерфейс?

Конфигурация интерфейсов опрашивается во время configuration poll, по умолчанию раз в час. При необходимости можно сделать configuration poll принудительно, через меню Poll -> Configuration на ноде. Единственно, NetXMS сервер лучше работает если индексы не меняются, поэтому при возможности стоит зафиксировать их на роутере (snmp-server ifindex persist).
Данные по трафику на интерфейсах автоматически не собираются, можно добавить для любого интерфейса через меню на объекте интерфейса "Create data collection items". Если хочется настроить автоматический сбор данных со всех доступных интерфейсов, можно сделать это через instance discovery - на форуме были примеры.


Quote from: VolanD on September 22, 2014, 06:12:14 AM
2) Можно ли с консоли управления запустить какую-нить команду относительно хоста и увидеть результат ее выполнения. Например, запустить пинг с ИПом узла и увидеть результат.

Можно, это называется "object tools". Надо сделать новый tool (через Configuration -> Object Tools в главном меню) типа "execute local command", в команде написать например

ping %OBJECT_IP_ADDR%

и включить опцию "command generates output". После этого можно выбирать команду в меню Tools на ноде и видеть результат в консоли.

Quote from: VolanD on September 22, 2014, 06:12:14 AM
3) Можно ли собирать данные с скрипта, который запускает сам сервер относительно этого объекта и выводить их на график. Есть оборудование, на него нет возможности поставить агента, а по SNMP оно некоторые данные не отдает. Можно написать скрипт который будет вытаскивать эти данные, но как их скормить серверу?

Можно. Надо сделать  ExternalParameter для скрипта на агенте, работающем на сервере мониторинга. После этого добавить параметр с источником "NetXMS agent" на ноде роутера, указать имя из ExternalParameter, и указать ноду сервера как "proxy node". Надо будет либо добавить ноду роутера в список trusted nodes у ноды сервера, либо выставить конфигурационный параметр CheckTrustedNodes в 0.

hzdrus

Quote from: Victor Kirhenshtein on September 22, 2014, 01:10:49 PM
Данные по трафику на интерфейсах автоматически не собираются, можно добавить для любого интерфейса через меню на объекте интерфейса "Create data collection items". Если хочется настроить автоматический сбор данных со всех доступных интерфейсов, можно сделать это через instance discovery - на форуме были примеры.

Вчера поставил NetXMS, все бы хорошо, однако есть одно серьезное неудобство по сравнению с Zenoss: автоматически не делает интерфейсы графиков. Я поискал в форуме "instance discovery интерфейс", в результатах выдает только этот тред.

Можно ли поподробнее, как это сделать самым легким методом? Требуются графики по трафику, pps и ошибкам.

Было бы очень круто, если бы можно было просто нажать на интерфейс и там получить закладочку с графиками. Аналогичным образом работают большинство других NMS систем, с которыми я сталкивался.

hsvt

QuoteМожно, это называется "object tools". Надо сделать новый tool (через Configuration -> Object Tools в главном меню) типа "execute local command", в команде написать например

ping %OBJECT_IP_ADDR%

и включить опцию "command generates output". После этого можно выбирать команду в меню Tools на ноде и видеть результат в консоли.

А вы можете подсказать как сделать "object tools" для snmp set команды, например выключить нужный порт на коммутаторе, добавить VLAN или что нибудь еще.

Set Port Status Enable/Disable
:: Command ::
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.11.63.6.2.2.2.1.3

1 other (1)
2 disabled (2)
3 enabled (3)



Victor Kirhenshtein

Сейчас SNMP set tool сделать нельзя. Как вариант - сделать через local command - запускать snmpset на адрес ноды.

hsvt

Quote from: Victor Kirhenshtein on December 27, 2014, 11:38:31 AM
Сейчас SNMP set tool сделать нельзя. Как вариант - сделать через local command - запускать snmpset на адрес ноды.

local command подразумевает наличие net-snmp утилит на рабочей станции?

А можно ли как то запускать snmpset команды с самого сервера NetXMS ? Во общем в какую сторону функционала мне нужно смотреть чтобы управлять коммутатором по snmpset скриптам и вывести их в Commands node?

Object tools - action, server command (nxsnmpset?), SNMP Table ?

Victor Kirhenshtein

Да, nxsnmpset как server command будет то что требуется.

hsvt

Quote from: Victor Kirhenshtein on April 08, 2015, 11:01:24 PM
Да, nxsnmpset как server command будет то что требуется.

С одним параметром разобрался, спасибо. А вот по поводу enable\disable портов\интерфейсов есть какой нибудь макрос наподобии %a только чтобы указывался нужный порт? Не указывать же кучу (oid - номер порта) object tools для всех необходимых портов. Или же чтобы при выполнении nxsnmpset было всплывающее окно (наподобие как сейчас сделано confirmation) и там уже вводить имя или номер нужного интерфейса для включения или выключения. Кто нибудь реализовал подобное ?

Victor Kirhenshtein

Пока нет такой возможности. Я добавил как feature request: https://dev.raden.solutions/issues/814

hsvt

Quote from: Victor Kirhenshtein on April 28, 2015, 09:59:01 PM
Пока нет такой возможности. Я добавил как feature request: https://dev.raden.solutions/issues/814

Большое спасибо, что было бы то что нужно!

hsvt

#10
При просмотре графиков через Line Chart за большой период (Present last 5 day, week, etc) Сама консоль ощутимо "лагает" и долго отдаёт данные... то есть надпись Get DCI values for history graph 0% может висеть довольно долго, затем когда данные получены - навигация мышкой для выделения активной области так же очень замедленная.

В качестве БД mysql 5.5.44.

Quote from: Victor Kirhenshtein on April 28, 2015, 09:59:01 PM
Пока нет такой возможности. Я добавил как feature request: https://dev.raden.solutions/issues/814

Есть какие то изменения в этом плане ? Как можно сделать object tool для конкретного интерфейса с маскросом типа %i ? Например по snmp выключить порт, или выполнить команду на нём же.

Victor Kirhenshtein

814 сделано - теперь в object tool есть input fields - можно определить поля ввода, при запуске консоль спросит для них значения. В команде можно использовать макрос %(field) для подстановки введенного значения.

hsvt

#12
Quote from: Victor Kirhenshtein on November 17, 2015, 03:24:42 PM
814 сделано - теперь в object tool есть input fields - можно определить поля ввода, при запуске консоль спросит для них значения. В команде можно использовать макрос %(field) для подстановки введенного значения.

Виктор, это прекрасно! Проверил, работает отключение порта. Только с confirmation получается немного не стыковка, после отправки tools он сначала спрашивает подтверждение и макрос %(port) туда не впишешь т.к. еще не известно какой порт будет отключен... ну на это можно и забить, оставить просто confirmation о том, что данное действие выполняется именно на этой ноде. Are you sure you want to disable port on the switch %n ip - (%a) ?

А если например нужно указать диапазон портов типа 1-24, какое может быть решение?

/usr/local/bin/nxsnmpset -c public -v 2c -t INTEGER %a .1.3.6.1.4.1.171.11.105.1.2.3.2.1.4.%(Port).1 2

Но самое важное, о чем хотел спросить - не могу разобраться с Filter в Object tools.

System OS name should match this template что подразумевается под System OS name если у меня коммутатор?

Если использовать Node SNMP OID should match with the following template - здесь вроде бы понятно, вставляешь SNMP Object OID, но опять же не ясно, можно ли тут перечислить нужные OID через запятые или нет. Есть 3 или даже 4 вида коммутаторов с разными SNMP Object OID и нужно как то фильтровать каждый Object Tools на свой коммутатор, чтобы не было общего списка у каждой ноды.

Victor Kirhenshtein

Для диапазона портов надо будет написать скрипт, который пройдет по нему в цикле и сделает несколько SNMP SET. Скрипт может быть и внутренний (NXSL) - есть функция SNMPSet в NXSL.

С фильтрами все несколько нелогично - SNMP OID это шаблон, можно использовать * и ? - но сам OID только один. System OS работает только для агентов - проверяется значение platform name. И это список регулярных выражений, разделенных запятыми.

Еще можно использовать шаблоны - есть опция проверять что определенный шаблон наложен на ноду.

hsvt

Quote from: Victor Kirhenshtein on November 18, 2015, 02:18:10 PM
Для диапазона портов надо будет написать скрипт, который пройдет по нему в цикле и сделает несколько SNMP SET. Скрипт может быть и внутренний (NXSL) - есть функция SNMPSet в NXSL.

С фильтрами все несколько нелогично - SNMP OID это шаблон, можно использовать * и ? - но сам OID только один. System OS работает только для агентов - проверяется значение platform name. И это список регулярных выражений, разделенных запятыми.

Еще можно использовать шаблоны - есть опция проверять что определенный шаблон наложен на ноду.

Спасибо, буду пробовать учиться... Что имеется в виду под "и внутренний скрипт" а какие они еще бывают ? Вы имеете в виду Object tool - type internal ?

В обще где нужно писать сам скрипт, в Script Library и применять его потом в контекстном меню ноды ? Можете немного подтолкнуть меня на правильный путь :)

QuoteThis script can be executes as an action from event processing policy, or directly from server debug console via exec command.

Я вот знаю есть системные скрипты, один из которых Configuration я использую.

Hook::StatusPoll
Hook::ConfigurationPoll
Hook::TopologyPoll


Получается скрипт может быть как Action, как системный Hook, так же запущен через exec с консоли и так же запущен в меню ноды, для моей задачи какой вариант подходит ?

С фильтрами я сделал привязку по OID.