SharePoint Server でログ データベースのデータを表示する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

注:

SharePoint Server 2016 はインターネット インフォメーション サービス (IIS) の Web サイトとして実行されるため、管理者とユーザーはブラウザーが提供するアクセシビリティ機能に依存します。 SharePoint Server 2016 では、サポートされているブラウザーのアクセシビリティ機能がサポートされています。 詳細については、次のリソースを参照してください。 > SharePointキーボード ショートカットTouchでの SharePoint>アクセシビリティの>ブラウザー サポート>のアクセシビリティ ガイドラインを計画します>。

SharePoint ログ データベースの概要

SharePoint Server 2016 を実行しているサーバーとサーバー上で実行されるサービスを監視するには、Windows Server イベント ログ、SharePoint 統合ログ サービス (ULS) ログ (トレース ログとも呼ばれます)、使用状況データ ログなど、さまざまなログに直接アクセスできます。 SharePoint Server 2016 SharePoint サーバーの全体管理 Web サイトに移動して、さまざまなレポートを確認することもできます。 SharePoint Health Analyzer レポートには、サーバーまたはサービスのルールが含まれています。 管理 (診断) レポートには、検索関連の情報が含まれています。 Web Analytics レポートには、Web 分析メトリックが含まれています。 レポートの詳細については、「 SharePoint Server 2016 でレポートとログを表示する」を参照してください。

前に説明したすべての監視方法には制限があります。 たとえば、Windows Server イベント ログ、SharePoint ULS ログ、使用状況データ ログは 1 つの場所に格納されません。 関連するログを見つけるには、さまざまな場所に移動する必要があります。 同様に、サーバーの全体管理からのレポートには、最も頻繁に使用されるメトリックと監視情報が含まれていますが、それらのレポートにさらに監視情報を追加する場合は、これらのレポートが事前に定義されており、変更できないため、これを行うことはできません。

SharePoint Server 2016 のログ データベースを使用すると、監視の効率を高めることができます。 ログ データベースは、ファーム内のすべてのサーバーからの SharePoint Server 2016 監視情報のファーム全体のリポジトリです。 ログ データベースには、さまざまな監視情報を 1 か所で表示およびカスタマイズするためのオプションが用意されています。 さらに、ログ データベースは、データベースを直接変更してレポートをカスタマイズできる唯一の SharePoint Server 2016 データベースです。

注:

SharePoint Server 2016 データベースの詳細については、「データベースの種類と説明 (SharePoint Server)」を参照してください。

注:

データベースの既定の名前は SharePoint_Logging です。 この既定の名前と SharePoint データベース サーバーの場所を変更するには、Microsoft PowerShell を使用します。 ログ データベースの名前およびデータベース サーバーの場所の詳細については、「 SharePoint Server で利用状況および正常性データ収集を構成する」を参照してください。

さまざまな監視情報を 1 つの場所に保存すると、SharePoint Server 2016 サーバーおよびサービスを効率的に監視するのに役立ちます。 さらに重要なのは、ログ データベース内のテーブルに基づいて、特定の監視、レポート作成、およびトラブルシューティング要件に応じた独自のレポートを作成できることです。 この記事では、既存のテーブルおよびビューを使用してレポートを作成する方法について説明します。 新しいテーブルを作成するには独自のプロバイダーを記述することをお勧めします。

注:

SQL ビューは仮想テーブルです。 テーブルと SQL ビューの違いは、テーブル内のデータは変更できますが、SQL ビュー内のデータを変更できない点です。

SharePoint Server 2016 サーバーの全体管理を使用して、ログ データベースにインポートされるログを構成します。 ログ カテゴリ、ログ レベル、およびトレース (ULS) ログ パスを構成する方法の詳細については、「SharePoint Server で診断ログを構成する」を参照してください。 ログ データベースに書き込む内容を有効にする方法の詳細については、「SharePoint Server で利用状況および正常性データ収集を構成する」を参照してください。 ログ データベース サーバー、名前およびデータベース認証情報、ログ データベースに書き込むイベント、およびログがログ データベースに書き込まれる頻度 (つまり、利用状況データベースのインポートに関連するタイマー ジョブ) を指定する方法の詳細については、「SharePoint Server 2016 で SharePoint Health Analyzer タイマー ジョブを構成する」を参照してください。

この記事の手順では、SQL Server Management Studio を使用してログ データベースにアクセスします。 Management Studio は SQL Server 2008 のコンポーネントです。

注:

ログ データベースにアクセスするには、Windows 認証 (推奨) または SQL 認証のどちらかが必要です。 データベース認証情報は、SharePoint Server 2016 のサーバーの全体管理で構成されます。 認証方法の詳細については、「SharePoint Server で利用状況および正常性データ収集を構成する」を参照してください。

