Pandora FMS community forums

Full Version: Ayuda con consulta WMI
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Estimados

Estoy monitoreando el estado de servicio McShield de mcafee en servdidores Windows. Para esto lo he efectuado con Generic String, WMI donde la consulta es select Name, State from Win32_Service where name = "McShield" y me trae el valor OK.

Lo que necesito es que cuando me traiga un valor de fallo o Stoped, pueda alarmarlo. Tengo esta duda porque solo veo que puedo alarmar estados con solo numeros minimos o maximos.

Gracias.
Hola de nuevo Wink

Cuidado a la hora de distinguir entre estado normal, advertencia y crítico y las alarmas asociadas a módulos... son una cosa muy distinta. Puedes definir alarmas en módulos independientemente del estado en el que se encuentra.

No hace falta que un módulo tenga que entrar en estado crítico para activar una alarma... ese es solo uno de los disparadores posibles para la alarma asociada al módulo.

Hay otros disparadores más específicos que tienen más que ver con tu caso concreto.

Tal vez te ayude un poco en este tema una discusión previa que tuve con otro usuario a la hora de definir alertas, pues el modo de alerta que tratamos en ese tema es uno de los que te convienen:

Definiendo alertas On Change

En tu caso, crea una plantilla de alerta nueva para este evento, usando una accion y comandos existentes o crea unos nuevos, lo que te venga mejor.

Para saber como, te recomiendo una lectura previa de:

Guía rápida de configuración de alertas en Pandora FMS

Puedes definir el disparador de la alerta en la plantilla bien cuando el valor cambie (On Change), aunque si quieres recibir la alerta no cada vez que cambie sino unicamente cuando ponga FAIL o STOPPED, usa un disparador para expresiones regulares con este formato:

Value: palabra1|palabra2|...|palabraN

Una vez creada la alerta, asóciala al módulo en cuestión y ahí lo tienes.

Si tienes más dudas tan solo sigue escribiendo. Wink

Saludos.
Si,  ahora entiendo los "tipos" de alarmas que pueden ser buenas o malas y veo que me he expresado de forma erronea. Lo correcto es que cuando el modulo me traiga el texto PAUSSED, esto pase a estado critico y asi se pueda reflejar en mi mapa Visual.
Claro, cuando tengo modulos PING (como me trae numeros) le puedo asociar los rangos de un estado normal, de advertencia o critico, pero cuando no traigo numeros y en este caso texto?.

Ahh esto te puede servir. Esto lo necesito para mi mapa visual debido a que a los agentes les tengo asociada una animacion en donde el estado normal es una figura verde y el estado critico es rojo. Me funciona de maravillas con PING.

Gracias! Smile
De nada! Smile

Otra solución sería probar a escribir un script que procese esa salida y parsearlo de forma que a cada uno se le asocie un valor numérico (OK = 1, STOPPED, PAUSED = 0), y sea ese el valor que muestre a la salida, para así definir un módulo booleano y que entre en estado crítico si el elemento en cuestión está parado.

Un saludo!
(06-06-2011, 07:58 AM)tpalacios link Wrote: [ -> ]De nada! Smile

Otra solución sería probar a escribir un script que procese esa salida y parsearlo de forma que a cada uno se le asocie un valor numérico (OK = 1, STOPPED, PAUSED = 0), y sea ese el valor que muestre a la salida, para así definir un módulo booleano y que entre en estado crítico si el elemento en cuestión está parado.

Un saludo!

MM, esa es la solución, pero me puedes orientar con el script?.

Saludos!
Seria ideal, que para la proxima version, los umbrales de  estado tambien pudieran ser en formato texto.
Sobre la orientación con el script premier... tienes la solución al problema y que es lo que tiene que hacer dicho script para que funcione como quieres... respecto al código o la metodología sobre como hacerlo, te recomiendo que busques ejemplos varios en la web, y toma de ellos lo que necesites para hacerlo... te aseguro que hay cientos y que muchos sirven para tu propósito. Wink

Y sobre definir umbrales de estado en los módulos en formato texto... por favor podrías explicarme en que caso concreto eso podría ser necesario? Porque hasta ahora es posible definir alertas basandose en expresiones regulares que se disparen cuando el string valga esto o esto o esto... etc.

Saludos!
hola, buenos dias

lo del script para parsear los resultados lo puedes hacer en vbs. En internet hay multitud de ejemplos para ejecutar consultas wmi por vbs. Entonces cuando tengas el resultado de la consulta wmi puedes preguntar con un if por el valor del resultado y alli retornar el resultado que te interese.

si necesitas algun ejemplo me avisas que lo busco de algun modulo que tenga hecho y te lo cuelgo aqui.

gracias
(06-23-2011, 06:31 AM)alumbreras link Wrote: [ -> ]hola, buenos dias

lo del script para parsear los resultados lo puedes hacer en vbs. En internet hay multitud de ejemplos para ejecutar consultas wmi por vbs. Entonces cuando tengas el resultado de la consulta wmi puedes preguntar con un if por el valor del resultado y alli retornar el resultado que te interese.

si necesitas algun ejemplo me avisas que lo busco de algun modulo que tenga hecho y te lo cuelgo aqui.

gracias

Gracias a ti. Espero el ejemplo. Smile
Hola de nuevo,

Te paso el ejemplo.

Code:
Option Explicit
Dim objWMIService, objItem, colItems
Dim strComputer, strList

strComputer = "."


Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")


Set colItems = objWMIService.ExecQuery("Select * from Win32_Service where Name = 'AppMgmt'")


For Each objItem in colItems

if objItem.State = "Running" then
    WScript.StdOut.WriteLine "1"
else
    WScript.StdOut.WriteLine "0"
end if

Next

WSCript.Quit

Para crear el modulo lo tienes que hacer con :
Code:
module_exec cscript.exe -nologo nombrefichero.vbs

* Asegurate que la ruta donde esta el cscript.exe esta dentro del path, si no la tienes debes poner la ruta completa

si necesitas alguna aclaracion del script me lo comentas

gracias

Pages: 1 2