にへるつおるぐ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 |

10年ぶりに部屋に入るとコウモリや猫の巣窟だった

Powerd by APACHE

2007-09-27 21:32:01 JST-9 | akebia | Apache | コメント | トラックバック | 履歴

a40404.pl

高速なlogresolveです。

1. 書式
2. オプション
3. シグナル
4. 説明
5. テスト環境
6. ご注意
7. トラブルシューティング
8. 処理状況

1. 書式

perl a40404.pl [オプション]... < 入力ファイル > 出力ファイル

2. オプション

-b 行数
ログバッファの行数です。デフォルトは65536です。
-n スレッド数
DNS子スレッド数です。デフォルトは128です。
-d [ファイル]
DNSキャッシュファイルです。[ファイル]を省略すると、DNSキャッシュファイル機能が無効になります。デフォルトは「dns_cache.txt」です。
-t 秒数
DNSキャッシュTTLです。デフォルトは259200(72時間)です。
-e
標準エラー出力に処理状況を出力します。デフォルトは出力しません。

3. シグナル

SIGINT
DNSキャッシュをファイルに保存し、速やかにプログラムを終了します。

4. 説明

これは、ApacheのアクセスログのIPアドレスの名前解決をするプログラムです。標準入力にApacheのアクセスログを流し込むとログの各行の先頭のIPアドレスがドメイン名に変換された状態で標準出力から出てきます。マルチスレッドで処理するので、大きなログを処理する場合、通常のlogresolveよりも早く処理が終わります。また、名前解決の結果をキャッシュファイルに保存し、次回の処理に使いまわす機能(DNSキャッシュファイル機能)が付いているので、同じログで何度もプログラムをテストしたりする場合に、さらに高速になります。

5. テスト環境

xampp-win32-1.6.1 xampp-win32-perl-addon-5.8.8-2.2.4

6. ご注意

  • このプログラムはデフォルトでカレントディレクトリの「dns_cache.txt」というファイルに読み書きします。この動作を無効にするには、プログラムの「$dns_cache_file = 'dns_cache.txt';」の部分を、「$dns_cache_file = '';」にして下さい。
  • このプログラムには、通常のlogresolveについている、-sや-cといったオプション機能はありません。
  • IPv4のアドレスしか処理できません。ログにIPv4以外のアドレスが含まれていた場合の動作は謎です。
  • DNSキャッシュTTLにより古くなった名前解決の記録を消去する処理はプログラムの起動時にしか行われません。その為、このプログラムが長時間起動しっぱなしになる場合でもDNSキャッシュTTLの機能を有効に動作させたい場合には、このプログラムの親プロセス側でこのプログラムを時々再起動させてやる必要があります。
  • DNSキャッシュの更新中にシグナルをブロックしていないので、偶々DNSキャッシュの更新中にSIGINTが来た場合、DNSキャッシュファイルの内容がどうなるかは謎です。

7. トラブルシューティング

  • Perlインタプリタが例外を上げてアボートしたりといった不審な動作をする場合にはPerlを最新バージョンにしてみて下さい。それでも不調な場合には、-nオプションでDNS子スレッド数を減らしてみて下さい。
  • 処理中にPerlインタプリタがシステムのメモリを圧迫していて耐えられない場合には、-bオプションを使ってログバッファの行数を減らしてみて下さい。
  • SIGINTを送るとサブスレッドの終了を待たずにプロセスが終了する為、警告が出ることがありますが、これは仕様です。

8. 処理状況

-eオプションを使うと処理状況をモニタすることができます。処理状況の意味は以下のとおりです。

DNSリクエストキューの要素数 スレッドID IPアドレス ドメイン名

DNSリクエストキューの要素数を見るとサブスレッドが有効に動作しているかどうかの目安になります。要素数が-nオプションで与えた数以上の時、概ね全てのサブスレッドが稼動中であると考えられます。処理が終盤に向かい、解決すべきIPアドレスが減ってくると要素数も減ってきて0になります。処理の中盤で要素数がしょっちゅう増えたり0になったりして処理がなかなか進まない場合には、-nオプションで与えた数に対して-bオプションで与えた数が少なすぎるのかもしれません。

MyMiniCity 人気ブログランキングへ

  1. logresolve (25)
  2. logresolve 高速 (5)
  3. logresolve 時間 (2)
  4. logresolve 使い方 (2)
  5. logresolve 解決できない (2)

Comments

No comments yet

Add Comment

Trackback

このトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。


http://2hz.org/akebia/