Назад | Перейти на главную страницу

Пользовательские команды SNMP в Windows

Некоторое время я наблюдал за серверами UNIX / Linux с помощью SNMP. Изменение файла snmpd.conf и добавление чего-то вроде

view systemview included .1.2.3.4.5.6.789
pass .1.2.3.4.5.6.789 /bin/bash /bin/myscript.sh

позволяет мне запускать пользовательские сценарии для SNMP OID. У меня есть сценарий PowerShell в Windows, и мне нужно сделать то же самое, как / где мне это настроить и настроить?

Коробка - это Windows Server 2008 (я думаю R2)

Насколько я знаю, единственный способ сделать то, что вы ищете, - это реализовать агент расширения SNMP (DLL). Возможно, уже есть кто-то, кто реализовал агент расширения, который позволит вам выполнять произвольные команды (поскольку это звучит как удобная вещь), но я не знаком с ним.

У Microsoft есть различные документы по разработке и установке агентов расширения SNMP. Есть хорошая краткая статья о разработка агентов расширения SNMP в CodeProject тоже.

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

Как упоминалось выше, я не знаю ничего, что запускало бы сценарий после получения ловушки SNMP - сама Windows не действует как получатель ловушки, если вы не установите такой демон в Windows, она действительно может только отправить их .

Если вы пытаетесь что-то сделать, когда событие зарегистрировано в журнале событий, вам, вероятно, будет лучше использовать встроенный в Windows Server 2008 параметр «Присоединить задачу к этому событию ...», который вы увидите, щелкнув правой кнопкой мыши о любом событии в журнале событий.

Чтобы поднять фактическое прерывание SNMP при регистрации события, посмотрите на evntwin.exe или, если вам удобнее использовать CLI evntcmd.exe

Есть несколько программ, одна из которых я использовал в прошлом, это What's Up Gold, которые могут реагировать на полученные ловушки SNMP.

Если вы думаете, что я могу предоставить дополнительную информацию, пожалуйста, вернитесь ко мне.

-Льюис

РЕДАКТИРОВАТЬ: Возможно, что-то, что было бы полезно для вас, являющихся потребителями временных событий, но по существу требует, чтобы скрипт работал постоянно, и он использует VBScript, поэтому вам нужно будет адаптироваться к PowerShell или адаптировать скрипт PowerShell к VBScript. Смотреть на: http://msdn.microsoft.com/en-us/library/aa392396(v=VS.85).aspx

По сути, этот сценарий отслеживает журнал событий, но концепция остается той же.

sComputer = "."

Set oWMIService = GetObject("winmgmts:{(Security)}!\\" & sComputer & "\root\cimv2")

Set cEvents = oWMIService.ExecNotificationQuery _
   ("SELECT * FROM __InstanceCreationEvent WHERE " _
   & "Targetinstance ISA 'Win32_NTLogEvent'")

Do
Set oEvent = cEvents.NextEvent

    Select Case oEvent.TargetInstance.EventCode
    Case "100"
        Wscript.Echo "Event 100 occurred".
End Select
Loop

В случае, если кто-то наткнулся на это, в настоящее время, похоже, существует ряд бесплатных решений для Windows, которые могут обрабатывать сообщения ловушек SNMP: