SQL Server Support Engineer
福原 宗稚
概要
Reporting Services で何か問題があった場合に、まずは Reporting Services のトレースログを見ることがよくあります。 トレースログには、Reporting Services サービスの起動に関する情報や、エラー、設定変更等さまざまな情報が出力されています。既定では、「例外、再起動、警告、状態メッセージ」が出力される設定になっていますが、「詳細モード」に変更することで、どのユーザーによって何のレポートが参照されたのか、どのような形式 (Excel や PDF 等) でのエクスポート要求があったのかという詳細な情報も出力されます。
また、SQL Server 2008 以降では、HTTP ログが出力されるように設定することで、HTTP 要求や HTTP 応答に関する情報も出力されるようになります。
そのため、これらの情報は、何か問題があったという報告を受けた際に、どのような要求がサーバーに来ていたのか、サーバー側でもエラーが発生していなかったのかという調査に非常に有効です。
今回は、Reporting Services のトレースログを詳細モードに変更し、HTTP ログの出力を有効にするための手順をご紹介します。SQL Server 2005 と SQL Server 2008 以降では、設定するためのファイルが異なるため、それぞれ分けて記載しています。
SQL Server 2008 以降の設定手順
1) 事前に、ReportingServicesService.exe.config ファイルをコピーして保存しておきます。 詳細モードを解除して、 設定をもとに戻す時に使用します。
既定では、下記のフォルダに配置されています。
- SQL Server 2008
C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin
- SQL Server 2008 R2
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin
- SQL Server 2012
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin
※赤字部分が、Reporting Services のインスタンス名になります。Reporting Services を既定のインスタンスとしてインストールしている場合には、ここが MSSQLSERVER になります。名前付きインスタンスとしてインストールしている場合には、インスタンス名となります。(該当のフォルダが分からない場合には、後述の 「Reporting Services のインストール先の確認方法」をご覧ください。)
2) ReportingServicesService.exe.config ファイルを開きます。
3) ReportingServicesService.exe.config 内の DefaultTraceSwitch の値を 4 に変更します。
設定例:
<system.diagnostics> <switches> <add name="DefaultTraceSwitch" value="4" /> </switches> </system.diagnostics> |
4) RStrace セクションに上書きする形で以下のセクション全体を貼り付けます。
<RStrace> <add name="FileName" value="ReportServerService_" /> <add name="FileSizeLimitMb" value="32" /> <add name="KeepFilesForDays" value="14" /> <add name="Prefix" value="tid, time" /> <add name="TraceListeners" value="debugwindow, file" /> <add name="TraceFileMode" value="unique" /> <add name="HttpTraceFileName" value="ReportServerService_HTTP_" /> <add name="HttpTraceSwitches" value="date,time, clientip,username,serverip,serverport,host,method,uristem,uriquery,protocolstatus,bytesreceived,timetaken,protocolversion,useragent,cookiereceived,cookiesent,referrer" /> <add name="Components" value="all:4,http:4" /> < /RStrace> |
5) Reporting Services を再起動します。
※Reporting Services 構成マネージャーや、SQL Server 構成マネージャー 、net stop/net start コマンド、サービス画面等、任意の方法で結構です。
※詳細ログの取得終了後は、ReportingServicesService.exe.config を事前にコピーしておいたものと入れ替え、Reporting Services を再起動すると元の設定に戻せます。
6) ログフォルダに詳細ログが出力されます。
既定では、下記のフォルダがログフォルダになります。
- SQL Server 2008
C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\Logfiles
- SQL Server 2008 R2
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\Logfiles
- SQL Server 2012
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\Logfiles
SQL Server 2005 の設定手順
1) 事前に、Web.config ファイルをコピーして保存しておきます。 詳細モードを解除して、 設定をもとに戻す時に使用します。
既定では、下記のフォルダに配置されています。
C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer
※ 「MSSQL.3」の数値部分は、該当環境にインストールされているインスタンス数やインストールした順番によって異なります。この数値は、次のレジストリキーで確認可能です。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\RS]
※該当のフォルダが分からない場合には、後述の 「Reporting Services のインストール先の確認方法」をご覧ください。
2) Web.config 内の DefaultTraceSwitch の値を 4 に変更します。
設定例:
<system.diagnostics> <switches> <!-- 1 = error, 2 = warning, 3 = info, 4 = verbose –> <add name="DefaultTraceSwitch" value="4" /> </switches> |
3) Reporting Services 構成マネージャを起動し、Reporting Services を再起動します。
※Reporting Services 構成マネージャや、SQL Server 構成マネージャ、net stop/net start コマンド、サービス画面等、任意の方法で結構です。
※詳細ログの取得終了後は、Web.config を事前にコピーしておいたものと入れ替え、Reporting Services を再起動すると元の設定に戻せます。
4) ログフォルダに詳細ログが出力されます。
既定では、下記のフォルダがログフォルダになります。
C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\LogFiles
※SQL Server 2005 の Reporting Services は、Web サーバーとしてIIS を使用しています。HTTP 要求やHTTP 応答を確認する場合には、IIS ログもあわせて確認します。IIS ログは既定で下記フォルダに出力されています。
C:\WINDOWS\system32\LogFiles\W3SVC1
Reporting Services のインストール先の確認方法
1) [SQL Server 構成マネージャー] を起動します。
2) [SQL Server のサービス] で、対象の Reporting Services を右クリックし、[プロパティ] を選択します。
3) [SQL Server Reporting Services (<インスタンス名>)のプロパティ] で、[サービス] タブを選択します。
4) [バイナリパス] に、Reporting Services の実行ファイルのパスが表示されています。
例えば、SQL Server 2008 R2 で既定のインスタンスの場合、下記のように表示されています。赤字部分でインストール先のフォルダと判断できます。この配下に、LogFiles フォルダも配置されています。
バイナリパス : “C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\ReportingServicesService.exe”
参考資料
今回変更した設定項目の詳細は、下記ページでもご案内していますので、あわせてご参照ください。
- SQL Server 2008 以降
レポート サーバー サービスのトレース ログ
http://msdn.microsoft.com/ja-jp/library/ms156500.aspx
レポート サーバーの HTTP ログ
http://msdn.microsoft.com/ja-jp/library/bb630443.aspx
- SQL Server 2005
Reporting Services のトレース ログ
http://msdn.microsoft.com/ja-jp/library/ms156500(v=sql.90).aspx