連載
» 2006年10月27日 00時00分 公開

無償ながら強力なログ解析ツールLog Parserを活用する:第1回 Log Parserの概要 (4/4)

[小板公一,マイクロソフト株式会社]
前のページへ 1|2|3|4       

LogParser.dllの動作チェック

 WSHスクリプトからLog Parserを使うには、LogParser.dllが使用可能になっている必要がある。これには、regsvr32コマンドを実行して、LogParser.dllをレジストリに登録する必要があることはすでに述べた。LogParser.dllが正しく使える状態にあるかどうか、ここではコマンド・プロンプト上でWSHスクリプトを実行し、出力結果を確認しよう。

 これにはまず、コマンドラインで以下のようにコマンドを実行し、WSHのスクリプト・ホストをCScriptに設定する。これにより、コマンド・プロンプトでWSHスクリプトの実行結果を確認できるようになる。

CScript //h:CScript
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

既定のスクリプト ホストが "cscript.exe" に設定されました。

 次に、以下のVBScriptのスクリプトを、sample3.vbsとしてLogParser.exeと同じフォルダに保存する。

‘ sample3.vbs
Option Explicit
‘ オブジェクトの宣言
Dim objLogParser, objEventLogInputFormat, objNativeOutputFormat
‘変数の宣言
Dim strCommand

strCommand = "Select Top 1 * From Security"
‘ Log Parser COMオブジェクトの生成
Set objLogParser = CreateObject("MSUtil.LogQuery")
‘ 入力形式オブジェクトの生成とWindowsイベント・ログ入力形式の指定
Set objEventLogInputFormat = CreateObject("MSUtil.LogQuery.EventLogInputFormat")
‘ 出力形式オブジェクトの生成とNAT出力形式の指定
Set objNativeOutputFormat = CreateObject("MSUtil.LogQuery.NativeOutputFormat")
‘ Log Parserの実行
Call objLogParser.ExecuteBatch(strCommand, objEventLogInputFormat, objNativeOutputFormat)

‘オブジェクトの破棄
Set objNativeOutputFormat = Nothing
Set objEventLogInputFormat = Nothing
Set objLogParser = Nothing

 LogParser.dllを使用する場合は、LogParserのCOMオブジェクトのほかに、入出力形式オブジェクトを使用する必要がある。これらのオブジェクトに関する情報は、Log Parserのヘルプの[Log Parser]−[リファレンス]−[COM API]−[LogQuery オブジェクト]および[入力形式オブジェクト]と[出力形式オブジェクト]を参照してほしい。

 上記のsample3.vbsを実行すると、結果は以下のようになる。

Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

COUNT(ALL *)
------------
46629

はじめの一歩

 今回は、Log Parserの概要と、入手方法、インストールと動作確認までを行った。まだほんの入り口にすぎないが、Log Parserの可能性を感じていただけたのではないかと思う。

 次回は、DLL版のLog Parserによる、より本格的な解析、応用方法の例について、サンプル・スクリプトと出力を見ながら紹介する予定だ。

【コラム】開発者が語るLog Parser誕生秘話 ―― Gabriele Giuseppini

 1999年、私はIISのテスト工程でソフトウェア・デザイン技術者としての仕事を始め、そこでWebサーバが生成するログ・ファイルをテストしていました。IISがファイルとして生成したログの値を検証するためには、ログから指定したフィールドを抜き出すツールが必要であることが、私にはすぐに分かりました。単に抽出するだけでなく、一定の条件を満たす特定のエントリから特定のフィールドを取り出して、ログを再構成する必要があったのです。そして、この作業はコマンドラインあるいはシェル・スクリプトで行う必要がありました(これらの作業をコマンドライン・スイッチで行うのであれば、それは悪夢のような作業だったでしょう)。

 このような理由から、SQLに近い言語でこれらの処理を行うべきであることに気付き、Log Parser 1.0の開発に着手しました。Log ParserのSQLコアは非常に素晴らしいもので、ログ・ファイル以外にも使えるように、より一般化した構造へとアーキテクチャを完全に作り替える必要があることを悟りました。このため、Log Parserを一般的な入出力形式をサポートするツールへと再構成したのです。

 まずは、非IISログ形式として、イベント・ログ形式を入力形式として受け付け可能なツールとして正しく動作するようにLog Parserを書き換えました。そして、より汎用的な入力が可能になるように拡張を繰り返した結果が、現在のLog Parserです。

Microsoft Corporation
Gabriele Giuseppini


その後Gabriele Giuseppini氏は、米Microsoft社を退社しています。



「運用」のインデックス

連載目次

前のページへ 1|2|3|4       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。