SCOMで監視をしたり、レポートを作成したりする場合にその「対象」を特定したいという場面は良くあります。単一サーバーなら直接オブジェクトを選択すれば良いのですが、複数サーバーを対象としたい場合にはグループを作成し、それを利用する事ができます。
管理パックを導入すると「OSがWindowsであるコンピューター」や「SQL Serverが入っているコンピューター」などのみが表示されるビューが生成されますが、それらは予めグループを定義してあり、そのグループのメンバを表示するような形で実装されています。これと同じことを自分で行えば良いわけです。
それぞれのオブジェクトのプロパティで定義されている値をキーにしてグループを作成するのはコンソールから簡単に行えます。「SQL Serverを持っているWindows Server」のような「関係」をキーにしてグループを作成するのはコンソールからは無理で、オーサリングツールを利用したりXMLを編集するような対応が必要です。
ここでは単純に複数のサーバーを1つのグループにまとめる方法を紹介します。一番良くやる事だと思いますので。諸事情によりSCOM 2007 R2の画面になっていますが、SCOM 2012, 2012 R2でも全く同じです。
ここでは、stcex2010,とstcdc2の2台のみを1つのグループに入れてみたいと思います。
「作成」にて新しいグループを作成します。
任意の名前と管理パックを指定します。(※ここであえてfor Demoという管理パックを選択して失敗する手順にしています。後で解説します。)
ここでは明示的にオブジェクトを追加します。
ここで沢山選択肢があり、混乱するかもしれません。
何をしようとしているのかをもう一度確認します。
今、グループを作りたいのは「Windowsコンピュータ」の2台を1つのグループに入れたいのです。
上記のビューのプロパティを見てみると「Windowsコンピュータ」がターゲットに指定されています。
この「Windowsコンピュータ」というのは「クラス」です。「Windowsコンピュータ」クラスの具体的なオブジェクトとして「STCEX2010」「STCDC2」というものがあるわけです。オブジェクト指向プログラミングでいうところのクラスととインスタンス(≒オブジェクト)と同じ話です。
ですので、ここで「Windowsコンピュータ」を選択して検索をするとWindowsコンピュータの一覧が出てきます。
目的の2台のサーバーを追加します。
これでグループができました。
ビューを作成して、このグループを対象にして確認してみます。
「特定のコンピュータ」をグループとして選択するのはわかりやすいと思います。問題は左側でクラス定義を選択する所です。
今回は「Windowsコンピュータ」クラスを対象にしているので、ここも「Windowsコンピュータ」を選択すべきです。
これでうまくいきそうに思いますが・・・。OKボタンを押すと以下のエラーが表示されます。
封印していない管理パックの情報は他の管理パックから参照できないというルールがあります。これは封印していない=変更される可能性がある=他の管理パックから参照した場合にあとからそれが破綻するかもしれない→NGというロジックだと思われます。
なので、グループは「規定の管理パック」に作成する必要があります。
SCOM 2012 R2の環境では「規定の管理パック用言語パック」という名前でした。変な名前ですね。
これで、任意のコンピューターのみが表示されるビューを作成することが出来ました。
ここで利用しているグループはレポートの表示対象としても選択が可能です。