Monitores de secuencia de comandos y reglas

 

Se aplica a: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

Los scripts de supervisión se usan cuando no se pueden recopilar los datos requeridos por otros medios estándar, como un contador de rendimiento o de eventos. La secuencia de comandos recopila datos de información del agente y crea una bolsa de propiedades mediante el MOM. Objeto ScriptAPI que se instala con el Operations Manager agente.

Supervisión de secuencias de comandos puede escribirse en cualquier lenguaje de secuencia de comandos que puede tener acceso a la de MOM. Objeto ScriptAPI que se instala en todos Operations Manager agentes. Puede utilizar la consola del operador para crear secuencias de comandos en VBScript o JScript. Para usar un Windows PowerShell secuencia de comandos, debe usar otra herramienta de creación como la Consola de creación de System Center Operations Manager 2007 R2 o Autor del módulo de administración.

Contenedores de propiedades

Scripts de supervisión envían los datos de salida como una propiedad de contenedor para que se puede evaluar en una expresión para un monitor o asignan a los datos de rendimiento o un evento para una regla de recopilación. Una bolsa de propiedades es un conjunto de valores que cada uno tiene un nombre. Puede asignar cualquier nombre aunque es una práctica recomendada de usar un nombre descriptivo del valor determinado. Solo existe una bolsa de propiedades durante la vida del flujo de trabajo. La próxima vez que se ejecuta el flujo de trabajo, la secuencia de comandos se ejecuta y crea un nuevo contenedor de propiedades con los nuevos valores.

Una bolsa de propiedades puede tener cualquier valor numérico, aunque todo el conjunto de datos no puede superar los 4 MB. La mayoría de las secuencias de comandos sólo requerirá algunos valores con un tamaño muy por debajo de este límite total. No hay ningún requisito para todos los valores que se usará el flujo de trabajo.

Las secuencias de comandos mediante el método CreatePropertyBag en la MOM para crear contenedores de propiedades. Objeto ScriptAPI. El flujo de trabajo usa los valores de una bolsa de propiedades con una variable de $Data que utiliza la sintaxis siguiente:

$Data/Property[@Name="PropertyName"]

Por ejemplo, una secuencia de comandos crea los datos de rendimiento puede crear un contenedor de propiedades con valores en la tabla siguiente. Esta tabla muestra el nombre del valor creado por la secuencia de comandos y la variable $Data correspondiente que se utilizará para asignar los datos de la bolsa de propiedades a los datos de rendimiento.

Nombre del valor de bolsa de propiedades

Valor de ejemplo

Variable

ObjectName

MyObject

$Data/Property[@Name='ObjectName']$

CounterName

MIContador

$Data/Property[@Name='CounterName']$

InstanceName

MyInstance

$Data/Property[@Name='InstanceName']$

Valor

10

$Data/Property[@Name='Value']$

Estructura de la secuencia de comandos

El código siguiente muestra un ejemplo de script para ilustrar la estructura básica de una secuencia de comandos de supervisión de supervisión. Este script de ejemplo tiene las siguientes características.

  • Acepta argumentos para el nombre del equipo que ejecuta la secuencia de comandos y una ruta de acceso de la ubicación de la aplicación.

  • Crea un contenedor de propiedades con los valores denominados ComputerName InstanceName y PerfValue.

sComputerName = WScript.Arguments(0) 
sApplicationPath = WScript.Arguments(1)

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

oBag.AddValue "ComputerName", sComputerName
oBag.AddValue "InstanceName", "MyInstance"
oBag.AddValue "Value", 1.0

oAPI.Return(oBag)

Detalles de cada sección de la secuencia de comandos se tratan aquí.

sComputerName = WScript.Arguments(0) 
sApplicationPath = WScript.Arguments(1)

Las dos primeras líneas de la secuencia de comandos aceptan argumentos. Se espera que estos valores en el parámetro de argumentos de la regla o monitor que se ejecuta la secuencia de comandos. La secuencia de comandos puede utilizar cualquier número de argumentos que se requieren para la lógica de la secuencia de comandos.

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

Las dos líneas siguientes crean un contenedor de propiedades. Estas líneas también permanece invariable en secuencias de comandos de supervisión mayoría. El propósito principal del resto de la secuencia de comandos será agregar valores a la bolsa de propiedades mediante el uso de datos que se recopilan desde el equipo del agente.

