次の方法で共有


SQL Server Reporting Services と System Center Configuration Manager

堅牢で統合されたレポート ソリューションを作成する

Steve Rachui

レポートはほとんどの組織にとってきわめて重要な能力であり、Microsoft System Center Configuration Manager (SCCM) のさまざまな機能の堅牢なレポートを提供する能力も例外ではありません。レポートは、Systems Management Server と SCCM の過去数バージョンにわたってそれほど変更されてこなかった機能です。SCCM R2 のリリースでは、レポートに 1 つの重要な変更が加えられており、レポートは SQL Server Reporting Services (SSRS) と連携し SSRS を利用することができるようになりました。この 1 つの変更により、SSRS が提供する多くの堅牢な機能を利用できるようになりました。他のあらゆる新しいテクノロジと同様に、SSRS を使用するには学習が必要ですが、得られるメリットはそれに値するものです。この記事では、SCCM と SSRS の統合について説明します。また、SSRS でレポートを作成しそれを SCCM での使用向けに発行する非常に単純な例を見ていきます。

SCCM と SSRS を統合するメリット

R2 より前のバージョンでは、SCCM レポート エンジンはほとんど変更されませんでした。標準的なレポート機能はほとんどの機能にとって十分でしたが、標準的なレポート機能には限界がありました。レポートでデータをグラフィカルに表現する堅牢で柔軟な方法が必要な場合は、特にそうでした。SSRS は、独自の要件に応じたレポートの作成に関して、ほぼ無限の可能性を切り開きます。

SCCM を SSRS と統合するには、SCCM R2 がインストールされている必要があります。また、対象の SQL サーバーに SQL の SSRS コンポーネントがインストールされている必要があります。さらに、SSRS サーバーに Reporting Services ポイント サイト システムの役割をインストールする必要があります。この記事では、SSRS をインストールし、SCCM と連携するように構成する方法について詳しくは説明しませんが、この作業は難しくありません。

R2 をインストールし、SSRS との統合を構成したら、どちらのレポート エンジンを使用するかを選択できるようになります。図 1 は、R2 をインストールした後のレポート ノードを示しています。

 

図 1 R2 をインストールした後の System Center Configuration Manager のレポート ノード

[レポート] ノードからは、従来の SCCM レポート エンジンを使用したレポートにアクセスすることができます。[Reporting Services] ノードからは、SSRS に配置されたレポートにアクセスすることができます。[Reporting Services] ノード (図 1 参照) を展開すると、Reporting Services ポイントとして構成されたサーバー、および SSRS に配置されたすべてのレポートを格納するフォルダーが表示されます。R2 をインストールして SSRS の構成を完了した直後に [All Reports] (すべてのレポート) ノードを選択した場合、表示されるレポートはありません。SSRS にレポートを追加するには、標準的な SCCM レポートを SSRS 形式に変換するか、独自のレポートを作成します。

標準的なレポートを SSRS での使用向けに変換するのは簡単で、単に、Reporting Services ポイントの役割をホストしているサーバーの名前 (図 1 に示した [Reporting Services] ノードの真下にあります) を右クリックし、図 2 に示す [Copy Reports to Reporting Services] (Reporting Services にレポートをコピー) をクリックします。

 

図 2 標準的なレポートを SSRS での使用向けに簡単に変換するには単に右クリックする必要がある

これにより、(すべての、または選択した) 標準的な SCCM レポートを SSRS での使用向けに変換するプロセスをガイドするウィザードが起動します。このウィザードでは、SSRS データ ストアを構築するのに必要な情報が収集され、SSRS セキュリティの処理方法 (Windows 統合がよく選択されます) および変換して SSRS に配置する必要があるレポートが決定されます。ウィザードが完了すると、レポートの変換と配置が行われます。これが完了すると、[All Reports] (すべてのレポート) ビューには、標準的な SCCM レポートで見慣れているものと似たデータが表示されます。図 3 は、変換後に表示されるデータの例です。

 

図 3 選択した System Center Configuration Manger レポートを SQL Server Reporting Services での使用向けに変換した後で [All Reports] (すべてのレポート) ウィンドウに表示されるデータ