SharePoint ログ データベースの定義済み SQL ビュー

このセクションでは、SharePoint Server 2016 ログ データベース内のパーティション テーブルおよび SQL ビューについて説明します。これには次の 3 つの手順が含まれます。

  • SQL Server Management Studio を使用してログ データベースにアクセスするには

  • 既定のビューでログ情報を表示するには

  • Excel を使用してログ データをエクスポートおよび表示するには

ログ データベースでは、カテゴリごとに日次データに個別のパーティション テーブルが使用されます。 たとえば、最初の日のタイマー ジョブ使用状況データは dbo に書き込 まれます。TimerJobUsage_Partition0 テーブルと 32 日後のデータが dbo に書き込 まれます。テーブルTimerJobUsageUsage_Partition31 。 1 日以内のログは、1 つのパーティション テーブルに書き込まれます。 つまり、ログ カテゴリごとに、各パーティション テーブルには特定の日のログが 1 つ格納されます。

注:

パーティション テーブルと日付のマッピングは、ログ データベースの保持期間と、ログ データベースへのログ書き込みの開始日によって決まります。 マッピングを取得するには、各テーブルの時間情報を確認します。 たとえば、保持期間が 14 日で、今日のログがパーティション テーブル 2 に書き込まれている場合、明日のログはパーティション テーブル 3 に、それ以降についても同様に書き込まれます。 14 日が経過すると、すべてのログが削除され、新しいログがパーティション テーブル 0 から順番にこれらのパーティション テーブルに書き込まれます。

Management Studio の定義済み SQL ビューを使用して、すべての監視情報を 1 つの場所に表示できます。 各定義済みビューは、特定のログ カテゴリの 32 個のパーティション テーブルすべてからデータを収集します。 たとえば、 dbo.TimerJobUsage_Partition0 から dbo.TimerJobUsageUsage_Partition31 までの 32 個のテーブルの監視情報を表示することができます。

定義済みビューにアクセスするには、SharePoint Server 2016 ログ データベースにアクセスする必要があります。 このログ データベースから監視情報を表示します。

Management Studio を使用してログ データベースにアクセスするには

  1. この手順を実行するユーザー アカウントに、 db_owner 固定データベース ロールがあることを確認します。

  2. タスクバーで、[ スタート] ボタンをクリックし、[ すべてのプログラム] をポイントします。次に、[ Microsoft SQL Server 2008] またはインストールされている最新の SQL Server バージョンをクリックし、[ SQL Server Management Studio] をクリックします。

    注:

    サーバーに Management Studio がない場合は、SQL Server 2008 を再インストールし、Management Studio コンポーネントを追加します。 詳細については、「はじめに (SQL Server 2012)」を参照してください。

  3. [ サーバーへの接続 ] ダイアログで、[ データベース エンジン] を選択します。 次に、サーバー名 (ServerName\SharePoint など) を指定します。 SharePoint Server 2016Central Administration を使用して構成した認証の種類 (Windows 認証またはSQL Server認証) を選択します。 認証SQL Server場合は、データベース管理者の資格情報を指定します。 情報が設定されたら、[ 接続] をクリックします。

  4. [表示] をクリックし、[オブジェクト エクスプローラー] をクリックして、オブジェクト エクスプローラービューに切り替えます。 [ データベース] を展開して、既定の名前 SharePoint_Logging またはサーバーの全体管理で構成した名前を持つログ データベースを表示します。

  5. 必要に応じて、ログ データベースを展開し、テーブルとビューを表示します。

既定のビューでログ情報を表示するには

  1. この手順を実行するユーザー アカウントに、 db_owner 固定データベース ロールがあることを確認します。

  2. Management Studio で、前の手順に従ってログ データベース ノードに移動します。

  3. データベースの [ ビュー] ノードを展開し、既定のビューを表示します。 ビュー ( dbo.RequestUsage など) を右クリックし、[ 上位 1000 行の選択] を選択します。

    [ 上位 1000 行の選択] 操作の T-SQL クエリ スクリプトを次に示します。

    /****** Script for SelectTopNRows command from SSMS ******/
    SELECT TOP 1000 [PartitionId]
          ,[RowId]
          ,[LogTime]
          ,[MachineName]
          ,[FarmId]
          ,[SiteSubscriptionId]
          ,[UserLogin]
          ,[CorrelationId]
          ,[WebApplicationId]
          ,[ServerUrl]
          ,[SiteId]
          ,[SiteUrl]
          ,[WebId]
          ,[WebUrl]
          ,[DocumentPath]
          ,[ContentTypeId]
          ,[QueryString]
          ,[BytesConsumed]
          ,[HttpStatus]
          ,[SessionId]
          ,[ReferrerUrl]
          ,[ReferrerQueryString]
          ,[Browser]
          ,[UserAgent]
          ,[UserAddress]
          ,[RequestCount]
          ,[QueryCount]
          ,[QueryDurationSum]
          ,[ServiceCallCount]
          ,[ServiceCallDurationSum]
          ,[OperationCount]
          ,[Duration]
          ,[RequestType]
          ,[Title]
          ,[RowCreatedTime]
      FROM [SharePoint_Logging].[dbo].[RequestUsage]
    

    [ 要求の利用状況] テーブル カテゴリの上位 1000 行が結果ウィンドウに表示されます。

  4. T-SQL クエリは、SQL エディター ウィンドウで変更できます。 たとえば、テーブルに含まれる行が 1000 を超える場合は、上位 5000 行を表示してください。 それには、スクリプトで "SELECT TOP 1000" を "SELECT TOP 5000" に置き換えて、[ 実行] をクリックします。

