SCOM DashboardのPowerShell Web Browser Widgetを試してみた

Channel9でこちらのIgniteのセッションを見ていたところ、SCOMのダッシュボードが面白そうだったので一つ触ってみました。

PowerShell Web Browser Widget

今回触ってみたのは新ダッシュボードの中でもPowerShell Web Browser Widgetというものです。

以下のMSから引用した図の通り、ダッシュボード内の操作から情報を取得して、PowerShellを動かしWebページを表示するというものです。

http://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/communityserver-wikis-components-files/00-00-00-00-05/1643.Script-Widgets-_2D00_-Web-Get.png


実際に作ってみるものを見てもらう方がわかりやすいかもしれません。上下に2つのパネルを持ったダッシュボードですが、上側のパネルにはアラートの一覧が表示されており、アラートを選択すると、PowerShellが動きアラート内の文字列をキーワードとしてGoogle検索の結果を下のパネルに表示してくれるというものです。


作成方法

では実際にここからダッシュボードの作成方法です。

ダッシュボードのレイアウト作成

まずは枠になるダッシュボードのレイアウトを作成します。

監視>新規>ダッシュボードビューを選択します。

 

グリッドレイアウトを選択します。

 
平行の2セルのレイアウトにします。

後は作成し処理を待つだけです。

正常に作成されたようです。 

アラート一覧Widgetsの追加

これで空のダッシュボードレイアウトが作成されました。指定したレイアウト通りパネルが二つ並んでます。

「クリックしてウィジェットを追加」を選択します。

 
まずは、アラート一覧を表示するため、「アラートのウィジェット」を作成します。

 
Wedgetの名前を入力します。

 
スコープを設定します。とりあえず全アラートということで全てを選択しています。

 
表示するアラートのフィルタ条件を選択します。

 
Widget内に表示する情報を選択します。

 
作成をクリックしてWidgetを作成します。

 
正常にWidgetが作成されたようです。

PowerShell Web Browser Widgetの作成

さきほど作成したアラート一覧のWidgetが上のパネルに表示されているのがわかります。次は下のパネルにPowerShell Web Browser Widgetを追加していきます。

 
PowerShell Web Browser Widgetを選択します。

 
Widgetの名前を入れましょう。

 
ここが重要です。PowerShellを書きます。実際はISEなどで書いてここにコピペです。


今回書いたコードはこちらです。このページを参考に書きました。

中に出てきている「$ScriptContext」という変数が重要なのですが、それはこちらに記載があります。

また、SCOMのコマンドレットについてはこちら

つまりは、アラートのWidgetで選択されたアイテムのプロパティを取得して、URLを生成して、それをWeb Requestで投げて表示しています。
 
PowerShellで書けるので自由度が高いです。

Param($globalSelectedItems)
   
$dataObject = $ScriptContext.CreateInstance("xsd://Microsoft.SystemCenter.Visualization.Component.Library!Microsoft.SystemCenter.Visualization.Component.Library.WebBrowser.Schema/Request") 
$dataObject["BaseUrl"]="http://www.google.com/search"
$parameterCollection=$ScriptContext.CreateCollection("xsd://Microsoft.SystemCenter.Visualization.Component.Library!Microsoft.SystemCenter.Visualization.Component.Library.WebBrowser.Schema/UrlParameter[]")
   
foreach ($globalSelectedItem in $globalSelectedItems)
{
    $parameter=$ScriptContext.CreateInstance("xsd://Microsoft.SystemCenter.Visualization.Component.Library!Microsoft.SystemCenter.Visualization.Component.Library.WebBrowser.Schema/UrlParameter") 
    $parameter["Name"] = "q"
    $alert = Get-SCOMAlert -Id $globalSelectedItem["Id"]
    $parameter["Value"] = "opsmgr+alert+`"" + $alert.Name + "`""
    $parameterCollection.Add($parameter)
}
$dataObject["Parameters"]= $parameterCollection
$ScriptContext.ReturnCollection.Add($dataObject)

 
 
後は作成をして、

Widgetが作成されるのを確認します。

 
これでダッシュボードの完成です。アラートをクリックするとGoogle検索してくれます。
f:id:yomon8:20150604222325p:plain



Widgetsのテンプレートが表示されない場合

この機能はSystem Center Operations Manager 2012 R2 UR2(Update Rollup 2)から利用可能になったようです。

UR自体はWindows Updateからインストール可能です。

ただ、Windows UpdateでインストールしただけだとWidgetのテンプレートが表示されません。追加で以下の2つのManagement Packファイルが必要になります。

C:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server\Management Packs for Update Rollups

  • Microsoft.SystemCenter.Visualization.Component.Library.mpb
  • Microsoft.SystemCenter.Visualization.Library.mpb

f:id:yomon8:20150604222630p:plain
 
このファイルを管理パックとしてインポートします。



これでテンプレートが使えるようになっているはずです。