Sirius

2011年3月31日(木) 20:17

Webalizer で DNS 逆引きをさせる。


参考:
Webalizer DNS Readme
Webalizerをインストール

webalizer を使ってアクセス解析をしていますが、いままで DNS の逆引きをしていませでした。デフォルトの設定では逆引きしないようです。

webalizer の設定ファイル webalizer.conf を書き換えて DNS キャッシュファイルを作成させるようにします。
webalizer.conf は以下を有効にしました。
DNSCache dns_cache.db
DNSChildren 0

既にログが大量にある場合 (ログが 44MB ほどありました)はかなり時間がかかるので、ログ解析とは別にショートカット webazolver を使って DNS キャッシュファイルを作成します。DNSChildren を 0 にすると、DNS キャッシュファイルは作成せずに、キャッシュファイルを利用して名前解決だけ行います。

ショートカット webazolver のプロパティは、
webalizer.exe -N 10 -C webalizer.conf -D dns_cache.db
とします。終わるまでに結構時間がかかります。

このままでは DNS キャッシュの作成を手動でやらないといけません。今まで全てのログを同じファイルに出力していましたが、一ヶ月単位でログを分割するように IIS を設定しました。
ログ解析と DNS キャッシュを同時に行うために DNSChildren の値は 5 に変更しました。
また、
Incremental yes
IncrementalName webalizer.current
にして古いデータを引き継ぐようにしました。

IIS ではログファイル名は、月単位で分割すると、u_ncYYMM.log (YY: 年、MM: 月) となるので次のようなバッチファイルを作成してタスクスケジューラに登録しました。

--------------------------------ここから----------------------------------
@echo off
set LOGDIR=C:¥inetpub¥logs¥LogFiles¥W3SVC1
set LOG=u_nc
for %%i in (%LOGDIR%¥%LOG%????.log) do set LASTFILE=%%i
for %%i in (%LOGDIR%¥%LOG%????.log) do if not %LASTFILE%==%%i set PREFILE=%%i
C:¥webalizer-2.21-02-cygwin¥webalizer.exe -c C:¥webalizer-2.21-02-cygwin¥webalizer.conf -N 0 %PREFILE%
C:¥webalizer-2.21-02-cygwin¥webalizer.exe -c C:¥webalizer-2.21-02-cygwin¥webalizer.conf %LASTFILE%
--------------------------------ここまで----------------------------------
一応、月替わりも考慮して前月分は DNS キャッシュは作成しないでページを作成して、今月分は DNS キャッシュを作成するようにしました。

written by sirius [WindowsWebServer2008] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