Добрый день, подскажите пожалуйста - не вполне понятно как и можно ли отслеживать определенный порт, например smtp на удаленном сервере. Добавляю ноду, создаю сервис (Create network service) выбираю тип smtp, ставлю порт 25, надо ли что то писать в реквест-респонз? откуда можно взять эту информацию? в итоге сервис создается и висит со статусом ОК и все. Что я делаю не так?
Спасибо.
Для SMTP надо прописывать тестовый майл в request. Если надо просто проверять, что TCP порт открыт, то можно ставить тип сервиса Custom. Ну и собственно статус NORMAL говорит о том, что сервис доступен. Если он будет недоступен, то статус поменяется, и будет сгенерировано соответствующее событие (SYS_SERVICE_DOWN).
Тип сервиса custom это при создании сервиса? Просто точно таким же макаром добавляю например ssh порт 22 для exchange-сервера, на котором он явно закрыт и все равно получаю статус ОК, может я не там смотрю статус?
Да, как-то странно. Можете скриншот прислать?
Может я что то не так делаю конечно...
Нет, это не то - ето статус порогоцых значений, которых скорее всего просто нет. Статус сервиса можнио посмотреть на закладке "Overview" в "Object Details", когда сервис выбран в дереве. Значением статуса для нормально работающего сервиса будет 0 (это NORMAL). Статус 5 означает UNKNOWN - скорее всего не загружен субагент portcheck на агенте, работающем на самом сервере мониторинга.
Да, статус unknown. portcheck это SubAgent = portcheck.nsm в nxagentd.conf? там эта строка есть. можно ли его проверить?
Каким образом можно мониторить работу определенных сервисов? можно ли свободно выбирать эти типы сервисов и каким образом это можно настроить? Гайд читал, такой информации там не нашел. Хочется узнать и понять функционал.
Спасибо.
Работу сетевых сервисов потестить можно так: https://www.netxms.org/forum/oe-oo/moto-omo-servicecheck/msg2356/#msg2356
Работу локальных сервисов (служб, демонов) при помощи System.ServiceState(*)
Спасибо, я попробую и отпишусь.
Каким образом с помощью ServiceCheck.Custom можно проверить доступность произвольного порта на ноде? я добавляю DCI в ноду и получаю ошибку. какой тип надо выбирать если на ноде НЕ установлен агент?
На проверяемом узле агент не нужен. Агент необходим только на проверяющей ноде, т.е. на той, с которой будет вестись проверка.
В ServiceCheck.Custom в качестве параметров вводи адрес и порт через запятую. Например: 10.10.1.6,80.
Смысл следующий: Проверяющая нода (с агентом) долбиться на любой указанный хост, на нужный порт и делает анализ. Если ОК-то ОК, если нет - косяк.
Ура, все получилось, статус конкретного порта он детектит. А как для конкретной ноды задать мониторинг конкретной службы - например есть нода сервер exchange на котором надо мониторить состояние smtp-сервиса и отображать состояние.
Я бы мониторил 172,0,0,1 с помощью ServiceCheck.SMTP + мониторил состояние самих сервисов Exchange при помощи System.ServiceState.
Выстрелом в голову стал бы скрипт тестовой отправки почты.
Ну netxms стоит не на сервере Exchange, поэтому состояние служб надо мониторить через сеть.
Для использования System.ServiceState нужен агент же? а если на Exchange не стоит он?
если не стоит - мониторить можно только состояние портов, да и то, только с машины, на которой есть агент.
чтобы мониторить состояние служб необходим установленный агент, либо через MWI... через агента проще.
А если у удаленного хоста по snmp запрашивать oid с информацией о каком то сервисе? Наличие агента же не обязательно?
нет, агент на Exchange не нужен.
Я так понимаю что этот OID будет в некой сторонней базе MIB, ее каким образом надо будет засунуть в NetXMS?
это если он вообще есть а то я пока не могу найти OID для службы smtp...
Да, в базе Microsoft скорее всего. С помощью nxmibc.
Я не понимаю нежелание устанавливать агента... с его помощью можно не только данные снимать, но и выполнять действия автоматом... например запустить отвалившуюся службу...
С компиляцией разобрался...Вообще огорчает малое количество информации по функциям программы, все приходится искать и выуживать по крупицам...
Агента пока не хочу ставить чтобы узнать функционал с чистым snmp, так же можно мониторить например принтеры или маршрутизаторы на которые агента не поставить.