Download


ダウンロードする前に、お読みください。

【概要】logcount.exe (ver 1.0)

指定ファイルのログ( Netscreen, Trustream )をログ中のタイムスタンプに 基づいて時間帯ごとにカウントします。
指定した時間ごとのログの行数をカウントする事ができます。
また、標準入力からもログを受ける事が出来ます。

【履歴】

2006-07-31 ver.1.0 リリース

【配布物の内容】

 logcount.exe        <----- 実行ファイルです。
 logcount.exy
 README.txt

 <ruby_src>
   logcount.rb
   logcounter.rb
   cmd_options.rb
   my_ext_time.rb
   my_ext_string.rb

 <test_code>
   test_rounded_time.rb
   test_my_ext_time.rb
   test_string_in_seconds.rb

<ruby_src> は Windows 実行ファイル作成の為に使用した Ruby スクリプトのフォルダです。
Ruby を使用する方は、お使いください。
実行ファイル logcount.exe のみを使用される方には、 <ruby_src>は不必要です。
logcount.exe の動作には問題ありません。

【環 境】

動作環境: Windows XP

【インストール方法】

logcount.zip を適当なディレクトリで展開してご使用ください。
logcount.zip を解凍したlogcount.exe が実行ファイルです。
logcount.exe を PATH が通っている適当なフォルダにコピーすれば、お使いただけます

【使用上の注意】

1)著作権は株式会社イーサポートサービス企画部にあります。
2)無料・無保証です。
 個人の責任でご使用ください。
3)再配布・改造は自由に行ってください。
4)商用利用は禁止します。

【感謝】

logcount.exe は Yuya Kato さんによる Exerb を使用して、 Ruby で開発されたスクリプトを Windows 実行形式ファイル にしています。

【ダウンロード】

以上の内容をお読みいただいた上で、こちらからダウンロードして下さい。

Logcount ダウンロード


【使用方法】

コマンドプロンプトから

logcount [options] filename

と実行します。

これで filename という Netscreen のログファイルを、指定したオプションで解析します。

logcount.exe -h
logcount.exe --help

と実行すると、オプションについての使用方法が見られます。

Usage: logcount.exe [options] filename ( default: STDIN )

        --start="START_TIME"             start_time: "YYYY-MM-DD HH:MM:SS"
解析したい対象のログの開始時は、必ず指定してください。
--offset=[OFFSET_TIME] ex) 7d1h25m30s ( = 7 days 1 hour 25 min 30 sec ) ( default:3600)
offsetでは、開始時刻からの解析を行う秒数を指定できます。
初期状態では 3600 [秒]に指定されています。
--delta=[DELTA_TIME] ex) 12h30m40s ( = 12 hour 30 min 40 sec ) ( default:60 )
ログの行数をカウントする時間の刻み幅を指定できます。
初期状態は 60 [秒]に指定されています。
--trust for Trustream
Trustream のログファイルを解析する際に指定してください。
解析対象ログファイルのデフォルトはNetscreenに設定されています。
--pat="PATTERN" maching pattern
PATTERNで指定した文字列を含む行をログファイルからカウントします。
PATTERNには、Rubyの正規表現が使えます。

【使用例】

log_sample.txt を解析する場合の使用例を紹介します。

Trustream サンプルログファイル : log_sample.txt
   1142262437.125 0 xxx.xxx.xxx.xxx TCP_MISS/000 0 GET - DIRECT/ - VIRUS-STAT:CLEAN:::PROXY-STAT:http:1:22446:0:0:
   1142262441.022 1 xxx.xxx.xxx.xxx TCP_MISS/000 0 GET - DIRECT/ - VIRUS-STAT:CLEAN:::PROXY-STAT:http:0:22445:0:0:
   1142262484.960 2 xxx.xxx.xxx.xxx TCP_MISS/000 0 GET - DIRECT/ - VIRUS-STAT:CLEAN:::PROXY-STAT:http:0:22445:0:0:
   1142262490.404 0 xxx.xxx.xxx.xxx TCP_MISS/000 0 GET - DIRECT/ - VIRUS-STAT:CLEAN:::PROXY-STAT:http:0:22445:0:0:
   1142262494.508 1 xxx.xxx.xxx.xxx TCP_MISS/000 0 GET - DIRECT/ - VIRUS-STAT:CLEAN:::PROXY-STAT:http:3:22448:0:0:
   

