LoginSignup
0
0

More than 5 years have passed since last update.

Azureの「Web サーバー ログ」をiLogScannerで解析する方法

Posted at

概要

image

Azureの「Web サーバー ログ」を取得をオンにすると、/LogFiles/http/RawLogs以下にW3C 拡張ログ ファイル形式のログテキストファイルが出力されます。

ログファイルの確認は、いろいろと方法があるかと思いますが、
IPAのiLogScannerで解析する方法をメモとして残します。

image

方法

Azureから出力されるiis_w3cフォーマットを素のままでは、iLogScannerで読み込めません。いくつかのログ変換処理が必要です。

変更箇所

#Version,#Date行の追加

2,3行目に以下を加えます。値は適当で大丈夫だと思います。

  #Version: 1.0
  #Date: 2015-05-24 20:18:01

Fieldsの項目順序変更

iLogScannerで読み込める順番と項目が決まっているようです。#Fields行を以下の順序に変更します。
最後にスペースが必要です。

  #Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent) 

s-ipを用意する

Azureのログにs-ip(サーバのipアドレス)は含まれません。Azureの管理ポータル上でIPアドレスが見れるので、ひとまずそれを使います。

実際のログの順序をfields定義に合わせて変更

出力されたログ行をFields定義に合わせて順序を変更します。

以上の変更点を、適当に文字列操作スクリプトを書いて実行します。参考までにRubyコードです。

s_ip = "*.*.*.*"  #s-ip parameter

CustomizeLogFileName = "custom_" + ARGV[0]
puts(CustomizeLogFileName)

cFile = File.open(CustomizeLogFileName,"w")

File.open(ARGV[0]) do |file|
  while line = file.gets
    if /^#Software:/ =~line
      cFile.puts(line)
      cFile.puts("#Version: 1.0")               # temporary
      cFile.puts("#Date: 2015-05-24 20:18:01")  # temporary
    elsif /^#Fields:/ =~line 
      cFile.puts("#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent) ")
    else
      fieldsArray = line.split(' ')
      fields = fieldsArray[0] + " "   #date
      fields += fieldsArray[1] + " "  #time
      fields += fieldsArray[8] + " "  #c-ip
      fields += fieldsArray[7] + " "  #cs-username
      fields += s_ip + " "            #s-ip
      fields += fieldsArray[6] + " "  #s-port
      fields += fieldsArray[3] + " "  #cs-method
      fields += fieldsArray[4] + " "  #cs-uri-stem
      fields += fieldsArray[5] + " "  #cs-uri-query
      fields += fieldsArray[13] + " "  #sc-status
      fields += fieldsArray[9] + " "  #cs(User-Agent)
      cFile.puts(fields)
    end
  end
end

cFile.close

以上の操作を実行すると、iLogScannerで解析できるようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0