概要: Log Parser Studio

原文の記事の投稿日: 2012 年 3 月 8 日 (木曜日)

IIS (Internet Information Server) とその他のログから役立つ情報を取得する目的で、頻繁に Log Parser 2.2 を使用するユーザーは、それがどれほど役立ち、高機能か知っています。さらに、SQL の機能を追加することにより、ノイズを除外すると同時に、必要なデータのみを戻すよう GB 単位のログを明示的に検索できます。残念ながら、これまで、Log Parser のフロントエンドとして機能するグラフィカル ユーザー インターフェイス (GUI) と、長期にわたって構築してきた、優れたクエリとスクリプトをすべて管理する "クエリ ライブラリ" のようなものはありませんでした。

Log Parser Studio はこの目的で作られました。Log Parser 2.2 を使用するユーザー (インターフェイスがないという理由でこれまで使ってこなかったユーザーも) は、より速く、より効率的に作業できます。スクリプトをいじる作業やフォルダーいっぱいのクエリを減らしつつ、必要なデータを見つけることができます。

Log Parser Studio (略して LPS) では、すべてのクエリを一箇所に集中して管理できます。"クエリ エディター" で新しいクエリを作成、編集し、後で使用する目的で保存できます。クエリは、フリー テキスト検索を使用して、検索できます。また、ライブラリとクエリの両方をさまざまな形式でエクスポート、インポートできます。これにより、簡単にコラボレーションができ、また、さまざまなプロトコルで複数の種類の個別のライブラリに保存できます。

Exchange プロトコル用にログを処理する

さまざまな Exchange プロトコルのログを処理することは時間のかかる作業になるということはよくご存じでしょう。出力形式が重要な場合、専用ツールがなければ、Exchange 管理者にとって、Log Parser (またはその他のツール) を使用して、それらのログをふるいにかけ、処理するのは面倒な作業です。また、それらの SQL クエリを作成する専門技術を必要とします。また、Web で、特別なスクリプトを探して使用し、出力を解析して、これらの長いログの解読を試みることもできます。Log Parser Studio は、主に Exchange プロトコルのさまざまなログをすばやく簡単に処理するよう設計されています。開始すると、Microsoft Exchange ActiveSync (MAS)、Exchange Web Services (EWS)、Outlook Web アプリケーション (OWA/HTTP) のような、さまざまな Exchange プロトコルのタブを確認できます。これらのタブ内に、特定の目的で作成された SQL クエリが多数あり (クエリとその他の詳細はメイン UI でも参照できます)、クリック 1 つで実行できます。

以下では、Log Parser Studio のいくつかのクールな機能の詳細を説明します。

クエリ ライブラリおよび管理

LPS を開始して、最初に表示されるのは、付属するクエリを含むクエリ ライブラリです。ここですべてのクエリを管理します。ライブラリは、[ライブラリ] (Library) タブをクリックすると表示されます。いくつかの方法でクエリを読み込み、確認または実行できます。最も簡単な方法は、リスト内のクエリを選択してダブルクリックするだけです。そうすると、クエリは、自動的に、[クエリ] (Query) タブで開きます。クエリ ライブラリは、クエリのホーム ベースです。LPS で管理されるすべてのクエリは、このライブラリに保存されます。必要なクエリをすばやく見つける簡単な方法があります。また、お気に入りとしてマークを付けると、後ですばやくアクセスできます。

image

ライブラリの回復

LPS に付属する初期のライブラリは、アプリケーションに埋め込まれており、インストール時に作成されます。ライブラリを削除、破損、または失った場合は、ライブラリ回復機能 ([オプション] (Option) | [ライブラリを回復] (Recover Library)) で、元のライブラリに簡単にリセットできます。ライブラリを回復すると、既存のクエリはすべて削除されます。削除したくないカスタム クエリまたは変更したクエリがある場合は、最初にそれらをエクスポートする必要があります。既定の一連のクエリを回復した後で、それらを LPS に結合して戻すことができます。

インポート/エクスポート

必要に応じて、ライブラリ全体またはライブラリのサブセットを、既定の LPS XML 形式または SQL クエリとして、インポートまたはエクスポートできます。たとえば、フォルダー内に多くの Log Parser SQL クエリがある場合、LPS のライブラリにそれらのいくつかまたはすべてをインポートできます。通常、インポート後には少しの調整を行うだけで済みます。LPS が必要とするのは、基準 SQL クエリと、ファイル名参照を "[LOGFILEPATH]" か "[OUTFILEPATH]" のどちらか、またはその両方に入れ替えることです。これについては、ツールに付属する PDF マニュアルで詳細に説明されています。マニュアルには、LPS で [ヘルプ] (Help)、[マニュアル] (Documentation) の順にクリックしてアクセスできます。

クエリ

