NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: sdm on December 02, 2014, 09:39:26 AM

Title: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 02, 2014, 09:39:26 AM
Имеется хранилище, к которому по оптике подключена группа компьютеров, при этом эти компьютеры являются рабочими станциями и периодически бывают выключены, есть задача отслеживать место на этом хранилище. Хранилище snmp не умеет, но snmp доступен на всех рабочих станциях, и отдает статистику.
В произвольный период времени парочка компьютеров всегда включена, парочка выключена, таким образом нужно отслеживать параметр по следующему принципу, если параметр доступен на 1-м компьютере, то брать значение с него, если нет, то брать значение со 2-го, 3-го, 4-го и т.д.
Каким образом можно реализовать такое?
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: Victor Kirhenshtein on December 03, 2014, 12:41:14 PM
Можно написать data collection script, который в цикле будет опрашивать ноды и возвращать первое успешно полученное значение. Выглядеть может например так:


nodes = %("node1", "node2", "node3");
foreach(n : nodes)
{
   node = FindNodeObject($node, n);
   if (node != null)
   {
      snmp = CreateSNMPTransport(node);
      if (snmp != null)
      {
         value = SNMPGetValue(snmp, ".1.3.6.1.2.1.1.1.0");  // put your OID here - you can also pass OID as script parameter
         if (value != null)
            return value;  // got response
      }
   }
}
return "ERROR";   // error indication


Соответственно DCI на массиве будет с типом Script и в качестве имени - скрипт из библиотеки.
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 04, 2014, 01:16:58 PM
Спасибо за решение..

Появился вопрос: где лучше создать эту метрику, в свойствах определенного узла это выглядит не очень хорошо, получается, что где-то нужно создать обьект допустим Storage (причем данный обьект не имеет ip-адреса) и, уже внутри него создавать метрику..
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: Victor Kirhenshtein on December 04, 2014, 01:22:22 PM
Да, именно так и стоит сделать. Узлы без IP адреса создавать можно, можно также использовать значение какого-то DCI для определения статуса такого узла, чтобы он не болтался в UNKNOWN. Надо будет только прописать етот узел как trusted в свойствах всех узлов с которых будет проишодить сбор данных.
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 05, 2014, 01:39:49 PM
Приветствую, я не отписывался, так как кое-что тестировал.
В результате сейчас наблюдается следующее: при выполнении скрипта вручную (тест в настройках метрики) скрипт возвращает нужное значение, т.е. с виду все работает.
Но, при всем этом в базу ничего не пишется, последние метрики и история недоступны.
В настройках выставлено: вести историю, опрос каждые n секунд, и т.д.

PS: Статус у этого узла так же отсутствует, может все дело в этом, нет статуса - нет и опроса.
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: Victor Kirhenshtein on December 05, 2014, 06:30:19 PM
А можно скриншот настройки DCI?
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 08, 2014, 11:39:40 AM
Скриншоты настроек:
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 08, 2014, 01:29:40 PM
Возможно подтолкнет на какие-либо мысли: теперь, при создании нового узла в Infrastructure Services я получаю ошибку..
Каким образом создался Production_Storage теперь не совсем понимаю, может быть есть что-то неправильное в моих действиях??
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: Victor Kirhenshtein on December 08, 2014, 05:05:35 PM
Несколько замечаний:

1. Когда создаете новый storage, попробуйте указать 0.0.0.0 как "основной адрес".

2. Попробуйте сбор данных сделать не через transformation script у dummy DCI, a как скрипт в библиотеке и тип DCI "скрипт".
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 09, 2014, 12:24:51 PM
Спасибо за подсказку, при указании адреса 0.0.0.0 создание нового узла отрабатывает без вопросов.
Зато в отношении метрики все то же самое, что и ранее - история не пишется, последние значения недоступны.
Нет ли привязки метрики к статусу узла, когда в случае, если статус выключен или отсутствует, то и метрики не собираются.
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 11, 2014, 03:01:45 PM
Виктор требуются ли какие-нибудь логи, может имеются какие идеи, я готов проверить..
Title: Re: Отслеживать единый параметр на нескольких компьютерах.
Post by: sdm on December 12, 2014, 10:11:10 AM
Данный вопрос условно решен, если добавить этот скрипт на реально существующий компьютер ( а не создавать узел в Infrastructure Services ), то она успешно считается и ведет историю..