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

管理パックの実態はXML

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

- [Download System Center Management Pack for Windows Server Operating System from Official Microsoft Download Center](http://www.microsoft.com/en-US/download/details.aspx?id=9296)

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

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

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

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

エクスポートします。

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

- http://1drv.ms/1njJsNj

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

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

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

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

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

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

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

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

管理者に見せる

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

 

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