WMI イベント

 

対象: System Center 2012 R2 Operations Manager、System Center 2012 - Operations Manager、System Center 2012 SP1 - Operations Manager

<_caps3a_sxs _xmlns3a_caps="https://schemas.microsoft.com/build/caps/2013/11"><_caps3a_sxstarget locale="ja-JP">WMI イベント オペレーティング システムで、または、独自の WMI イベントを作成するアプリケーションでは、特定のアクションを検出する WMI クエリから作成されます。 WMI イベントを使用して、プロセスの終了、ファイルの作成、レジストリ キーの変更などの操作を検出できます。 WMI イベントは保持されません。 そのため、エージェント サービスが実行されていないときに作成された WMI イベントは失われます。このガイドは、ユーザーが WMI 通知クエリの作成方法について理解していることを前提としています。 このトピックの概要とサンプル クエリについては、「Unlocking the Mystery of WMI Events in MOM (MOM における WMI イベントの謎を解き明かす)https://go.microsoft.com/fwlink/?LinkID=187607」を参照してください。WMI イベント ウィザード以下の表に、WMI イベントに利用可能なウィザードの一覧を示します。管理パック オブジェクト利用可能なウィザードモニター「Event Monitor Reset」の各標準メソッドを使用したシンプルなイベントの検出「Event Monitor Reset」の各標準メソッドを使用した繰り返しイベントの検出ルールアラート生成 WMI イベント ルールイベント収集 WMI イベント ルールWMI イベント ウィザードのオプションWMI イベント ルールまたはモニターのウィザードの実行時に、以下の表の各オプションの値を入力する必要があります。 各表は、ウィザードのページごとのオプションです。全般[全般] ページには、名前、カテゴリ、ターゲット、および保存先の管理パック ファイルなどのルールまたはモニターの全般設定が含まれています。オプション説明名前ルールまたはモニターに使用される名前。 ルールの名前は [作成] ウィンドウの [ルール] ビューに表示されます。 ビューまたはレポートを作成するとき、この名前を選択してこれにより収集されたデータを使用することができます。 モニターの名前は、ターゲット オブジェクトのヘルス エクスプローラーに表示されます。説明ルールまたはモニターの説明 (省略可能)。管理パックルールやモニターを保存する管理パック ファイル。管理パックの詳細については、「Selecting a Management Pack」を参照してください。ルール カテゴリ (ルールのみ)ルールのカテゴリ。 イベント収集ルールの場合は、[イベント コレクション] を指定します。 アラート ルールには、[アラート] を指定します。親モニター (モニターのみ)ヘルス エクスプローラーで、モニターの上位に配置される集合モニター。 詳細については、「Aggregate Monitors」を参照してください。Targetルールまたはモニターのターゲットに使用するクラス。 ルールまたはモニターは、このクラスのインスタンスを少なくとも 1 つ持つエージェント上で実行されます。 ターゲットの詳細については、「Targets, Groups, and Objects」を参照してください。ルールを有効にするモニターを有効にするルールまたはモニターを有効にするかどうかを指定します。WMI 構成 / WMI イベント プロバイダー[WMI 構成] ページで、WMI 名前空間、クエリ、ポーリング間隔を指定できます。 収集ルールやアラート ルール、および手動リセットまたはタイマー リセットを使用したモニターを対象に、単一の [WMI 構成] ページが表示されます。 [Windows イベント リセット] を使用するモニターについては、[WMI イベント プロバイダー] ページでエラー状態と正常状態の両方のクエリを定義します。オプション説明WMI 名前空間WMI クエリで使用するクラスを含む名前空間。クエリ特定の WMI イベントの発生を検出する WMI 通知クエリ。Poll Intervalイベントの発生を検出するために Operations Manager が WMI をポーリングする頻度を指定します。 これには、通知クエリの WITHIN 句で使用される値と同じ値を指定します。WMI 適合ポーリング間隔式の作成[式の作成] ページでは、WMI クエリからのデータに適用するフィルターを定義できます。 手動リセットあるいはタイマー リセットを使用する WMI イベント モニターの場合、単一の [式の作成] ページが表示されます。 [WMI イベント リセット] を使用するモニターの場合は、各ヘルス状態に 1 つの式が使用されます。WMI クエリの WHERE 句で条件を指定できるので、通常、WMI イベント モニターでは式は必要とされません。 複数のレコードを返すことがクエリに求められる場合のみ、式が必要になります。 WMI イベント ルールはクエリ自体の条件に依存するため、式を使用できません。 ただし、オペレーション コンソール ウィザードでは、WMI イベント モニターで条件を指定する必要があります。 条件が必要とされない場合、ウィザードでダミー条件を指定した後、作成後にモニターのプロパティを表示して削除する必要があります。WMI イベントで使用できるプロパティは、監視対象のイベントの種類によって異なります。 また、クエリに含まれる WMI クラスのプロパティによっても、使用できるプロパティは異なります。 そのデータは、1 つ以上の WMI クラス インスタンスのプロパティ コレクションが含まれるプロパティ バッグ形式になります。 WMI イベントは、__InstanceCreationEvent または __InstanceDeletionEvent のいずれかを使用するクエリを使用して作成され、これには作成または削除されるインスタンスを含む TargetInstance と呼ばれるコレクションが 1 つ含まれます。 __InstanceModificationEvent を使用して作成した WMI イベントには PreviousInstance と呼ばれる追加のコレクションが含まれます。WMI イベントからのプロパティの構文は次のとおりです。Collection[@Name='TargetInstance']/Property[@Name='Caption']たとえば、以下の WMI クエリは c:\MyApp\MyAppLog.txt という名前のファイルにおける変更を監視します。SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'CIM_DataFIle' AND TargetInstance.Name = 'C:\\MyApp\\MyAppLog.txt'データがファイルに追加され、ファイル サイズが変化してクエリがトリガーされたと想定した場合、このクエリのプロパティの例は以下の表のようになります。プロパティ構文元のファイル サイズCollection[@Name=’PreviousInstance’]/Property[@Name='FileSize']新しいファイル サイズCollection[@Name=’TargetInstance’]/Property[@Name='FileSize']自動リセット タイマー[自動リセット タイマー] ページはタイマー リセット モニターのみで利用可能です。 アラートが生成された後、アラートが自動的に解決されるまでに経過する必要がある時間の設定が可能です。ヘルスの構成[ヘルスの構成] ページはモニターでのみ利用可能です。 各イベントに設定されるヘルス状態を指定できます。 手動リセット モニターの場合、[手動リセット] 条件は [健全] に設定され、[イベント発生] 条件によりモニターが [警告] または [重大] のどちらの状態に設定されるかを指定できます。 [タイマー リセット] または [WMI イベント リセット] については、各イベントで設定されるヘルス状態を指定できます。 通常、最初のイベントはモニターを [警告] または [重大] に設定し、2 番目のイベントまたはタイマーはモニターを [健全] に設定します。アラートの構成[アラートの構成] ページはモニターおよびアラート ルールでのみ利用可能です。 各オプションについては「Alerts」を参照してください。WMI イベント モニターとルールの作成次の手順を使用し、以下の詳細に基づいて Operations Manager で WMI イベント モニターを作成します。特定のサービスがインストールされているすべてのエージェントで動作する。エージェント コンピューターでメモ帳の起動時に、モニターを "重大" 状態に設定する。エージェントコンピューターでメモ帳の終了時に、モニターを "健全" 状態に設定する。実際にはメモ帳の起動時に監視の最小値があるため、この例は現実的なシナリオを表してはいません。 これは、モニターで 2 種類の WMI イベントを監視する共通シナリオを示しています。 エージェント コンピューターでメモ帳を起動および終了して、簡単にテストを実行できるため、例としてメモ帳を使用しています。WMI イベント モニターを作成するには監視対象のアプリケーションに管理パックがない場合は、「Selecting a Management Pack」のプロセスを使用して作成します。「To create a Windows Service template」のプロセスを使用して新しいターゲットを作成します。 テスト エージェントにインストールされたどのサービスでも、このテンプレートに使用できます。オペレーション コンソールで、[作成] ワークスペースを選択します。[モニター] を右クリックし、[モニターの作成] を選択し、[ユニット モニター] を選択します。[モニターの種類] ページで、次の操作を行います。[WMI イベント]、[シンプルなイベントの検出]、[WMI イベント リセット] の順に展開します。手順 1 の管理パックを選択します。[次へ] をクリックします。[全般] ページで、次の操作を行います。[名前] ボックスに「MyApplication WMI Event Error」と入力します。[モニターのターゲット] ボックスの横にある [選択] をクリックします。[モニターのターゲット] の横で、[選択] をクリックして、手順 2 で作成したターゲットの名前を選択します。[親モニター] ボックスで、[可用性] を選択します。[モニターを有効にする] ボックスをオンのままにして、[次へ] をクリックします。[最初の WMI イベント プロバイダー] ページで、次の操作を実行します。[WMI 名前空間] ボックスに「root\cimv2」と入力します。[クエリ] ボックスに以下の WMI クエリを入力します。Select * From __InstanceCreationEvent WITHIN 60 Where TargetInstance ISA 'Win32_Process' and TargetInstance.Name = 'notepad.exe'[ポーリング間隔] ボックスに「60」と入力します。[次へ] をクリックします。[最初の式の作成] ページで、次の操作を実行します。この例では、条件が WMI クエリに含まれているので、モニターには式は必要ありません。 オペレーション コンソールの WMI イベント ウィザードでは各イベントに式が必要となるため、ウィザードを完了するためにダミー式を入力し、モニター作成後に削除します。[挿入] をクリックします。[パラメーター名] ボックスに「Dummy」と入力します。[演算子] ボックスで、[次の値と等しい] を選択します。[値] ボックスに「Dummy」と入力します。[次へ] をクリックします。[2 番目の WMI イベント プロバイダー] ページで次の操作を実行します。[WMI 名前空間] ボックスに「root\cimv2」と入力します。[クエリ] ボックスに以下の WMI クエリを貼り付けます。Select * From __InstanceDeletionEvent WITHIN 60 Where TargetInstance ISA 'Win32_Process' and TargetInstance.Name = 'notepad.exe'[ポーリング間隔] ボックスに「60」と入力します。[次へ] をクリックします。[2 番目の式] ページで次の操作を実行します。[挿入] をクリックします。[パラメーター名] ボックスに「Dummy」と入力します。[演算子] ボックスで、[次の値と等しい] を選択します。[値] ボックスに「Dummy」と入力します。[次へ] をクリックします。[ヘルスの構成] ページで、次の操作を行います。[FirstEventRaised] の横で、[ヘルス状態] を [重大] に変更します。[次へ] をクリックします。[アラートの構成] ページで、次の操作を行います。[このモニターのアラートを生成する] をオンにします。[次の場合にアラートを生成する] ボックスで、[モニターのヘルス状態が重大状態にあります] を選択します。自動的にアラートを解決するように、このボックスが選択されたままにします。[アラート名] ボックスに、「Notepad process detected」(検出したメモ帳プロセス) と入力します。[アラートの説明] の横にある省略記号ボタンをクリックします。[値] ボックスの内容をクリアし、「Path of executable:」(実行可能ファイルへのパス:) と入力します。[データ]、[収集]、[プロパティ] の順にクリックします。変数に次のように置換します。 << INT >> から"TargetInstance"と << 文字列 >> で ExecutablePathです。 最終的なテキスト、 値 ボックスにする必要があります 実行可能ファイルのパス: $Data/Context/Collection["TargetInstance"]/Property[@Name="ExecutablePath"]$[OK] をクリックします。[作成] をクリックします。[MyApplication WMI Event Error] を右クリックし、[プロパティ]を選択します。[最初の式] タブで、[削除] をクリックします。[2 番目の式] タブで、[削除] をクリックします。[OK] をクリックします。Event Monitors and Rules Event Monitor Reset Repeating Events Alerts <_caps3a_sxssource locale="en-US">WMI events are created from WMI queries that detect particular actions in the operating system or in applications that create their own WMI events. These events can be used to detect such actions as a process ending, a file being created, or a registry key being modified. WMI events are not persisted. Therefore, any WMI events that are created when the agent service is not running are lost.This guide assumes knowledge of how to build a WMI notification query. For a an overview of this topic and sample queries see Unlocking the Mystery of WMI Events in MOMhttps://go.microsoft.com/fwlink/?LinkID=187607.WMI Event WizardsThe table below lists the wizards that are available for WMI events.Management Pack ObjectWizards AvailableMonitorsSimple Event Detection using each of the standard Event Monitor Reset methodsRepeated Event Detection using each of the standard Event Monitor Reset methodsRulesAlert Generating WMI event ruleEvent collection WMI event ruleWMI Event Wizard OptionsWhen you run a WMI event rule or monitor wizard, you will need to provide values for options in the following tables. Each table represents a single page in the wizard.GeneralThe General page includes general settings for the rule or monitor including its name, category, target, and the management pack file to store it in.OptionDescriptionNameThe name used for the rule or monitor. For a rule, the name appears in the Rules view in the Authoring pane. When you create a view or report, you can select this name to use the data collected by it. For a monitor, the name appears in the Health Explorer of any target objects.DescriptionOptional description of the rule or monitor.Management PackManagement pack file to store the rule or monitor.For more information on management packs, see Selecting a Management Pack.Rule Category (Rules only)The category for the rule. For an event collection rule, this should be Event Collection. For an alerting rule, this should be Alert.Parent Monitor (Monitors only)The aggregate monitor that the monitor will be positioned under in the Health Explorer. For more information, see Aggregate Monitors.TargetThe class to use for the target of the rule or monitor. The rule or monitor will be run on any agent that has at least one instance of this class. For more information on targets, see Targets, Groups, and Objects.Rule is enabledMonitor is enabledSpecifies whether the rule or monitor is enabled.WMI Configuration / WMI Event ProviderThe WMI Configuration Page allows you to provide the WMI namespace, query, and poll interval. There will be a single WMI Configuration page for a collection or alerting rule and for a monitor using manual or timer reset. For a monitor using WMI Event Reset, there will be a WMI Event Provider page to define the query for both the error condition and for the healthy condition.OptionDescriptionWMI NamespaceThe namespace containing the class that is used in the WMI query.QueryWMI notification query that looks for the occurrence of a particular WMI event.Poll IntervalSpecifies how frequently Operations Manager will poll WMI for the occurrence of the event. This value should be the same as the value used in the WITHIN clause of the notification query.WMI matching poll intervalsBuild ExpressionThe Build Expression page allows you to define a filter for the data coming from the WMI query. There will be a single Build Expression page for a WMI event monitor using manual or timer reset. For a monitor using WMI Event Reset, there is an expression for each health state.Because criteria can be specified in the WHERE clause of the WMI query, an expression is frequently not required in a WMI event monitor. It is only required if the query is expected to return multiple records. WMI event rules rely on the criteria in the query itself and don’t allow an expression. The Operations console wizards though require that criteria be specified in WMI Event monitors. If no criteria is required, then dummy criteria must be specified in the wizard and then removed by viewing the properties of the monitor after it is created.The properties available for a WMI event will vary, depending on the kind of event being monitored. The properties available will also vary, depending on the properties of the WMI class included in the query. The data will be in the form of a property bag that has a collection of properties for one or more WMI class instances. WMI events created by using a query that uses either __InstanceCreationEvent or __InstanceDeletionEvent will have a single collection called TargetInstance with the instance being either created or deleted. WMI events created by using __InstanceModificationEvent will have an additional collection called PreviousInstance.The syntax for properties from a WMI event is as follows:Collection[@Name='TargetInstance']/Property[@Name='Caption']For example, the following WMI query monitors for the change in a file that is named c:\MyApp\MyAppLog.txt.SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'CIM_DataFIle' AND TargetInstance.Name = 'C:\\MyApp\\MyAppLog.txt'Assuming that data is added to the file changing the file size and triggering the query, examples of properties from this query are shown in the following table:PropertySyntaxOriginal file sizeCollection[@Name=’PreviousInstance’]/Property[@Name='FileSize']New file sizeCollection[@Name=’TargetInstance’]/Property[@Name='FileSize']Auto Reset TimerThe Auto Reset Timer page is only available for timer reset monitors. It allows you to set the time that must pass after the alert is created before the alert is automatically resolved.Configure HealthThe Configure Health page is only available for monitors. It allows you to specify the health state that will be set for each of the events. For a manual reset monitor, the Manual Reset condition will be Healthy, and you can specify whether the Event Raised condition will set the monitor to a Warning or a Critical state. For a Timer Reset or an WMI Event Reset, you can specify the health state set by each event. The first event will typically set the monitor to Warning or Critical while the second event or the timer will set the monitor to Healthy.Configure AlertsThe Configure Alerts page is only available for monitors and alerting rules. Its options are explained in Alerts.Creating WMI event monitors and rulesThe following procedure shows how to create a WMI event monitor in Operations Manager with the following details:Runs on all agents with a particular service installed.Sets the monitor to a critical state when Notepad is started on the agent computer.Sets the monitor to a healthy state when Notepad is ended on the agent computer.This example is not meant to illustrate a real world scenario since there would be minimal value in monitoring when Notepad is started. It does through represent a common scenario of monitoring two different WMI events in a monitor. Using Notepad provides a sample that is easy to test by starting and stopping Notepad on the agent computer.To create a WMI event monitorIf you don’t have a management pack for the application that you are monitoring, create one using the process in Selecting a Management Pack.Create a new target using the process in To create a Windows Service template. You can use any service installed on a test agent for this template.In the Operations console, select the Authoring workspace.Right-click Monitors, select Create a Monitor, and then select Unit Monitor.On the Monitor Type page, do the following:Expand WMI Events, then Simple Event Detection, and then WMI Event Reset.Select the management pack from step 1.Click Next.On the General page, do the following:In the Name box, type MyApplication WMI Event Error.Click Select next to the Monitor Target box.Next to Monitor Target click Select and then select the name of the target that you created in step 2.In the Parent Monitor box, select Availability.Leave the Monitor is enabled box checked , select and click Next.On the First WMI Event Provider page, do the following:In the WMI Namespace box, type root\cimv2.In the Query box, type the following WMI query.Select * From __InstanceCreationEvent WITHIN 60 Where TargetInstance ISA 'Win32_Process' and TargetInstance.Name = 'notepad.exe'In the Poll Interval box, type 60.Click Next.On the Build First Expression page, do the following:In this example, criteria is included in the WMI query, so no expression is required in the monitor. Since the WMI event wizard in the Operations console requires an expression for each event, dummy expressions will be provided to complete the wizard and then deleted once the monitor is created.Click Insert.In the Parameter Name box type Dummy.In the Operator box select Equals.In the Value box type Dummy.Click Next.On the Second WMI Event Provider page, do the following:In the WMI Namespace box, type root\cimv2.In the Query box, paste the following WMI query.Select * From __InstanceDeletionEvent WITHIN 60 Where TargetInstance ISA 'Win32_Process' and TargetInstance.Name = 'notepad.exe'In the Poll Interval box, type 60.Click Next.On the Second Expression page, do the following:Click Insert.In the Parameter Name box type Dummy.In the Operator box select Equals.In the Value box type Dummy.Click Next.On the Configure Health page, do the following:Next to FirstEventRaised, change the Health State to Critical.Click Next.On the Configure Alerts page, do the following:Check Generate alerts for this monitorIn the Generate an alert when box, select The monitor is in a critical health state.Leave the box selected to automatically resolve the alert.In the Alert name box, type Notepad process detectedClick the ellipse button next to Alert description.Clear the contents of the Value box and then type Path of executable: .Click Data, then Collection, then Property.In the variable, replace <<INT>> with "TargetInstance" and <<STRING>> with ExecutablePath. The final text in the Value box should be Path of executable: $Data/Context/Collection["TargetInstance"]/Property[@Name="ExecutablePath"]$Click OK.Click Create.Right-click MyApplication WMI Event Error and select Properties.On the First Expression tab, click Delete.On the Second Expression tab, click Delete.Click OK.Event Monitors and Rules Event Monitor Reset Repeating Events Alerts