7件のコメント

SCOM管理パックの中身はXMLです

System Center Operations Managerの根幹を成しているのは「管理パック」です。「管理パックを導入して監視するんでしょ?」という程度の理解の方も多いと思いますし、本当に理解しようと思うと中々深いものだったりします。ここでは私なりに簡単にポイントを紹介したいと思います。

管理パックの実態はXML

管理パックは例えばWindows Server用のものは以下からダウンロードできます。

ダンロードして、msiをインストールして該当フォルダを開いてみるとわかりますが、以下のように拡張子がmpというファイルが出てきます。これが管理パックそのものです。

image

テキストエディタ等で開いてみるとわかりますが、これ自体は人間が読める形にはなっていません。いわゆる「封印=seal」されている状態です。じゃぁ、実態はXMLじゃないじゃないか、と思われるかもしれませんが、SCOMに取り込んだうえで、PowerShellコマンドでエクスポートするときちんと生のXMLが見えてきます。

たとえば、Windows Server 2012の管理パックを見てみましょう。

image

Monitoring用とDiscovery用の2つの管理パックがあり、さらにそれぞれの日本語の言語パックがあることがわかります。

エクスポートします。

image

image

これで生のXMLの形で出力することができました。参考にOneDriveにおいておきましたので是非実際にXMLファイルの中身を覗いてみてください。

ガッツリとXMLで記述されている中でところどころvbscriptやpowershellが記述されています。

このように管理パックの実態はXMLであり、その中身が生で覗けますので、管理パックによって何がなされるのかは完全に把握することができます。

見つける、監視する、収集する

では、管理パックの中で何をしているのか、ということですが非常にざっくりというと、以下の様な動きになっています。

  1. SCOMサーバーに取り込まれた管理パックはSCOMクライアントに送られる
  2. まず、Discoveryのルールが実行され、監視目的のもの(=クラス)がそのシステムに存在するかどうかが判定される
  3. 監視目的のもの(=クラス)が見つかった場合、そのクラスに対して定義されているモニタリングのルール(実態はvbscirptやpowershell)が実行される。
  4. 実行結果がSCOMサーバーに伝わり必要に応じてDBに記録されたり(パフォーマンスデータ等)、アラートが生成されたりする

ポイントは「まず、監視対象が存在しているかどうかを判定する、見つける」というロジックが組み込まれている点です。管理パックのなかで「クラス」が定義され、そのクラスがある…という存在判定の定義があり、さらにクラスがあったならば行うべきルールが定義されているのです。

ですので、システム管理者はどのシステムにどの監視対象があるか、どの監視項目をどのサーバーに適用すべきか…というようなことを自分で把握、管理する必要なく、管理パックを導入すればそのなかで必要性を含めて判断してくれる…というわけです。

#もちろん必要に応じて意図的に「このサーバーは監視させない」というようなこともコントロール可能なわけですし、それ自体も管理パックで「上書き」することで実現されているのですが、ここでは深く説明はしないことにします。

管理者に見せる

最終的には収集した情報をSCOMのコンソール上やレポート上で「管理者に見せる」必要があります。ビューだったり、ダッシュボードだったり、レポートだったりです。この見せるための情報も管理パックに記述されています。

 

百聞は一見に如かず…というわけで、個人的にはSCOM管理パックの中身を直接覗くことをお勧めします。そうすればSCOMがどのようなコンセプトでどのように動作しているのかというのが非常にクリアにわかってくると思います。

7件のコメント

  1. こんにちは、SCOMの事を調べていてここにたどり着きました。
    テスト環境に導入して、管理パックをインストールしてWindowsserver2012R2
    の管理を開始しましたが、パフォーマンス情報で取得出来ているカウンターと
    出来ていないカウンターがありまして、出来ていないカウンターを出来るように
    したいのですが、ここに書いてある、管理パックの中身をXMLで見れば
    そのあたりが取れていない理由とか解りますでしょうか?

  2. もちろん管理パックの中には全て書かれていますので、原因はわかるはずです。ですが、その前に以下のどれであるのかをはっきりとさせるのが先かなと思います。

    1. 管理パック内で目的のパフォーマンス情報は取得するように構成されている。情報が取得できていないのは何かしらの環境の問題である。
    2. 管理パック内では定義はされているものの、情報の取得は有効になっていない。有効化する必要がある。
    3. 管理パック内ではそもそも目的のパフォーマンス情報の取得は何も定義されていない。新規に自分で設定する必要がある。

    1ならトラブルシュートをすべきであって、管理パックの中身を見ても仕方がないです。2なら単純に有効化してあげればよいです。3なら管理パックとは別で自分でパフォーマンス情報の取得設定を行う必要があります。

    上記のどれであるのかを判別する目的でXMLの中身を覗いたり、コンソールから設定を確認するということをまずしてもらえると良いのではと思います!

  3. Masahiko Ebisuda様

    ありがとうございます。氷が解けまして、調査した結果

    2. 管理パック内では定義はされているものの、情報の取得は有効になっていない。有効化する必要がある。

    でした。しかし、有効化の方法が解りません。大変申し訳ありませんが、
    どこかにやり方は書いて無いでしょうか。

    お手数ですがよろしくお願します。

  4. すみません。
    3なら管理パックとは別で自分でパフォーマンス情報の取得設定を行う必要があります。
    のやり方はどこかに解説されていないでしょうか?

    2であることは解ってルールを有効化は出来ましたが、集めた結果を見れません。
    よろしくお願いします。

    1. >3なら管理パックとは別で自分でパフォーマンス情報の取得設定を行う必要があります。
      のやり方はどこかに解説されていないでしょうか?

      以下のあたりをどうぞ。手順自体は検索すれば多数出てくると思います。
      https://technet.microsoft.com/en-us/library/hh457548.aspx?f=255&MSPPError=-2147217396

      >2であることは解ってルールを有効化は出来ましたが、集めた結果を見れません。
      該当のオブジェクトを右クリックをして、パフォーマンスビューを開けば見えるはずです。

  5. ありがとうございます。問題は解決しました。
    Microsoftが説明書を出してないので、かなり苦労しましたが
    おかげで助かりました。
    (当方英語はからっきしなんで、見つけられませんでした)

Masahiko Ebisuda にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です