レポートの名前付け形式は、標準的な SCCM レポートと同じです。レポートを表示するには、単に、レポートを右クリックし、[Run] (実行) をクリックします。右クリック メニューには、[Run] (実行) だけでなく、新しいサブスクリプションを作成するためのオプションも用意されています。このオプションは、SSRS のもう 1 つの優れた機能である、レポートへのサブスクリプションを作成する機能を利用します。SSRS サブスクリプションは新聞の購読と同じようなものとお考えください。新聞の "購読者" は、選択したスケジュールに従って新聞が提供されることを期待します。SCCM/SSRS のサブスクリプションについても同じことが言えます。[New Subscription] (新しいサブスクリプション) をクリックすると、この機能を構成するためのウィザードが起動します。ウィザードの最初の画面を図 4 に示します。サブスクリプションを使用すると、レポートの実行と作成されたレポートの配信を自動的に行うことができます。サブスクリプションを使用すると、レポートがファイル共有に配信され、XML 形式、Excel 形式、PDF 形式、TIFF 形式、Web ページ形式などのさまざまな形式でレポートを表示することができます。

 

図 4 System Center Configuration Manager の Create Subscription Wizard (サブスクリプション作成ウィザード)

ここまでの説明では、SCCM コンソール自体を通じた SSRS の操作を主に扱ってきました。SCCM コンソールの使用は、レポートの実行やサブスクリプションの作成などの多くの SSRS 操作に有用です。しかし、場合によっては (特にテストやトラブルシューティングには)、レポート エンジンに直接アクセスするのが便利です。SSRS インターフェイス自体についてはさまざまなフォーラムで詳しく説明されているので、この記事では SSRS インターフェイス自体についての説明は割愛します。SSRS インターフェイスに直接アクセスする必要がある場合は、SSRS をホストしているサーバーにログオンし、Web ブラウザーを開いて https://localhost/reports に移動します。この URL の localhost の部分をサーバー名 (NetBIOS または FQDN) に置き換えて、このインターフェイスにリモートでアクセスすることもできます。

SCCM 用の SSRS レポートを作成する

ここまでのところでは、標準的な SCCM レポートを使用して SSRS を操作する方法について説明しました。SSRS では、カスタム レポートを作成することができます。これもそれほど難しくありません。カスタム レポートを作成する方法はいくつかあります。1 つ目は、標準的な SQL クエリをベースとしてレポートを作成するという、標準的な SCCM レポートの作成方法とよく似た方法です。また、モデルを使用してレポートを作成するという方法もあります。標準的な SQL をベースとしたレポートまたはモデル ベースのレポートを作成するためのオプションは、SCCM コンソールを通じて提供されます。モデルにアクセスするには、図 2 に示した右クリック メニューの [Create Report] (レポートの作成) をクリックします。[Create Report] (レポートの作成) をクリックすると、図 5 に示すウィザードが起動します。

 

図 5 System Center Configuration Manager の Create Report Wizard (レポート作成ウィザード)

標準的な SQL をベースとしたレポートの作成もモデル ベースのレポートの作成も有用ですが、Visual Studio を使用して行うことができるレポート作成と比べると選択肢が限られています。モデル ベースのレポートの使用に関する詳細については、ホワイト ペーパー『レポート ビルダー 2.0 を使用して Configuration Manager 2007 レポートを作成する』(英語) を参照してください。モデルの使用に役立つリソースは他にも提供されています。レポートを作成するための豊かで柔軟な環境を提供する Visual Studio 内で直接カスタム レポートを作成するという方法もあります。これらの他に、レポート ビルダー 2.0 を使用するという 4 つ目の方法もあります。これがこの記事の主眼となります。SQL Server 2008 用にデザインされたレポート ビルダー 2.0 は、レポートをデザインするための堅牢な環境であり、SCCM で使用できるレポート モデルをデザインするのに使用することもできます。レポート ビルダー 2.0 は、microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6 からダウンロードできます。SQL Server 2005 用のレポートを作成する場合は、Visual Studio を使用するのが最も堅牢な方法です。SQL Server 2008 用のレポートを作成する場合は、レポート ビルダー 2.0 や Visual Studio を使用することができます。

どのようなレポート作成方法を使用するかにかかわらず、成功を収めるためにはレポート作成者は SCCM データベースを十分に理解する必要があります。この記事では、SCCM データベースについての説明は割愛します。

この記事の残りの部分では、レポート ビルダー 2.0 を使用して基本的なレポートを作成し、作成されたレポートを SSRS に配置し、SCCM を通じてレポートを実行する方法について見ていきます。

