Использование SNMP: мониторинг сервисов.

Started by Anth0ny, May 26, 2009, 04:00:16 PM

Previous topic - Next topic

Anth0ny

Ситуация: есть удалённая windows-машина, на которой нужно следить за состоянием сервисов. Данная машина доступна только по SNMP, больше никак. На машине (2003) поднят SNMP, на сервер NXMS добавлен LanMgr-Mib-II-MIB.mib и базовый mib пересобран.

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


Проблема: при использовании SNMP для мониторинга windows-сервисов, OID сервиса доступен (присутствует в общем дереве OID'ов) только до тех пор, пока сам сервис запущен. Как только сервис останавливается, OID незамедлительно пропадает и DCI тут же переходит в состояние Not Supported.

Его конечно понять можно, ведь с точки зрения базовой логики поскольку объект отсутствует, то мониторить просто нечего. И введённый OID начинает считаться ошибочным =/.

Пример OID'а.

1. OID раздела сервисов: 1.3.6.1.4.1.77.1.2.3.1. = enterprises.lanmanger.lanmgr-2.server.svSvcEntry.svSvcTable

2. Таблицы с перечнями свойств сервисов

        .1 = svSvcName (.#char.dec-ascii chars, matches service name in service control panel including case)
        .2 = svSvcInstalledState (1-uninstalled,2-install-pending,3-uninstall-pending,4-installed)
        .3 = svSvcOperatingState (1-active, 2-continue-pending, 3-pause-pending, 4-paused)
        .4 = svSvcCanBeUninstalled (1-no, 2-yes)
        .5 = svSvcCanBePaused (1-no, 2-yes)

3. Соответственно, OID'ы сервисов строятся так (на примере Task Scheduler):

OID с названием сервиса: 1.3.6.1.4.1.77.1.2.3.1.1.14.84.97.115.107.32.83.99.104.101.100.117.108.101.114
выдаст "Task Scheduler"

OID с состоянием сервиса: 1.3.6.1.4.1.77.1.2.3.1.3.14.84.97.115.107.32.83.99.104.101.100.117.108.101.114
при запущенном сервисе выдаст "1"

Вопрос: как кто решал подобную проблему? Как через SNMP можно мониторить состояние сервисов если их OID'ы исчезают после остановки или падения сервисов а именно за этим и нужно следить?

Всё бы ничего, да при этом полностью отказывает DCI. И его можно реанимировать только ручками. Что для большого числа хостов и сервисов не приемлемо...

Прошу помочь...

2 Виктор: как в данном случае лучше поступить, что посоветуете? Нельзя ли в будущих релизах NXMS немного изменить подход к SNMP, например добавить при выборе агента "SNMP" специальную галочку, для того чтобы в случае если OID исчезает, мониторинг не считал это поводом просто перестать мониторить заданный OID, а поступал бы так же, как и в случае стандартного события? Вроде такого: OID есть- всё ок, OID'а нет- сгенерировать аларм.

Victor Kirhenshtein

Bez peredelki servera etu problemu normal'no ne reshit'. Ja dumaju sdelat' sledujuschie izmenenija - dobavit' flazok dlja DCI, chto esli OID ne suschestvuet, to generirovat' oshibku sbora dannih, a ne perevodit' v sostojanie not supported. Nu a na oshibku sbora dannih mozno postavit' threshold i dal'she obrabativat' kak obichno.

Anth0ny

полностью согласен, абсолютно адекватное решение проблемы =)
а когда можно ориентировочно ожидать воплощения решения в жизнь?

Victor Kirhenshtein

V techenii leta :) Tochnee poka skazat' ne mogu, ochen' mnogo raboti. Iz polozitel'nih momentov - chast' etoj raboti svjazana s razvitiem NetXMS.