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

Мониторинг очередей сообщений

Я ищу простой способ контролировать очереди RabbitMQ из SCOM. В частности, я хочу получать уведомления, когда конкретная очередь (которую мы используем для «мертвых писем») не пуста.

RabbitMQ имеет веб-API RESTful (HTTP API управления RabbitMQ), который возвращает желаемые данные; он поддерживает только JSON. Я уже обернул этот вызов в библиотеке .NET. Я написал сценарий PowerShell для взаимодействия между этим и SCOM, но наш сетевой администратор не может заставить его работать. Он предпочел бы решение VBScript.

Я могу открыть библиотеку .NET для COM и вызвать ее из VBScript. Это кажется абсурдно сложным. Есть способ попроще?

Есть ли причина, по которой ваш сетевой администратор просто не вызывает ваш сценарий PowerShell из VBScript? Я знаю, что это не помогает решить эту абсурдную сложность, но, возможно, это самое простое решение. Скажите ему написать собственный монитор, содержащий этот простой фрагмент vbs:

Set objShell = CreateObject("WScript.Shell")
strPoSHCmd = "powershell.exe -noprofile -command C:\path\to\script.ps1"
objShell.Run strPoSHCmd

Отредактируйте C:\path\to\script.ps1 в соответствии с вашими потребностями. У вас также может быть vbscript, возвращающий значения из PowerShell (предположим, что ваш скрипт PS возвращает значение) в SCOM, создав MOM.ScriptAPI propertyBag, например:

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Set objShell = CreateObject("WScript.Shell")
strPoSHCmd = "powershell.exe -noprofile -command C:\path\to\script.ps1"
PSReturn = objShell.Run strPoSHCmd

Call oBag.AddValue("Output",PSReturn)
Call oAPI.Return(oBag)