IIS 6.0 Resource Kit Tools

| | コメント(0) | トラックバック(0)

・Download details: Internet Information Services (IIS) 6.0 Resource Kit Tools
http://www.microsoft.com/downloads/details.aspx?familyid=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en

  • ログファイルの問い合わせ
  • SSL証明書の配置
  • サイト証明
  • パーミッションの確認
  • 問題解決
  • サーバ移動
  • 負荷テスト
などのツールが含まれているようです。

Windows Server 2003, Windows XPで動きます。
ただし、一部の機能はWindows XP Professionalで使えません。

Windows 2000 では、

> iis60rkt.exe /V/a

として展開して、必要なツールを抜き出せば使えます。
(Log Parserは使えるそうです)

Log Parser Version 2.1

(2005/02/20 追記 ここから)
「Log Parser 2.2」というのが出てました。(2005/02/11リリース。 Version:2.2.9)

・Download details: Log Parser 2.2
http://www.microsoft.com/downloads/details.aspx?familyid=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

何が変わったのかな?
下記の「Error decoding MBCS characters」のエラーの問題が解決されてると良いけどな。
今度試してみよう。
試してみました。エラーが出なくなりました。
エントリを追加しました。

SEE:
Log Parser 2.2 (このblogより)
(2005/02/20 追記 ここまで)

コマンドプロンプトからSQL文を使用してログファイルの必要な結果を表示できます。
フィールド名はIISのログに書かれるField名と同じです。

● 例1
localhost以外からのアクセスをアクセス数順に表示(名前解決なし)

> LogParser.exe "SELECT date, c-ip AS Client, COUNT(*) 
FROM ex*.log WHERE c-ip<>'127.0.0.1' 
GROUP BY date, Client ORDER BY COUNT(*) DESC" 
-o:CSV > out.csv

● 例2
localhost以外からのアクセスをアクセス数順に表示(名前解決あり)

> LogParser.exe "SELECT date, REVERSEDNS(c-ip) AS Client, COUNT(*) 
FROM ex*.log WHERE c-ip<>'127.0.0.1' 
GROUP BY date, Client ORDER BY COUNT(*) DESC" 
-o:CSV > out.csv

「.\Samples\Queries\」ディレクトリにSQLサンプルがあります。
SQLサンプルを使用した例です。

● 例3
ex*.logのエラー行をCSVファイルに出力する

> LogParser.exe file:.\Samples\Queries\Errors.sql 
-o:CSV > out.csv

● 検索エンジンボットのアクセスログ抽出 (2003/10/06 追記)
ここでは、googleのbotのアクセスログを抽出するバッチファイルを作成します。
作成するファイルは、「bot.bat」と「bot_google.sql」の2つです。
結果として、「bot.csv」というファイルを作成します。

・bot.bat

@ECHO OFF
ECHO 処理中...
 
SET LOG_DIR="IISのログファイルのあるディレクトリパス"
SET EXE_DIR="Log Parserの実行ファイルのあるディレクトリパス"
SET SQL_DIR="bot_google.sqlファイルのあるディレクトリパス"
SET OUT_DIR="結果出力先のディレクトリパス"
 
CD %LOG_DIR%
%EXE_DIR%\LogParser.exe -o:CSV file:%SQL_DIR%\bot_google.sql > %OUT_DIR%\bot.csv

・bot_google.sql

SELECT date, time, cs-uri-stem, cs-uri-query, cs(User-Agent), c-ip
FROM ex*.log
WHERE cs(User-Agent) LIKE 'Googlebot/%'
ORDER BY date, time

● 検索エンジンで検索された文字列の表示 (2003/10/06 追記)
ここでは、googleとyahooで検索された文字を調べるバッチファイルを作成します。
作成するファイルは、「searched.bat」と「searched_google.sql」と「searched_yahoo.sql」の3つです。
結果として、「searched.csv」というファイルを作成します。
SQL文中のURLUNESCAPE関数のcodepage(第2引数)は、googleでは デフォルト (UTF-8 ?) 、yahooでは 20932 (EUC-JP) を使用したらうまくいきました。

2003/10/11 追記
exciteは 932 (S_JIS)、bigloabeは 20932 (EUC-JP)、infoseekは 20932 (EUC-JP) でうまくいきました。

・searched.bat

@ECHO OFF
ECHO 処理中...
 
SET LOG_DIR="IISのログファイルのあるディレクトリパス"
SET EXE_DIR="Log Parserの実行ファイルのあるディレクトリパス"
SET SQL_DIR="searched_google.sqlとsearched_yahoo.sqlファイルのあるディレクトリパス"
SET OUT_DIR="結果出力先のディレクトリパス"
 