Management Studio 以外のツールを使用してログを表示するには、ビューから監視情報を抽出し、テキスト ファイルまたは CSV ファイルとして保存します。 次の手順では、Excel が例として使用されています。

Excel を使用してログ データをエクスポートおよび表示するには

  1. この手順を実行するユーザー アカウントに、 db_owner 固定データベース ロールがあることを確認します。

  2. Management Studio で、ログ データベース ノードに移動します。

  3. [ ビュー] ノードを展開し、データを抽出するビューを右クリックして、[ 上位 1000 行の選択] をクリックします。

  4. 結果ウィンドウ内で右クリックし、[ すべて選択] をクリックします。 次に、右クリックし、[ 結果を名前を付けて保存]をクリックします。...

  5. [ グリッドの結果を保存] ウィンドウで、ファイルを保存するフォルダーを指定し、[ ファイルの種類] として [CSV (コンマ区切り)] を指定して、適切なファイル名を指定します。

  6. Excel で CSV ファイルをダブルクリックして開きます。

SharePoint ログ データベースのカスタム SQL ビュー

SharePoint Server 2016 のログ データベースを使用すると、2 つの方法でカスタム レポートを作成できます。 既存のテーブルの関連情報を組み合わせて新しいビューを生成することも、プロバイダーを記述してログ データベース内に新しいパーティション テーブルを生成することもできます。 このセクションの例では、最初の方法のみを示します。

利用状況テーブルと ULSTraceLog テーブルでは、 CorrelationId は、トラブルシューティング用の重要なパラメーターです。 すべてのエラー メッセージに一意の CorrelationId が含まれるからです。 CorrelationId は、要求に関するすべての関連情報にリンクする GUID です。 次の手順は、 CorrelationId を使用して複数のログ カテゴリをリンクするカスタム ビューを作成する方法を示しています。

既存のテーブルを使用するカスタム SQL ビューを作成するには

  1. この手順を実行するユーザー アカウントに、 db_owner 固定データベース ロールがあることを確認します。

  2. Management Studio で、ログ データベース ノードに移動します。

  3. ログ データベースで、[ ビュー ] ノードを展開します。 情報を収集するビューのいずれかを選択します。 ビューを右クリックし、[ 新しいビュー] をクリックします。

  4. [ テーブルの追加] ウィンドウで、追加するテーブルを選択します。 たとえば、1 日の機能利用状況サイト要求に関する情報が必要な場合は、 dbo.FeatureUsage_Partion1dbo.RequestUsage_Partion1 を追加します。

    T-SQL クエリは、2 つのテーブルの一意のキー PartionId を自動的に内部結合します。

SELECT     
FROM   dbo.FeatureUsage_Partition1 INNER JOIN
    dbo.RequestUsage_Partition1 ON dbo.FeatureUsage_Partition1.PartitionId = dbo.RequestUsage_Partition1.PartitionId

  1. これらのテーブル間のリンクを右クリックし、[ 削除] を選択して、テーブル間の結合を解除します。

  2. CorrelationId を使用して 2 つのテーブルを内部結合するには、1 つのテーブルの [ CorrelationId] 列をクリックし、ポインターを他のテーブルの [ CorrelationId] 列に移動します。 SQL クエリをクエリ エディターで直接変更することもできます。

SELECT  
FROM   dbo.FeatureUsage_Partition1 INNER JOIN
    dbo.RequestUsage_Partition1 ON dbo.FeatureUsage_Partition1.CorrelationId = dbo.RequestUsage_Partition1.CorrelationId 

  1. 新しいビューに表示する列を各テーブルで選択します。

  2. 右クリックして [ SQL の実行] を選択します。 結果が結果ウィンドウに表示されます。

関連項目

概念

SharePoint Server 2016 でレポートとログを表示する

SharePoint Server 2016 での監視の概要