System Center Operations Manager 2007 でプロセス監視を行う方法

みなさん、こんにちは。

Operations Manager を実際に評価されているお客様からよく聞かれる質問に、「プロセスの死活監視をOperations Managerで実現できるのか」というものがあります。

Operations Manager は、Windowsサービスの状態監視を行う機能を標準で持っていますが、プロセスの死活監視の機能は標準の監視項目としては残念ながら提供されていません。

プロセスの状態に関しては、WMIを使用して情報を取得することが可能です。今回は、少し細かな話になりますが、Operations Manager では WMI イベントの監視を行うことができますので、ここでは WMIを使用してプロセスの状態を監視する手順を紹介します。

手順

  1. Operations Manager 2007 のオペレーションコンソールを開く
  2. [作成]ペインでツリーを[作成]-[管理パックオブジェクト]-[モニタ]と展開
  3. [アクション]ペインで[モニタの作成]-[ユニットモニタ]を選択して、ユニットモニタの作成 ウィザードを起動
  4. 作成するモニタの種類で[WMIイベント]-[シンプルなイベントの検出]-[WMIイベントリセット]を選択
  5. 作成したモニタを保存する適当な管理パックを選択して[次へ]をクリック
  6. 適当な名前、モニタのターゲット、親モニタを選択し、[モニタを有効にする]をチェックして[次へ]をクリック
    (ここでは、モニタのターゲットにWindowsコンピュータ、親モニタに可用性を選択)
  7. 最初のWmiEventProviderには以下のようなプロセスが停止したことを監視するWMI通知クエリを記述し、[次へ]をクリック
    名前空間:Root\cimv2
    クエリ:Select * from __InstanceDeletionEvent within 2 whare
      targetinstance ISA ‘Win32_process’ and targetinstance.caption = ‘******.exe’
    (******.exeには実際に監視したいプロセス名を記述)
  8. 最初の式の作成では、適当な判別式を入力して[次へ]をクリック(※)
  9. 2番目のWmiEventProviderには以下のようなプロセスが起動したことを監視するWMI通知クエリを記述し、[次へ]をクリック
    名前空間:Root\cimv2
    クエリ:Select * from __InstanceCreationEvent within 2 whare
    targetinstance ISA ‘Win32_process’ and targetinstance.caption = ‘******.exe’
    (******.exeには実際に監視したいプロセス名を記述)
  10. 2番目の式の作成でも、適当な判別式を入力して[次へ]をクリック(※)
  11. ヘルスの構成を設定して[次へ]をクリック
  12. モニタの状態が変化したときにアラートを生成するのであれば[このモニタのアラートを生成する]チェックをチェックし、アラートに関する情報を入力して[作成]をクリック

(※)注意
本来、判別式には何も入力する必要はありませんが、判別式に何かしらの値を入力しないとウィザードが先に進めませんので、ここではウィザードでは何か適当な値を入れ、モニタ作成後にプロパティを開いて、[式(異常なイベント)]、[式(正常なイベント)]判別式タブの中にある判別式を削除してください。

実際にメモ帳(notepad.exe)などのアプリケーションを起動してそのプロセスを監視すると、アプリケーションの起動や終了に合わせてモニタの状態が変化しているのが確認できます。

このように、一見標準的な機能として提供されていないように見えることでも、少し工夫をすることで、より高度な監視を Operations Manager で実現することができるようになりますので、是非試してみてください。

N.S.