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

Важно!
Сценарии наблюдения можно писать на языках VBScript или JScript в консоли управления. Сведения о создании сценариев наблюдения с помощью Windows PowerShell см. в разделе Scripts Monitors and Rules (Мониторы и правила сценариев) руководства по созданию и настройке.

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

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

Базовая структура сценария

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

  • создать объект для MOM.ScriptAPI;

  • создать контейнер свойств и добавить в него значения;

  • вернуть контейнер свойств.

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

  • В качестве аргументов принимаются имя компьютера, на котором выполняется сценарий, и путь к расположению приложения.

  • Создается контейнер свойств со значениями ComputerName, InstanceName и PerfValue.

Visual Basic Script  Скопировать код
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 "PerfValue", 1.0

oAPI.Return(oBag)

Определение сценария

Имя сценария

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

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

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

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

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

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

Visual Basic Script  Скопировать код
$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ "$Target/Property[Type="MyApp.MyClass"]/ApplicationPath$"

Значение времени ожидания сценария

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

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

Дополнительные сведения

См. раздел Scripts Monitors and Rules (Мониторы и правила сценариев) в руководстве пользователя.

См. также

Основные понятия

Создание выражения