oBag.AddValue "ComputerName", sComputerName
oBag.AddValue "InstanceName", "MyInstance"
oBag.AddValue "Value", 1.0

Una vez creada la bolsa de propiedades, cualquier número de valores puede agregarse a él. Debe hacerlo con el AddValue método en el objeto de contenedor de propiedad con el nombre del elemento seguido de su valor. Este ejemplo utiliza los valores explícitos. En la secuencia de comandos de supervisión actual, se espera código adicional que podría recopilar información desde el equipo del agente para incluir en estos valores.

oAPI.Return(oBag)

Después de que todos los valores se agregan a la bolsa de propiedades, se devuelve al flujo de trabajo. Se requiere esta línea y sin él se descarta la bolsa de propiedades cuando finaliza la secuencia de comandos. Este método sólo se utiliza cuando la secuencia de comandos crea solo una bolsa de propiedades único. Para obtener más información acerca de las secuencias de comandos que devuelven varios contenedores de propiedades y las condiciones cuando se usa esta estrategia, consulte el Cookdown sección de la Guía de creación de System Center Operations Manager 2007 R2.

Argumentos de secuencia de comandos

La mayoría de secuencias de comandos utiliza argumentos, que son valores que se envían a la secuencia de comandos desde la línea de comandos cuando se ejecuta la secuencia de comandos. El uso de argumentos permite una única secuencia de comandos que se usará para varios escenarios sin modificar la secuencia de comandos.

En un script de supervisión, argumentos son importantes porque puede haber información que la secuencia de comandos requiere que sea diferente en cada agente que se ejecuta la secuencia de comandos. Cualquier propiedad de objeto de destino de la regla o monitor puede utilizarse para el valor de un argumento de secuencia de comandos. Este valor se resuelve individualmente en cada agente en el momento en que se ejecuta la secuencia de comandos.

Se obtiene acceso a argumentos en la consola del operador de la parámetros botón. Los argumentos individuales deben estar separados por espacios en el orden en que se tiene acceso en la secuencia de comandos. Esto es idéntico a la línea de comandos que se proporcionaría si la secuencia de comandos se ejecuta en una línea de comandos.

Cada argumento puede ser un valor explícito o una variable $Target para usar el valor de una propiedad del objeto de destino. Las variables $Target se resuelven cuando se ejecuta la secuencia de comandos para que la secuencia de comandos se proporciona con los valores resueltos en la línea de comandos. Puede escribir en la variable $Target si conoce la sintaxis correcta. Sin embargo es más fácil seleccionar la propiedad de destino botón que muestra todas las propiedades del objeto de destino y sus elementos primarios.

System_CAPS_importantImportante

Cualquier variable $Target que se pueda resolver con un valor que incluya un espacio debe ponerse entre comillas. Si un valor incluye espacios y no tiene comillas, luego, lo verán la secuencia de comandos como dos argumentos distintos. Las comillas se asegurará de que el valor se ve como un único argumento. Si selecciona la propiedad de destino menú, no se incluyen las comillas automáticamente. Debe escribir estas en después de seleccionar la propiedad.

Por ejemplo, la secuencia de comandos anterior espera dos argumentos para el nombre del equipo y la ruta de acceso de la aplicación. Suponiendo que esto formase parte de un monitor o regla dirigido a una clase que hospeda el equipo Windows de clase, el equipo se pudo recuperar el nombre de la propiedad de nombre principal. Si la ruta de acceso de la aplicación fuera una propiedad de la clase de destino, los argumentos pueden ser similares al ejemplo siguiente. Observe las comillas alrededor de la propiedad ApplicationPath, porque se puede resolver como un valor que contiene un espacio.

$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ "$Target/Property[Type="MyApp.MyClass"]/ApplicationPath$"

Suponiendo que dio un nombre de la secuencia de comandos MyScript.vbs, el nombre de equipo era MyServer01, y la ruta de acceso de la aplicación era C:\Program Files\Contoso\My Application, la línea de comandos que se ejecutan para esta secuencia de comandos sería:

MyScript.vbs MyServer01 "C:\Program Files\Contoso\My Application"

Temas de reglas y monitores de secuencia de comandos