CD %LOG_DIR%
%EXE_DIR%\LogParser.exe -o:CSV file:%SQL_DIR%\searched_google.sql > %OUT_DIR%\searched.csv
%EXE_DIR%\LogParser.exe -o:CSV file:%SQL_DIR%\searched_yahoo.sql >> %OUT_DIR%\searched.csv

・searched_google.sql

SELECT 
  URLUNESCAPE(
    EXTRACT_VALUE(
      SUBSTR(
        SUBSTR(
          cs(Referer),
          INDEX_OF(cs(Referer), '?')
        ),
        1
      ),
      'q'
    )
  )
  AS SearchString,
  cs-uri-stem,
  cs-uri-query,
  date,
  time,
  c-ip
FROM ex*.log
WHERE cs(Referer) LIKE '%.google.%'
ORDER BY date, time

・searched_yahoo.sql

SELECT 
  URLUNESCAPE(
    EXTRACT_VALUE(
      SUBSTR(
        SUBSTR(
          cs(Referer),
          INDEX_OF(cs(Referer), '?')
        ),
        1
      ),
      'p'
    ),
    20932
  )
  AS SearchString,
  cs-uri-stem,
  cs-uri-query,
  date,
  time,
  c-ip
FROM ex*.log
WHERE cs(Referer) LIKE '%websearch.yahoo.%'
ORDER BY date, time

● W3C拡張ログをApacheのcombinedの形式に変換する (2003/10/09 追記)
IISが吐き出したW3C拡張ログをApacheのcombinedの形式に変換します。
ApacheのCommon Log Format(これをCLFというと思う)に変換するコマンド(※1)はあるけれど、RefererとUser-Agentが追加されたCombined Log Format(こっちもCLF?)が欲しかったので。
作成するファイルは、「w3c2clf.bat」と「w3c2clf.sql」の2つです。
結果として、「clf.log」というファイルを作成します。

・w3c2clf.bat

@ECHO OFF
ECHO 処理中...
 
SET LOG_DIR="IISのログファイルのあるディレクトリパス"
SET EXE_DIR="Log Parserの実行ファイルのあるディレクトリパス"
SET SQL_DIR="bot_google.sqlファイルのあるディレクトリパス"
SET OUT_DIR="結果出力先のディレクトリパス"
 
CD %LOG_DIR%
%EXE_DIR%\LogParser.exe -stats:OFF -o:DATAGRID file:%SQL_DIR%\w3c2clf.sql > %OUT_DIR%\clf.log

・w3c2clf.sql

SELECT
  c-ip,
  '-',
  cs-username,
  STRCAT('[', 
    STRCAT(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(
      REPLACE_STR(TO_STRING(date, 'dd/MM/yyyy'),
      '/12/', '/Dec/'),
      '/11/', '/Nov/'),
      '/10/', '/Oct/'),
      '/09/', '/Sep/'),
      '/08/', '/Aug/'),
      '/07/', '/Jul/'),
      '/06/', '/Jun/'),
      '/05/', '/May/'),
      '/04/', '/Apr/'),
      '/03/', '/Mar/'),
      '/02/', '/Feb/'),
      '/01/', '/Jan/'),
      STRCAT(':', STRCAT(TO_STRING(time, 'HH:mm:ss'), ' +0000]')))),
  STRCAT('"',
    STRCAT(cs-method,
      STRCAT(' ',
        STRCAT(cs-uri-stem,
          STRCAT('?',
            STRCAT(cs-uri-query,
              STRCAT(' ',
                STRCAT(cs-version, '"')))))))),
  sc-status,
  sc-bytes,
  STRCAT('"', STRCAT(REPLACE_IF_NULL(cs(Referer),'-'), '"')),
  STRCAT('"', STRCAT(REPLACE_IF_NULL(cs(User-Agent),'-'), '"'))
FROM ex*.log

「TO_STRING(date, 'dd/MM/yyyy')」のところは「TO_STRING(date, 'dd/MMM/yyyy')」とすればうまくいきそうなもんだが、MMと同じ結果になってしまう。
ロケートの問題だろうか?
ちなみに、「TO_STRING(date, 'dd/MMMM/yyyy')」とすると、「10月」と表示されました。

(※1)
IISの「W3C拡張ログファイル形式」を「NCSA共通ログファイル形式」に変換するには「convlog.exe」を使用します。
Windows2k/XPには「%WinDir%\System32\」に入っていました。

