Compartilhar via


Script monitores e regras

 

Aplica-se a: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

Os scripts de monitoramento são usados quando os dados necessários não podem ser coletados por outros meios padrão, como um evento ou contador de desempenho. O script coleta dados de informações sobre o agente e cria um recipiente de propriedades usando o MOM. Objeto ScriptAPI que é instalado com o Operations Manager agent.

Scripts de monitoramento podem ser escrito em qualquer linguagem de script que pode acessar o MOM. Objeto ScriptAPI que é instalado em todos os Operations Manager agentes. Você pode usar o console de operações para criar scripts em VBScript ou JScript. Para usar um Windows PowerShell script, você deve usar outra ferramenta de criação, como o Console de criação do System Center Operations Manager 2007 R2 ou Autor do MP.

Recipientes de propriedade

Os scripts de monitoramento enviam dados de saída como uma propriedade de pacote para que possa ser avaliada em uma expressão para um monitor ou mapeado para dados de desempenho ou um evento para uma regra de coleta. Um recipiente de propriedades é um conjunto de valores que cada um tem um nome. Qualquer nome pode ser atribuído, embora seja uma prática recomendada usar um nome descritivo do valor específico. Um recipiente de propriedades só existe durante a vida útil do fluxo de trabalho. Na próxima vez que o fluxo de trabalho é executado, o script é executado e cria um novo conjunto de propriedades com novos valores.

Um recipiente de propriedades pode ter qualquer valor numérico, embora todo o conjunto de dados não pode exceder 4 MB. A maioria dos scripts exigirá apenas alguns valores com um tamanho total muito sob esse limite. Não há nenhum requisito para todos os valores a serem usados pelo fluxo de trabalho.

Scripts criam recipientes de propriedade usando o método CreatePropertyBag no MOM. Objeto ScriptAPI. O fluxo de trabalho usa valores de um recipiente de propriedades com uma variável de $Data que usa a seguinte sintaxe:

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

Por exemplo, um script de criação de dados de desempenho pode criar um recipiente de propriedades com valores na tabela a seguir. Esta tabela mostra o nome do valor criado pelo script e a variável $Data correspondente que deve ser usada para mapear os dados do recipiente de propriedade aos dados de desempenho.

Nome do valor da propriedade recipiente

Valor de exemplo

Variável

ObjectName

MyObject

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

CounterName

Meucontador

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

InstanceName

MyInstance

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

Valor

10

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

Estrutura do script

O código a seguir mostra um exemplo de script para ilustrar a estrutura básica de um script de monitoramento de monitoramento. Esse script de exemplo tem as seguintes características.

  • Aceita argumentos para o nome do computador que está executando o script e um caminho do local do aplicativo.

  • Cria um recipiente de propriedades com valores denominados ComputerName, InstanceName e 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)

Detalhes de cada seção do script são discutidos aqui.

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

As duas primeiras linhas do script aceitam argumentos. Esses valores deve ser esperados para ser no parâmetro de argumentos da regra ou monitor a execução do script. O script pode usar qualquer número de argumentos que são necessários para a lógica do script.

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

As próximas duas linhas criam um recipiente de propriedades. Essas linhas também podem ser alteradas na maioria dos scripts de monitoramento. O principal objetivo do restante do script será adicionar valores para o recipiente de propriedades usando os dados coletados de computador do agente.

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

Depois que o recipiente de propriedades é criado, qualquer número de valores pode ser adicionado a ele. Você pode fazer isso com o AddValue seguido de método no objeto de recipiente de propriedades usando o nome do item de seu valor. Este exemplo usa valores explícitos. No script de monitoramento real, código adicional deve ser esperado que seria coletar informações do computador do agente para incluir esses valores.

oAPI.Return(oBag)

Depois que todos os valores são adicionados para o recipiente de propriedades, ele é retornado no fluxo de trabalho. Essa linha é obrigatória e não o recipiente de propriedades é descartado quando o script termina. Este método só é usado quando o script cria um recipiente de única propriedade. Para obter mais informações sobre os scripts que retornam vários recipientes de propriedade e condições quando essa estratégia é usada, consulte o Cookdown seção o guia de criação do System Center Operations Manager 2007 R2.

Argumentos de Script

A maioria dos scripts usam argumentos que são valores que são enviados para o script da linha de comando quando o script é executado. Usando argumentos permite que um único script a ser usado para vários cenários sem modificar o script propriamente dito.

Em um script de monitoração, argumentos são fundamentais porque pode haver informações que o script requer que será diferente em cada agente em que o script é executado. Qualquer propriedade do objeto de destino para a regra ou monitor pode ser usada para o valor de um argumento de script. Esse valor é resolvido individualmente em cada agente no momento em que o script é executado.

Argumentos são acessados no console de operações do parâmetros botão. Argumentos individuais devem ser separados por espaços na ordem em que elas são acessadas no script. Isso é idêntico à linha de comando que seria fornecida se o script for executado em uma linha de comando.

Cada argumento pode ser um valor explícito ou uma variável de $Target para usar o valor de uma propriedade no objeto de destino. Todas as variáveis $Target são resolvidas quando o script é executado para que o script é fornecido com os valores resolvidos na linha de comando. Você pode digitar na variável $Target se você souber a sintaxe apropriada. É mais fácil porém selecionar a propriedade de destino botão que lista todas as propriedades do objeto de destino e seus pais.

System_CAPS_importantImportante

Qualquer variável $Target, que possa ser resolvida para um valor que inclua um espaço, deve estar entre aspas. Se um valor inclui espaços e não tiver aspas, em seguida, ele aparecerá pelo script como dois argumentos distintos. As aspas garantirá que o valor é visto como um único argumento. Se você selecionar a propriedade de destino menu, ele não incluirá as aspas para você. Você precisa digitá-los no depois de selecionar a propriedade.

Por exemplo, o script de amostra anterior espera dois argumentos para o nome do computador e o caminho do aplicativo. Supondo que isso fazia parte de um monitor ou regra de destino em uma classe hospedada pelo computador Windows classe, o computador foi possível recuperar o nome da propriedade de nome principal. Se o caminho do aplicativo fosse uma propriedade na classe de destino, os argumentos podem ser semelhantes ao exemplo a seguir. Observe as aspas em torno da propriedade ApplicationPath, porque isso poderia ser resolvido para um valor que contém um espaço.

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

Supondo que você atribuiu o script de um nome de MyScript.vbs, o nome do computador foi MyServer01, e o caminho do aplicativo foi C:\Program Files\Contoso\My Application, a linha de comando que seria executada para esse script seria:

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

Tópicos de regras e monitores de script

  • Regras de coleta de script

    Criando uma regra que usa um script para coletar dados de eventos ou desempenho.

  • Monitores de script

    Criar um monitor que avalia os resultados de um script para definir o estado de integridade.

  • Monitores de comando do Shell UNIX/Linux

    Criar um monitor que avalia a saída da execução de um comando, script ou sequência de uma linha de vários comandos (usando operadores pipeline) do UNIX/Linux.