Установка агентов + вопросы по статистике

Started by Remzy, March 10, 2015, 03:30:56 PM

Previous topic - Next topic

Remzy

Привет.
Перерыл всё, может и плохо, но есть вопросы:
Обнаружение элементов отключено. EnableAgentRegistration = 1

1. установил агент на ПК с указанием адреса сервера, но ПК в списке не появился. Конечно, если руками добавлять, то всё хорошо. Но как сделать что они автоматом появлялись в случае установки агента на ПК и указания адреса сервера?

2. Как построить отчет по даунтайму ПК в сети за промежуток времени? Нужно  к примеру отобразить какие ПК как долго за последние 3 дня были выключены, общее время, что б по нему сортировать.

3. Как сделать уведомление, к примеру на почту если ПК недоступен 3 часа, не сразу, а именно через 3 часа уведомить и если уже прошло 2е суток, а он так и недоступен?

4. Что нужно в скрипте написать, что б при запуске через АГЕНТа на ПК запустить приложение  и как  копировать файлы??

Очень радует система, но не всё пока ясно, есть опыт работы с другими, и вот нужно подобные инструменты получить. Заранее СПАСИБО.

Tatjana Dubrovica

Добрый день здесь ответы только на 2 из 4.

1. Чтобы зарегистрировать агент на сервере можно использовать ключик -r <адресс сервера> при первом старте агента. Вот описание в документации вариантов: https://www.netxms.org/documentation/adminguide/agent-management.html#agent-registry

4.1. Если я правельно поняла, то нужно запускать в ручную команду на агентских нодах. Для этого в Object Tools можно сделать инструмент с типом "Local command", там прописать команду. Дальше этот иструмент появится в меню ноды под пунктом Tools.

4.2. Чтобы копировать файлы добавьте в конфигурацию агента загрузку субагента filemgr и доступные пути для работы с файловой системой. Пример конфигурации тут: https://www.netxms.org/documentation/adminguide/subagents.html#filemgr  на несколько нод конфигурацию можно наложить с помошью тэмплэйта(template), дальше работу с файлами можно проводить с помошью File Manager View описание тут: https://www.netxms.org/documentation/adminguide/file-management.html#file-management-label

Remzy

Quote from: Tatjana Dubrovica on March 11, 2015, 10:51:46 AM
1. Чтобы зарегистрировать агент на сервере можно использовать ключик -r <адресс сервера> при первом старте агента. Вот описание в документации вариантов: https://www.netxms.org/documentation/adminguide/agent-management.html#agent-registry

Большое спасибо. А можно ли, что бы эти ноды появлялись помимо сети ещё и в Инфраструктурных сервисах в определенном разделе или вне его?  что бы было проще находить новые ноды?

Tatjana Dubrovica

Есть несколько возможностей.

Первая это написать скрипт для Automatic Bind Rules. Это вкладка в свойствах контейнера. Первый пример который нашла тут: https://www.netxms.org/forum/configuration/automatic-bind-rules-addrinsubnet/msg13357/#msg13357  В скрипт подаётся переменная $node если скрипт возвращает true то нода добавляется в контейнер. Проверка происходит во время configuration poll для каждой ноды.

Вторая возможность это в EPP сделать правило по которому на SYS_NODE_ADDED эвент будет запускаться скрипт который будет биндить ноду к нужному контейнеру.
Полезные ссылки:
https://www.netxms.org/documentation/adminguide/event-processing.html#event-processing-policy
https://wiki.netxms.org/wiki/NXSL:BindObject



Remzy

Супер. Сделал фильтры и всё пошло.
На контейнер установил галку автоматик бинд и прописал
return AddrInSubnet($node->ipAddr,"192.168.0.0","255.255.0.0") ||
      AddrInSubnet($node->ipAddr,"10.10.0.0","255.255.0.0");
Или если нужно, что бы в группе автоматом появлялись машины с виндовс то
return $node->isAgent && ($node->platformName like "windows-*");

НО...
А как сделать алерты типа SYS_Container_DOWN
для ноды есть, а мне нужно, когда несколько устройств в группе перестают работать
А в эвент конфигураторе нет SYS_Container_DOWN 

Tatjana Dubrovica

Почитайте про condition

