Поделиться через


Сценарий мониторов и правил

 

Применимо к:System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

Сценарии наблюдения используются в том случае, если сбор данных невозможно осуществить с помощью других стандартных средств, таких как счетчики событий или производительности. Сценарий собирает данные от сведений об агенте и создает контейнер свойств с помощью MOM. Объект ScriptAPI, который устанавливается вместе с Operations Manager агента.

Сценарии наблюдения может записываться в любой язык сценария, который можно получить доступ к MOM. Объект ScriptAPI, который устанавливается на всех Operations Manager агентов. Консоль управления можно использовать для создания скриптов VBScript или JScript. Для использования Windows PowerShell скрипт, необходимо использовать другой Authoring tool, такие как Консоль разработки System Center Operations Manager 2007 R2 или Автор пакета Управления.

Контейнеры свойств

Сценарии наблюдения отправляют выходные данные как контейнер свойств, чтобы вычисления в выражении для монитора или сопоставлять данные производительности или события для правило сбора данных. Контейнер свойств — это набор значений, что каждый из которых имеет имя. Хотя рекомендуется использовать описательные определенного значения имя можно назначить любое имя. Контейнер свойств существует только во время жизненного цикла рабочего процесса. Сценарий следующем запуске рабочего процесса запускается и создает новый контейнер свойств с новыми значениями.

Один контейнер свойств может иметь любое число значений, несмотря на то, что весь набор данных не может превышать 4 МБ. Большинство сценариев потребуется только некоторые значения с общий размер далеко под это ограничение. Не является обязательным для всех значений, используемых рабочим процессом.

Скрипты создания контейнеры свойств с помощью метода CreatePropertyBag MOM. Объект ScriptAPI. Рабочий процесс использует значения из контейнера свойств с переменной $Data, используется следующий синтаксис:

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

Например сценарий создания данных о производительности может создать контейнер свойств со значениями в таблице ниже. В этой таблице показано имя значения, созданный скрипт и соответствующей переменной $Data, который будет использоваться для сопоставления данных о наборе свойств данных о производительности.

Имя контейнера значение свойства

Образец значения

Переменная

Имя объекта

MyObject

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

CounterName

MyCounter

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

Имя_экземпляра

MyInstance

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

Значение

10

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

Структура сценария

Следующий код показывает образец сценарий для демонстрации базовой структуры сценарий наблюдения наблюдения. Этот образец скрипта имеет следующие характеристики.

  • Принимает аргументы для имени компьютера, на котором выполняется скрипт и путь к расположению приложения.

  • Создает контейнер свойств со значениями ComputerName, InstanceName и 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)

Здесь рассматриваются подробные сведения о каждой части скрипта.

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

Первые две строки скрипта принимать аргументы. Эти значения ожидается в параметре Arguments правило или монитор выполнения скрипта. Скрипт можно использовать любое количество аргументов, необходимые для логики скрипта.

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

Следующие две строки создать контейнер свойств. Эти строки будут также без изменений в большинстве сценариев наблюдения. Основная цель остальная часть скрипта будет для добавления значений в наборе свойств, используя данные, собранные с компьютера агента.

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

После создания контейнера свойств, к нему можно добавить любое количество значений. Это можно сделать с AddValue в объекте контейнера свойств с помощью имени элемента и его значение. Этот пример использует явные значения. В фактический сценарий наблюдения дополнительный код было бы ожидать, что бы сбор сведений о компьютере агента, чтобы включить в эти значения.

oAPI.Return(oBag)

После добавления всех значений в наборе свойств, оно возвращается в рабочий процесс. Эта строка является обязательным и без него контейнера свойств удаляется при завершении сценария. Этот метод используется только в том случае, если скрипт создает контейнер одно свойство. Дополнительные сведения о скриптах, возвращающие несколько контейнеры свойств и условия, при использовании такой стратегии – это Cookdown раздел руководстве по созданию System Center Operations Manager 2007 R2.

Аргументы сценария

Большинство сценариев использования аргументов, которые являются значениями, которые отправляются сценарий из командной строки при запуске скрипта. С помощью аргументов позволяет один скрипт, используемый для нескольких сценариев без изменения самого сценария.

В сценарий наблюдения аргументы критически важны, поскольку может быть сведения, требующего скрипта, будут отличаться для каждого агента которой выполняется скрипт. Любое свойство целевого объекта для монитора или правила можно использовать для аргумента скрипта. Это значение разрешается отдельно для каждого агента во время выполнения сценария.

Аргументы осуществляется в консоли управления из Параметры кнопки. Отдельные аргументы должны разделяться пробелами в порядке, что они доступны в скрипт. Это равнозначно командной строки, которое предоставляется при запуске сценария в командной строке.

Каждый аргумент может быть явно заданное значение или переменную $Target, чтобы использовать значение свойства целевого объекта. Разрешаются любые переменные $Target, при запуске скрипта, чтобы скрипт предоставляется разрешенные значения в командной строке. Можно ввести в переменную $Target, если вы знаете правильный синтаксис. Это проще, но выберите свойство из целевой кнопку, которая отображает список всех свойств целевого объекта и его родительских элементов.

System_CAPS_importantВажно

Любую переменную $Target, значение которой может содержать пробелы, необходимо заключать в кавычки. Если значение содержит пробелы, а не заключено в кавычки, он будет будут видны сценарием как два отдельных аргумента. Кавычки убедитесь, что значение рассматривается как один аргумент. Если выбрать свойство из целевой меню, не будет включать в кавычки. Вам нужно ввести их в после выбора свойства.

Например выше пример сценария принимает два аргумента, имя компьютера и путь к приложению. Если он является частью монитора или правила, нацеленный на класс, размещенный в компьютер Windows класса компьютера имя может быть получен из основное имя свойства. Путь приложения являлся бы свойством целевого класса, аргументы могут выглядеть следующим образом. Обратите внимание кавычки вокруг свойства ApplicationPath, так как это может разрешаться в значение, содержащее пробел.

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

Предполагается, что вы присвоили скрипт имя MyScript.vbs, имя компьютера — MyServer01, и путь к приложению был C:\Program Files\Contoso\My Application, командную строку, которая будет выполняться для этого сценария будет:

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

Сценарий мониторы и правила разделов

  • Правила сбора данных сценария

    Создание правила, которое использует сценарий для сбора данных событий или производительности.

  • Мониторы сценария

    Создание монитора, оценивает результаты скрипта для задания состояния работоспособности.

  • Мониторы командной оболочки UNIX/Linux

    Создание монитора, который вычисляет результат выполнения команды UNIX/Linux, сценарий или построчную последовательность нескольких команд (с использованием конвейерных операторов).