Monitorar filas de mensagens

1

Estou procurando uma maneira simples de monitorar as filas do RabbitMQ do SCOM. Em particular, eu quero ser notificado quando uma fila específica (uma que usamos para "cartas mortas") não estiver vazia.

O RabbitMQ tem uma API da Web RESTful (a API HTTP de gerenciamento do RabbitMQ) que retornará os dados desejados; suporta apenas JSON. Eu já envolvi a chamada para isso em uma biblioteca .NET. Escrevi um script do PowerShell para fazer interface entre ele e o SCOM, mas nosso administrador de rede não consegue fazer com que ele funcione. Ele preferiria uma solução VBScript.

Eu posso expor a biblioteca .NET para COM e chamar isso de VBScript. Isso parece absurdamente complexo. Existe uma maneira mais simples?

    
por TrueWill 30.01.2012 / 19:47

1 resposta

1

Alguma razão para o seu administrador de rede não chamar seu script powershell de um VBScript? Eu sei que isso não ajuda a complexidade absurda, mas pode ser a solução mais fácil. Diga-lhe para escrever um monitor personalizado contendo este simples pedaço de vbs:

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

Edite o C:\path\to\script.ps1 para atender às suas necessidades. Você também pode ter o vbscript retornando os valores do PowerShell (supondo que seu script PS retorne um valor) ao SCOM, criando um propertyBag do MOM.ScriptAPI, assim:

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)
    
por 17.02.2012 / 01:53