クエリを適切に構造化することで大きな違いが出る点に注意してください。適切なクエリは、必要とする簡潔な情報を戻します。これに対して、問題があるクエリは、システムに負担をかけ、実際に必要とするよりはるかに多い情報を戻して、場合によってはアプリケーションをクラッシュさせます。

image

優れた SQL/Log Parser クエリを作成する技法は、この投稿の意図の範囲外です。しかし、LPS に付属するすべてのクエリは、最も少ないレコードを戻し、最も簡潔な結果を得るように作成されています。なにが必要か把握し、最少の行数でそれを取得することが鍵となります。

バッチ ジョブとマルチスレッド

LPS と Log Parser 2.2 を組み合わせると、非常に高機能なツールになります。しかし、一度に単一のクエリを実行して、結果を待つことしかできなければ、思うように仕事が進みません。これを解決する目的で、LPS には、バッチ ジョブとマルチスレッド クエリがあります。

バッチ ジョブは、ボタンを 1 つクリックするだけで実行できる、一連の定義済みのクエリです。バッチ マネージャーから、すべての単一またはすべてのクエリの実行と除外ができます。バッチ マネージャーで、[複数のクエリを実行] (Run Multiple Queries) ボタン、または [実行] (Execute) ボタンをクリックすることにより実行することもできます。実行時に、LPS はバッチとして各クエリを準備して、実行します。既定では、各クエリの準備ができるとすぐに、LPS は Log Parser 2.2 にすべてのクエリを送信します。ここで、マルチスレッドが役立ちます。たとえば、50 のクエリをバッチ ジョブとして設定し、ジョブを実行したとします。Log Parser では、バックグラウンドで 50 のスレッドがすべて同時に実行されます。ユーザーは、その他のクエリで自由に作業できます。各ジョブが完了すると、結果は、グリッドに戻されるか、クエリの種類に基づいた CSV 出力として戻されます。このシナリオでは、引き続き、その他のクエリの使用、検索、変更、および実行ができます。各クエリが完了すると、そのスレッドは終了し、そのリソースが解放されます。これらのスレッドはバックグラウンドで非常に効率的に管理されるので、複数のクエリを同時に実行しても問題はありません。

image

では、パフォーマンスまたはその他の理由から、バッチ内のクエリを同時に実行する必要がある場合はどうでしょうか。この機能は、LPS のオプションにあります。LPS で、[オプション] (Options)、[設定] (Preferences) の順にクリックして、[順にバッチ クエリを処理] (Process Batch Queries in Sequence) チェックボックスをオンにします。チェックがオンにされると、バッチ内の最初のクエリが実行され、最初のクエリが完了するまで、次のクエリは開始しません。バッチ内の最後のクエリが実行されるまで、この過程は続行します。

自動化

バッチ ジョブと関連して、自動化により、バッチ ジョブを無人で実行するようスケジュール設定できます。たとえば、特定のバッチ ジョブを実行するスケジュール設定タスクを作成して、個別の一連のカスタム フォルダーでも自動的に実行できるようにできます。この過程では、フォルダー リスト ファイル (.FLD) とバッチ リスト ファイル (.XML) が必要です。これらは、LPS で事前に作成します。詳細は、マニュアルを参照してください。

グラフ

結果グリッドにデータを戻す多くのクエリでは、内蔵のグラフ作成機能を使用してグラフ化できます。グラフの基本的な要件は、Log Parser 2.2 と同じで、以下のようになります。

  1. グリッド内の最初の列では、すべてのデータ型 (たとえば文字列、数値) を使えます
  2. 2 番目の列は、数値 (Integer、Double、Decimal) である必要があり、文字列は使用できません

自分のクエリを作成するとき、上記の要件に留意して、2 列目には数値を含むように意識してクエリを作成してください。グラフを作成するには、クエリが完了した後で、グラフ ボタンをクリックします。2 列目を数値にすることを忘れた場合でも、事後に、任意の番号を含む列をドラッグして 2 番目の列にドロップできます。こうすれば、複数の数値列がある場合、関心がある列のみを 2 番目の列にドラッグして、同じデータからさまざまなグラフを生成できます。グラフ作成機能の詳細は、マニュアルを参照してください。

image

キーボード ショートカット/コマンド

LPS には、複数のキーボード ショートカットがあります。キーボード ショートカットは、LPS を使用中に、いつでも [ヘルプ] (Help)、[キーボード ショートカット] (Keyboard Shortcuts) の順にクリックし、リストを表示して確認できます。現在、以下のようなショートカットがあります。