まずは、レポート ビルダー 2.0 を起動すると、図 6 のような初期画面が表示されます。

 

図 6 レポート ビルダー 2.0 の初期画面

環境は、すぐに、レポートのデザインを開始できる状態になります。また、必要な手順を実行していきやすいようにウィザード ベースになっています。レポートのデザイン領域で、タイトル領域内をクリックし、既定のテキストをこのレポートのタイトルに置き換えます。このサンプル レポートのタイトルは "Basic ConfigMgr Report" です。あらゆるテストと同様に、右クリック メニューからすべての形式設定オプションにアクセスすることができます。タイトルを入力したら、レポートのデザインを開始します。デザイナーでは、再び 2 つのオプションがあります。テーブル ベースまたはマトリックス ベースのレポートを作成するオプションとグラフ ベースのレポートを作成するオプションです。グラフ ベースのレポートを作成するオプションを選択します。すると、[新しいグラフ] ウィザードが開かれます (図 7 参照)。

 

図 7 レポート ビルダー 2.0 の [新しいグラフ] ウィザード

まず、データ ソースを作成する必要があります。データ ソースでは、レポートが適切な SQL サーバー、およびレポートで使用されるデータをホストする SQL サーバー上の適切なデータベースに接続するようにレポートを構成します。[新規] をクリックすると、データ ソース画面が表示されます。この画面で、データ ソースにタイトルを付け、Microsoft SQL Server に接続することを選択し、(手動で、または、接続文字列を構築するためのオプションを使用して) 接続文字列を入力します。入力が完了した [データ ソースのプロパティ] ウィンドウは図 8 のようになります。

 

図 8 入力が完了した、レポート ビルダー 2.0 の [データ ソースのプロパティ] ウィンドウ

[資格情報] ウィンドウは、当該のレポートに関してどのように資格情報を提供するかを構成するために使用されます。現在の Windows ユーザーの資格情報を使用する、特定のユーザー名とパスワードを使用する、資格情報を要求する、および資格情報を使用しないというオプションがあります。これらのオプションは、レポートがレポート サーバーに保存される場合にだけ格納されます。

構成が完了したら、[OK] をクリックしてウィザードに戻ります。ウィザードに戻ったら [次へ] をクリックします。すると、レポートで使用するクエリを入力するウィンドウが表示されます。このウィンドウでは、左側のデータベース ビューで関心のある特定のテーブルを選択する、既存のクエリをインポートすることを選択する、またはテキストとして編集することを選択しクエリを手動で入力するといういくつかの方法のいずれかでクエリ デザイナーを使用することができます。デザイナーでグラフィカルにクエリを構築できる機能は役に立ちますが、サンプル レポートでは以下のクエリを使用します。

select           (select count(*) from v_r_system vrs           inner join v_agentdiscoveries vad           on vrs.resourceid=vad.resourceid           where vad.agentname = 'Heartbeat Discovery' and           (datediff(day, vad.agenttime, getdate())< 7))           as 'Number of agents with Heartbeat less than 7 days',           (select count(*) from v_r_system vrs           inner join v_agentdiscoveries vad           on vrs.resourceid=vad.resourceid           where vad.agentname = 'Heartbeat Discovery' and           (datediff(day, vad.agenttime, getdate()) >7))           as 'Number of agents with Heartbeat greater than 7 days'

テキスト エディターでは、クエリをテキスト ベースにするかストアド プロシージャ ベースにするかを選択するオプションが提供されます。この例では、クエリはテキスト ベースです。ストアド プロシージャを使用すると、クエリの最適化などの明確なメリットがあります。この記事ではストアド プロシージャの使用については取り上げません。どのような方法を使用してクエリを構築するかにかかわらず、SCCM データベースを十分に理解する必要があります。また、SCCM データベースに対するクエリを構築する場合は、テーブルではなくビューを使用するようにしてください。編集が完了した画面は図 9 のようになります。

 

図 9 レポート ビルダー 2.0 のテキスト ベース クエリ

[次へ] をクリックしてウィザードを続行し、このレポートで使用するグラフの種類を選択します。縦棒グラフ、折れ線グラフ、円グラフ、横棒グラフ、または面グラフを選択することができます。この例では横棒グラフを使用します。横棒グラフを選択し、[次へ] をクリックします。

