最終更新日:2004年2月9日
【Homeへ】
WebalizerにはDNSの逆引きを使った相手を探索する機能があります。 この機能を使うためには幾つかのことについて説明しなくてはなりません。
DNS探索機能は、IPアドレスとその逆引きが収納されたDNSキャッシュファイルをつかって探索されます。 このため、Webalizerを実行するときに"-D"コマンドオプションか、設定ファイルの"DNSCache"キーワードを使ってキャッシュファイルを作成する必要があります。もしキャッシュファイルが作成されなかったなら、DNS探索は行われません。 DNSキャッシュは2つの異なる方法で作成できます。
以下の手順でキャッシュファイルを作成・更新します。
Webalizerの実行において、現在進行中のLogを対象にすべきではありません。
【スタンドアロンキャッシュでの作成・更新】
以下の手順でキャッシュファイルを作成・更新します。
webalizer -c test.conf -N 10 -D dns_cache.db /var/log/my_www_log
これは、設定ファイルとして"test.conf"を使い、この中からホスト名や出力先ディレクトリを探します。 また、ランタイムでDNSキャッシュファイルを"dns_cache.db"として作成し、レポートに反映させます。
webalizer -o out -D dns_cache.db /var/log/my_www_log
これは、"/var/log/my_www_log"のログファイルを処理し、その際にDNS探索として既存の"dns_cache.db"のDNSキャッシュを探索し、出力を"out"というディレクトリに出力します。 DNSキャッシュは既に存在している必要があります。
for i in /var/log/*/access_log; do
webazolver -N 20 -D /etc/dns_cache.db $i
done
これは、"/var/log"ディレクトリ以下にある"access_log"というログを探しだし、これらのログから"/etc/dns_cache.db"というDNSキャッシュを作成・更新します。 DNSキャッシュの作成のために、子プロセスは20個起動します。 この例のような方法は、ヴァーチャルホストを提供しているサイトの管理で良く行われます。
for i in /etc/webalizer/*.conf; do webalizer -c $i -D /etc/cache.db; don
この例は、"/etc/webalizer"ディレクトリに以下にある、"*.conf"の複数の設定ファイルを探し出し、これによって、webalizerを実行します。 このときDNSキャッシュの情報として、"/etc/dns_cache.db"が利用されます。 入力するログや他の設定情報については"*.conf"の設定ファイルの内容のものを使います。 これは上記のDNSキャッシュの作成方法とペアで利用されることの多い方法です。
現在処理が続いているログファイルへのDNSキャッシュの作成は、DNS検索中に新たなログが記録され問題を引き起こすでしょう。
DNSのアドレスは3日間のTTL (time to live)を持っています。 これは、コンパイルの際に、dns_resolv.hのヘッダファイルの"DNS_CACHE_TTL"の値を変更すれば変えらるかも知れません。
DNSの子プロセスは最大100まで指定できます。 しかし、パフォーマンスなどを考えると現実的には5から20くらいにすべきでしょう。
もし、ログを標準入力(STDIN)から受け、DNSキャッシュもランタイムに作成するようにしたなら、処理はDNSキャッシュを生成した終了してしまうでしょう。もしSTDINからのストリームで結果を得たいなら、2回処理を行う必要がある事でしょう。一度目はDNSキャッシュをつくるために、もう一度はレポートを得るために。
オリジナルのdns-resolverのコードを提供してくれたHenning P. Schmiedehausen
<[email protected]>へ心より感謝します。
この実装が基礎になっています。
【Homeへ】
Copyright© 1998-2003 ROBATA.ORG