SCOM2007 / イベントログ内のワークフロー名から、アラートの元となった「ルール」、「モニタ」及び「検出」を特定する方法について

マイクロソフト株式会社マネージャビリティサポートチームの佐々木です。 

SCOM2007 では、イベントログで示されているワークフロー名から、アラートの元となっている「ルール」、「モニタ」及び「検出」を特定することが可能です。

以下のようなイベントログが出力されていた場合を例にします。
==================================================
イベント ソース: Health Service Modules
イベント ID : 21402 
コンピュータ: SERVER01
ユーザー: N/A
説明:
構成したタイムアウトの 30 秒を過ぎて実行したため、次の 4:15:02 で始まるプロセスは、強制終了しました。
実行されたコマンド: "C:\WINDOWS\system32\cscript.exe" //NoLogo "C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 4\658\LogEndToEndEvent.js"
作業ディレクトリ: C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files 4\658\ 1 つ以上のワークフローがこの影響を受けました。
ワークフロー名: Microsoft.SystemCenter.AgentManagement.LogEndToEndEvent
インスタンス名:pc1.test.local
インスタンス ID: {2FCD4541-C1D0-610F-4CC1-C193EA527808}
管理グループ: TEST
==================================================

ワークフロー名は以下です。
Microsoft.SystemCenter.AgentManagement.LogEndToEndEvent

下記のSQLクエリを「OperationsManager」データベースに対して実行します。
SET @ObjectName 以降に「ワークフロー名」を入力します。

実行するSQLクエリ
==================================================
 Use OperationsManager
 DECLARE @ObjectName NVARCHAR(256)
 SET @ObjectName = 'Microsoft.SystemCenter.AgentManagement.LogEndToEndEvent'
 IF EXISTS (SELECT 1 FROM DiscoveryView WITH (NOLOCK) WHERE Name = @ObjectName)
        SELECT
                'Discovery' As 'Object Type',
                d.DisplayName AS 'Displayname in Console',
                d.Name AS 'Internal Monitor Name',
                d.Id AS 'MonitorId',
                p.Displayname AS 'ManagementPack',
                p.Version AS 'ManagementPack Version',
                p.Name AS 'Management Pack Library Name'
        FROM DiscoveryView d WITH (NOLOCK)
        INNER JOIN ManagementPackView p WITH (NOLOCK) ON d.ManagementPackId = p.Id
        WHERE d.Name = @ObjectName
 ELSE IF EXISTS (SELECT 1 FROM MonitorView WITH (NOLOCK) WHERE Name = @ObjectName)
        SELECT
                'Monitor' AS 'Object Type',
                m.DisplayName AS 'Displayname in Console',
                m.Name AS 'Internal Monitor Name',
                m.Id AS 'MonitorId',
                p.Displayname AS 'ManagementPack',
                p.Version AS 'ManagementPack Version',
                p.Name AS 'Management Pack Library Name'
        FROM MonitorView m WITH (NOLOCK)
        INNER JOIN ManagementPackView p WITH (NOLOCK) ON m.ManagementPackId = p.Id
        WHERE m.Name = @ObjectName
 ELSE IF EXISTS (SELECT 1 FROM RuleView WITH (NOLOCK) WHERE Name = @ObjectName)
        SELECT
                'Rule' AS 'Object Type',
                r.DisplayName AS 'Displayname in Console',
                r.Name AS 'Internal Rule Name',
                r.Id AS 'RuleId',
                p.Displayname AS 'ManagementPack',
                p.Version AS 'ManagementPack Version',
                p.Name AS 'Management Pack Library Name'
        FROM RuleView r WITH (NOLOCK)
        INNER JOIN ManagementPackView p WITH (NOLOCK) ON r.ManagementPackId = p.Id
        WHERE r.Name = @ObjectName
==================================================

実行すると下記のような結果が出力されます。
==================================================
Object Type | Displayname in Console | Internal Rule Name | RuleId | ManagementPack | ManagementPack Version | Management Pack Library Name
Rule        | 配布ワークフロー テスト イベントのログへの記録  | Microsoft.SystemCenter.AgentManagement.LogEndToEndEvent | 6BD5B680-2487-98CF-10E0-8103CD31A9D8  | System Center コア監視 | 6.0.6278.0 | Microsoft.SystemCenter.2007
==================================================

SCOM2007管理コンソールの「作成」ペインより、該当の管理パックの「ルール」、「モニタ」あるいは「検出」(Object Typeによって異なります)を見つけることができます。
例では「System Center コア監視」に含まれる「配布ワークフロー テスト イベントのログへの記録」というルールが該当します。

補足:
上記は SCOM 2007 SP1 環境において有効であることを確認しております。

コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。