次の画面では、データのフィールドを表示用にグラフ上に配置することができます。カテゴリ セクション、値セクション、または系列セクションに配置できるフィールドが 2 つあります。この単純な例では、どちらのデータ フィールドも値セクションに配置し、[次へ] をクリックします。

レポートのスタイルを選択できる画面が表示されます。[オーシャン] を選択し、ウィザードを完了します。完成したレポートは図 10 のようなものになります。

 

図 10 レポート ビルダー 2.0 の完成したレポート

ここから、グラフ要素自体に変更を加えることができます。グラフのタイトルやグラフの凡例をクリックして、グラフのサイズ、レポート タイトル、グラフのスタイルなどに必要な変更を加えます。必要な変更を加えたら、デザイナーの左上隅にある [実行] をクリックしてレポートをテスト実行します。いくつかの変更を加えると、サンプル レポートは図 11 のように表示されるようになります。

 

図 11 レポート ビルダー 2.0 で構築されたサンプル レポートの最終的な表示

レポートが完成したら、今度はそれを SSRS に配置します。レポート ビルダー 2.0 では、レポートを RDL ファイルに保存するか SSRS に直接配置するという 2 つの選択肢が用意されています。この例では、レポート ビルダー 2.0 を使用して直接配置します。レポート ビルダー 2.0 から SSRS に直接配置するには、SSRS Web ページの場所を使用してレポート ビルダーを構成する必要があります。レポート ビルダー ウィンドウの左下隅を見ると、SSRS インスタンスがレポート ビルダーによって認識されているかどうかを確認することができます。認識されていない場合は、レポート ビルダー ウィンドウの左上隅にあるレポート ビルダー ボタンをクリックし、[オプション] をクリックします。図 12 に示す画面では、SSRS インスタンスを指定することができます。

 

図 12 [レポート ビルダ オプション] ウィンドウでは SQL Server Reporting Services インスタンスを指定できる

関連付けが済んだら、サンプル レポートを保存するには、単に、レポート ビルダー ボタンをクリックし、保存することを選択します。SSRS との関連付けが適切に行われている場合、保存ウィンドウには、SSRS 上に用意されたフォルダーが表示されます。レポートの保存先とするフォルダーを選択し、[保存] をクリックします。SCCM コンソールで表示するレポートを保存する場合は、SCCM のルート フォルダーまたはその子フォルダーに保存するようにしてください。サンプル レポートは、SampleSCCMReportProject フォルダーに保存します (図 13 参照)。

 

図 13 レポートを System Center Configuration Manager のルート フォルダーの子フォルダーに保存

これで、レポートは SSRS に配置されました。SSRS Web ページ https://localhost/reports を開き、ConfigMgr_<サイト コード> の下にテスト フォルダーが作成されているのを確認することにより、これを確認することができます。すべてのピースが揃い、レポートを SSRS で実行する準備が整いました。これまでのことを考えると、ここで SCCM コンソールを開いてこのレポートを実行するのだと思われるかもしれません。今までに行ってきた作業によりレポートは SCCM コンソールに表示されはしますが、レポートを実行するとコンソールはクラッシュします。SCCM コンソールは SQL Server 2005 ベースのレポート スキーマのみをサポートしていますが、レポートおよび必要なすべてのオプション (サブスクリプション、セキュリティなどを含む) には SSRS コンソール内で直接アクセスすることができます。SSRS コンソールでサンプル レポートを実行すると、図 14 のような画面が表示されます。

 

図 14 SSRS コンソール

 

まとめ

この記事では、SCCM と SSRS の統合、および単純なレポートを SSRS に配置するために必要な手順について詳しく説明しました。サンプル レポートは、ユーザー入力を必要とせず単純な SQL クエリを使用するものでした。レポートは今回紹介したものよりもはるかに複雑な場合が (よく) あります (変数を使用してユーザーに情報の入力を求めたり、ストアド プロシージャを使用したりするなど)。また、データを理想的な形で表現するのに役立つデザイン オプションが多数あります。

作成するほとんどのレポートは、この単純な例で示したものよりも複雑なものになるでしょうが、この記事で紹介した例を理解することは、SCCM と SSRS の統合を成功させるうえで重要です。

 

Steve Rachui は、マイクロソフトのプロダクト サポート サービス グループに所属するマネージャビリティ サポート エスカレーション エンジニアです。Version 1.2 のころから SMS のサポートを担当しています。Rachui の連絡先は steverac@microsoft.com (英語のみ) です。

 

関連コンテンツ