ショートカット 機能
CTRL + N 新しいクエリを開始します。
CTRL + S アクティブなクエリを、フォーカスに応じて、ライブラリまたはクエリ タブのどちらかに保存します。
CTRL + Q ライブラリ ウィンドウを開きます。
CTRL + B ライブラリ内の選択したクエリをバッチに追加します。
ALT + B バッチ マネージャーを開きます。
CTRL + B 選択したクエリをバッチに追加します。
CTRL + D 現在のアクティブなクエリを新しいタブに複製します。
CTRL + ALT + E エラー ログが存在する場合は、それを開きます。
CTRL + E 現在、選択されているクエリ結果を、CSV にエクスポートします。
ALT + F ライブラリ内の選択したクエリをお気に入りリストに追加します。
CTRL + ALT + L 既定として指定されているテキスト エディターでライブラリを開きます。
CTRL + F5 ディスクからライブラリを再読み込みします。
F5 アクティブなクエリを実行します。
F2 ライブラリ内の、現在、選択されているクエリの名前/詳細を編集します。
F3 IIS フィールドのリストを表示します。

サポートされる入力および出力の種類

Log Parser 2.2 には、複数の種類のログにクエリを実行する機能があります。LPS はまだ開発途中であることから、最もよく使用される種類のみを、現在、使用できます。その他の入力および出力の種類は、今後のバージョンまたは更新プログラムで、追加される可能性があります。

サポートされる入力の種類

W3SVC/IIS、CSV、HTTP エラーのフル サポートと、Log Parser 2.2 内蔵のすべての入力形式の基本的なサポート。また、Microsoft Exchange 固有の形式のような一部のカスタム作成された LPS 形式 (既定の Log Parser 2.2 インストールでは使用できません)。

サポートされる出力の種類

CSV と TXT が、現在、サポートされている出力ファイルの種類です。

Log Parser Studio - クイック スタート ガイド

詳細は後回しにして、すぐにクエリを実行しますか? こちらから開始できます。

Log Parser Studio に対して最初にする作業は、ログ ファイルの場所と、結果を CSV ファイルとしてエクスポートするすべてのクエリが使う、既定の保存場所を指定することです。

1. 既定の CSV 出力パスを設定します。

a. [オプション] (Options)、[設定] (Preferences)、[既定の出力パス] (Default Output Path) の順にクリックします。

b. エクスポートした結果の保存に使用するフォルダーを参照して、選択します。

c. [適用] (Apply) をクリックします。

d. CSV ファイルをエクスポートするすべてのクエリは、このフォルダーに保存するようになります。
: このパスの設定を忘れた場合、CSV ファイルは既定で %AppData%\Microsoft\Log Parser Studio に保存されます。しかし、これは別の場所に移動することを推奨します。

2. ログ ファイル マネージャーを開いて、ログ ファイルの場所を指定します。この手順を完了する前に、クエリを実行した場合、LPS は、ログ パスを設定するように求めます。そのメッセージで [OK] をクリックすると、ログ ファイル マネージャーが表示されます。フォルダーを追加するには、[フォルダーを追加] (Add Folder) をクリックします。 単一または複数のファイルを追加するには、[ファイルを追加] (Add File) をクリックします。フォルダーを追加するときも、LPS にどの種類のログで作業するか知らせる目的で、少なくとも 1 つのファイルを選択する必要があります。このとき、LPS は自動的にこれをワイルドカード (*.xxx) にして、フォルダー内のすべての一致するログが検索されるようにします。

どのフォルダーまたはファイルが、現在、検索されているかは、Log Parser Studio の右下のステータス バーで簡単に確認できます。完全パスを表示するには、ステータス バーの上にポインターを移動します。

: LPS と Log Parser は、クエリを実行できる複数の種類のログとオブジェクトを処理します。クエリを実行中のログの種類が、実行中のクエリと一致する必要があることに注意する必要があります。言いかえれば、IIS ログを予期するクエリを実行するときは、ファイル マネージャーで IIS ログだけを選択している必要があります。(忘れやすいことですが) こうしないと、クエリを実行するとき、エラーや予想外の動作が発生します。

3. ライブラリからクエリを選択し、それを実行します。

a. まだ選択していない場合は、[ライブラリ] (Library) タブをクリックします。

b. リストからクエリを選択し、それをダブルクリックします。これにより、それ自身のタブでクエリが開きます。

c. クエリを実行するには、[単一クエリを実行] (Run Single Query) ボタンをクリックします。

バックグラウンドでクエリ実行が開始します。クエリ完了後の出力先には、2 つの種類があります。クエリ タブの上半分の結果グリッド、または CSV ファイルです。一部のクエリはグリッドに戻され、その他の、メモリにより負担をかけるクエリは CSV に保存されます。

一般的なルールとして、非常に大量の結果を戻すクエリは、後で Excel で処理できるよう CSV ファイルにすることがベストです。結果が出た後では、それらの結果を活用する多くの機能があります。詳細は、マニュアルを参照してください。

Log Parser Studio をぜひご活用ください! また、どんなこともクエリできるということを忘れないでください!

Kary Wall
エスカレーション エンジニア
Microsoft Exchange サポート

これはローカライズされたブログ投稿です。原文の記事は「Introducing: Log Parser Studio」をご覧ください。