以下の様にコマンドラインから指定します。

 C:\>logcount --start="2006-3-14 00:06:00"
                                 --offset=5m --trust log_sample.txt
 

ポイント

--offset=5m で 5 分間の解析を行うように 指定します。 --offset=300s とも --offset=1m4m とも書くことが出来ます。
log_sample.txt は Trustream の ログファイルなので、 --trust をオプションとしてつけましょう。
解析対象となるファイル名は必ずオプション指定の後、最後に指定しましょう。

   出力結果:
   2006-03-14 00:06:00       0
   2006-03-14 00:07:00       2
   2006-03-14 00:08:00       3
   2006-03-14 00:09:00       0
   2006-03-14 00:10:00       0
   

--delta は指定していなくとも、デフォルトが[60]秒に設定されているので、 60秒刻みでカウントが行われます。

それでは、この sample_log.txt を更に詳しく解析してみる例を紹介します。

以下の様にコマンドラインから指定します。

   C:\>logcount --start="2006-3-14 00:07:00" 
                        --offset=1m30s --delta=1s --trust log_sample.txt
   

ポイント

--offset=1m30s は、--offset=90s とも書くことが出来ます。
--delta=1s で一秒ごとの刻みで カウントが行われます。

   出力結果:
   2006-03-14 00:07:00       0
      :
   2006-03-14 00:07:16       0
   2006-03-14 00:07:17       1
   2006-03-14 00:07:18       0
   2006-03-14 00:07:19       0
   2006-03-14 00:07:20       0
   2006-03-14 00:07:21       1
   2006-03-14 00:07:22       0
      :
   2006-03-14 00:08:04       1
   2006-03-14 00:08:05       0
   2006-03-14 00:08:06       0
   2006-03-14 00:08:07       0
   2006-03-14 00:08:08       0
   2006-03-14 00:08:09       0
   2006-03-14 00:08:10       1
   2006-03-14 00:08:11       0
   2006-03-14 00:08:12       0
   2006-03-14 00:08:13       0
   2006-03-14 00:08:14       1
   2006-03-14 00:08:15       0
      :
   2006-03-14 00:08:29       0
   

以上、 Trastream のログファイルを解析する例を紹介しました。



最後に、 --pat で、文字列を指定して、 その文字列のある行数をカウントする例を紹介します。

Netscreen サンプルログファイル : log_sample2.txt

Aug 29 00:00:46 *** esp-ns50: NetScreen device_id=esp-ns50
system-notification-00257(traffic): start_time="2005-08-28 23:30:44"
duration=0 policy_id=171 service=icmp ...
Aug 29 00:00:12 *** esp-ns50: NetScreen device_id=esp-ns50
system-notification-00257(traffic): start_time="2005-08-28 23:59:09"
duration=61 policy_id=44 service=snmp ...
Aug 29 00:00:04 *** esp-ns50: NetScreen device_id=esp-ns50
system-notification-00257(traffic): start_time="2005-08-29 00:00:03"
duration=0 policy_id=320001 service=icmp ...
   

下線をつけた "service=icmp" を --pat に指定して解析してみます。

2か所(2行)見つけられた結果が出るはずです。

以下のようにコマンドラインから指定します。

  C:\logcount>ruby logcount.rb --start="2005-08-28 23:30:40"
            --offset=30m --delta=1s --pat="service=icmp" log_sample2.txt
  

ポイント

--start や --offset の指定値は、解析を繰り返しながら絞っていくと便利です。

   出力結果:
   2005-08-28 23:30:40       0
	:
   2005-08-28 23:30:44       1
   2005-08-28 23:30:45       0
	:
   2005-08-29 00:00:03       1
   2005-08-29 00:00:04       0
	:
   2005-08-29 00:00:39       0
   

以上、--pat を使った指定文字の行数をカウントする方法を紹介しました。

説明は以上です。

README.txt をよく読んでお使いください。

なお、この【使用例】で紹介した log_sample.txt, log_sample2.txt は、 実際の Trastream, Netscreen のログファイルを編集したものです。

実際のログファイルとは異なる部分がございますのでご了承ください。

Back