Как данные в него можно подавать контейнер. И дальше в скрипте проверять что необходимо пройдясь по детям объекта.

https://www.netxms.org/documentation/adminguide/objects.html#condition
https://wiki.netxms.org/wiki/NXSL:GetObjectChildren

На всякий случай если ещё не знаете - эвенты можно самому создавать, а не только использовать существующие.

Remzy

отличный ответ, я применю его для групп НОДов по другим типам
Но я нашел решение переделав Container в Cluster и скорректировав обработку тригеров

Я создал свои эвенты, по ним можно работать из эвент процессинг полиси, но как сами эвенеты будут отрабатывать по контейнерам?   скриптами?

Tatjana Dubrovica

Ошиблась в функциональности condition, туда как данные подаються объекты DCI. Но для вашей задачи действительно оптимальнее использовать Кластер. Если все нодны в кластере станут down, то будет сгенерён эвент SYS_CLUSTER_DOWN.

Эвент может быть сгенерён при нарушении трешхолда, кондишена, в скрипте, при SNMP Trap или во внутренних заранее заданных местах генерации. На контейнер нельза повесить скрипт или эвент.

Remzy

Привет. Спасибо за помощь.
Я в конфиге агента прописал строку
ActionShellExec = StartCMD:C:\Windows\system32\cmd.exe $1      пробовал и кавычки "$1" и много вариантов
и пробую передавая в CMD запустить калькулятор, к примеру на ПК
в Обжект Тулз создаю Актион и пишу
StartCMD calc.exe
но оно пишет ошибку коммуникаций... который день голову ломаю
к примеру прописал ActionShellExec = StartCMD:C:\Windows\system32\cmd.exe /C dir    И оно отображает католог
но пишу $1  и хочу передать D:\  и оно престаёт работать :(   жуууть

Tatjana Dubrovica

Да. Нашли такую ошибку. В следующем релизе будет исправлено. Ошибка заключалась в том что переменные не подставлялись если опция "generates output" включена.

Tatjana Dubrovica

Агент должен быть запущен под той же пользовательской сессией, под которой хочется запустить калькулятор. GUI приложения нельзя запускать, если агент запускается как сервис.

Remzy

Quote from: Tatjana Dubrovica on March 20, 2015, 06:03:22 PM
Да. Нашли такую ошибку. В следующем релизе будет исправлено. Ошибка заключалась в том что переменные не подставлялись если опция "generates output" включена.

Спасибо.
А как сделать, что бы какой-то кластер не создавал ошибку в определенное время? К примеру офис на выходные может не работать и его мониторить нужно, если всё выключено то именно в эти дни и в это время алерт создавать не нужно

Tatjana Dubrovica

Здесь есть обсуждение этого вопроса с примером скрипта:
https://www.netxms.org/forum/configuration/notification-about-event-only-during-defined-period-of-time/msg16051/#msg16051

Тоесть написать Filtering Script в EPP фильтре который будет оценивать не только что правельный эвент пришёл но и что в правельное время и только тогда создавать аларм.
https://www.netxms.org/documentation/adminguide/event-processing.html#event-processing-policy

Remzy

Quote from: Tatjana Dubrovica on March 22, 2015, 01:34:54 PM
Здесь есть обсуждение этого вопроса с примером скрипта:
https://www.netxms.org/forum/configuration/notification-about-event-only-during-defined-period-of-time/msg16051/#msg16051

Тоесть написать Filtering Script в EPP фильтре который будет оценивать не только что правельный эвент пришёл но и что в правельное время и только тогда создавать аларм.
https://www.netxms.org/documentation/adminguide/event-processing.html#event-processing-policy

Привет. Это в эвент процесинге, это понятно, если нужно, что бы это не срабатывало именно по определенному кластеру в опеределенное время.
Или к примеру, как сделать, что бы этот один кластер по ночам не мониторился вообще

+
а еще есть вопрос:
есть
Я собираю данные с принтера через SNMP
он в одном выдаёт сколько он этим картриджем напечатать, а в другом выдаёт сколько использовано
как сделать ещё один, что бы он выдавал % оставшегося,  т.е. произвести вычисления между значениям?

Alex Kirhenshtein

В аттаче темплейт для принтера, который должен поддерживать большинство вариантов