# ヘルプを表示
> convlog
 
# IISログファイルをデフォルトの場所に出力した時
# IPアドレスをホスト名に変換しない時
# カレントディレクトリに「ex*.log.ncsa」「ex*.log.dmp」が作成されます
> convlog -ie C:\WINNT\system32\LogFiles\W3SVC1\ex*.log -t ncsa:+0000 -x -l1
 
# IPアドレスをホスト名に変換する時
# DNSの逆引きに時間がかかります
# カレントディレクトリに「ex*.log.ncsa.dns」「ex*.log.dmp」が作成されます
> convlog -ie C:\WINNT\system32\LogFiles\W3SVC1\ex*.log -t ncsa:+0000 -x -d -l1

○-c オプションについてWin2k版とWinXP版では微妙に違うようです。


  • Win2k版
    -c オプションがありません
    コメント行やフォーマットがおかしい行はスキップされます。
  • WinXP版
  • -c ありの時
    コメント行、空行はスキップされます
    フォーマットがおかしくても強制的に変換されます
  • -c なしの時
    空行や、フォーマットがおかしい行があると、途中終了します。

(※1 終了)

● 「Error decoding MBCS characters」のエラー (2004/09/05 追記)

最近、よく以下のエラーが出て「Log Parser」の処理が途中で止まってしまいます。

Task aborted.
Cannot open : Error decoding MBCS characters

「MBCS」は「multi-byte code sequence(マルチバイト文字セット)」の事ですよね?

MBCSの文字がリファラーに含まれていて、エラーになっているみたいです。
メモ帳で開くと「■」の幅が半分になった文字として表示されます。
その文字は、例えば「0xA0 0x2B」に相当してました。
その文字を削除して「Log Parser」を通せば大丈夫ですが、何か良い方法はないですかね?

● Windowsイベントログ解析 (2003/10/14 追記)
(WEBログじゃないけど・・・)
Windowsイベントログ(システム、アプリケーション、セキュリティ、カスタム)とそのバックアップログファイル(*.EVT)を読み込むことが出来ます。
システム、アプリケーション、セキュリティイベントログには、それぞれ、SQL文のFROMの後に、System、Application、Securityというテーブル名(?)でアクセスできます。

# Application Event Log から種類が「Error event」のみ抽出し、
# APP_ERROR.csvに吐き出します
> LogParser.exe -i:EVT -o:CSV 
"SELECT TimeWritten, SourceName, Message 
FROM Application WHERE EventType=1" > APP_ERROR.csv

ここで、EventTypeとEventTypeNameの関係は、

EventType   EventTypeName
---------   -------------
1           Error event
2           Warning event
4           Information event
8           Success Audit event
16          Failure Audit event

です。
詳しく調べてないので他にもあるかも。

フィールドは他にもあるので、色々組み合わせて使ってみてください。

(2004/03/11 追記 ここから)
・The Unofficial Log Parser Support Site
http://www.logparser.com/
(2004/03/11 追記 ここまで)

TinyGet Version 5.2
コンソールHTTPクライアント。
HTTPSや認証にも対応。
ストレスツールとしても使える。

○ -t オプション
リクエストとレスポンスを表示

○ -h オプション
レスポンスヘッダの表示

○ -d オプション
レスポンスボディの表示

○ -statusオプション
ステータスをセットし、それ以外が返るとエラーメッセージを表示する

○ -testContainStringオプション
文字列をセットし、レスポンスボディにそれが含まれないとエラーメッセージを表示する

○ -testNotContainStringオプション
文字列をセットし、レスポンスボディにそれが含まれるとエラーメッセージを表示する

○ -hostheader
「required parameter ServerName is missing」のエラーが出た時に設定するといいみたい?

などなどなど。
インストールディレクトリにあるヘルプを見ましょう。

デフォルトのHTTPバージョンはヘルプではHTTP/1.0になってるけど、実際はHTTP/1.1っぽい。

WFetch Version 1.3
任意のHTTPリクエストを送りレスポンスを表示する。
認証なども行えるみたい。
サーバのテスト、トラブルシューティングなどに使う。
GUI。

■ 他のツールはおいおい。。。書くかも、、、書かないかもな。。

トラックバック(0)

このブログ記事を参照しているブログ一覧: IIS 6.0 Resource Kit Tools

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/42

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2003年10月 3日 06:45に書いたブログ記事です。

ひとつ前のブログ記事は「GreedyDog」です。

次のブログ記事は「pdf995」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261