【概要】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
【環 境】
動作環境: Windows XP【インストール方法】
logcount.zip を適当なディレクトリで展開してご使用ください。【使用上の注意】
1)著作権は株式会社イーサポートサービス企画部にあります。【感謝】
logcount.exe は Yuya Kato さんによる Exerb を使用して、 Ruby で開発されたスクリプトを Windows 実行形式ファイル にしています。【ダウンロード】
以上の内容をお読みいただいた上で、こちらからダウンロードして下さい。
Logcount ダウンロード【使用方法】
コマンドプロンプトから
--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 を解析する場合の使用例を紹介します。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
ポイント
出力結果: 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
ポイント
出力結果:
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
ポイント
出力結果: 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 のログファイルを編集したものです。
実際のログファイルとは異なる部分がございますのでご了承ください。