NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: goa on December 14, 2022, 12:41:46 PM

Title: Как посчитать количество Node в Container
Post by: goa on December 14, 2022, 12:41:46 PM
Добрый день.

Есть контейнер "AP", к которому привязаны все WiFi точки доступа компании.
Задача - выводить на дашборд общее количество точек и количество Online/Offline точек.

Как можно посчитать количество Node в контейнере(Total, Offline, Online)?

Спасибо!
Title: Re: Как посчитать количество Node в Container
Post by: Filipp Sudanov on December 14, 2022, 07:27:52 PM

Если они все живут непосредственно под этим контейнером (а не в подконтейнераз), то сделать в script library такой скрипт:

container = FindObject(1234);  // 1234 - ID контейнера

status_to_count = $ARGS[1];
count = 0;
for (c : container->children) {
  if (classof(c) == "Node") {
    if (status_to_count == -1 or c->status == status_to_count) count++;
  }
}
return count;





В качестве параметра скрипту подается число

0Normal
1Warning
2Minor
3Major
4Critical

или -1 - считать все ноды.

Ну и дальше на какой-нибудь ноде (для этих целей можно создать фиктивную ноду с адресом 0.0.0.0) сделать скриптовые DCI которые вызвают этот скрипт из библиотеки.
Title: Re: Как посчитать количество Node в Container
Post by: goa on December 15, 2022, 07:37:34 AM
Филипп, добрый день.

Скрипт работает.
Спасибо за помощь.

Было неочевидно как передать параметр в скрипт.
В примерах не нашёл, поэтому выложу тут для справки.