初心者の方は analogを使うにあたって に続く ライセンス を読んでください。
このマニュアルは analog3.90beta1 について説明します。これはバージョン4のためのベータテスト版です。ベータ版はバグを含んでいると予想されます。もしバグを見つけたら 私 まで知らせてください。最新のベータ版や公開されている最新の analog は analog のホームページ を見て下さい。 出力例は以下のサイトで見られます。
analog はフリーソフトですが、その使用、配給、修正は ライセンス によって守られています。使う前にライセンスに同意しなければなりません。特に 保証はない とお考え下さい。
このマニュアルはいくつかのページに分割されています。それぞれのページ内のリンクや、最上部と最下部の選択項目を使って移動することができます。 また、全体のマニュアルの設計を示している 目次 や 索引 があります。オフラインで読む場合や印刷するときは、これらの代わりとしてマニュアル全体を 1ページ で見られます。
さて次に以下のマニュアルを読んで見てください。
もしあなたの自宅のパソコンから ISP のコンピュータにログインしたなら、あなたには2つの選択肢があります。もしあなたが正当な権限を持っているなら、ISP のコンピュータ上で analog を動かすことができるでしょう。さもなければ、ISP のコンピュータからあなたのパソコンへログファイルをダウンロード(例えば ftp で)し、あなたのパソコン上で analog を動かすことができます。
analog のホームページから(またはミラーサイトから)あなたのコンピュータに最適な analog のバージョンをダウンロードしたら、後は analog の設定の仕方と起動の仕方を知ればよいだけです。これはとても簡単ですが、やり方はあなたの使っているプラットフォーム次第で少し異なります。
もしあなたがマニュアルを読んだ後で analog をうまく設定できなかったなら、analog-help のメーリングリストに参加して下さい。
LOGFILE logfilename # あなたのログファイルの位置決めです。ログファイルは必ず局所的に保存されていなければならない。analog はログファイルを、インターネットを通じて FTP や HTTP を使って持ってくることはできません。プログラムと一緒にサンプルのログファイルが付いてきます。
Readme の後の方に 基本コマンド の一覧があります。また直ぐにでも始めるために、環境設定ファイル中にはすでにいくつかのコマンドが書かれていますが、他にも利用できる多くのコマンドがあります。全てのコマンドを、analog のカスタマイズ の章で知ることができます。
One note: 他の OS では、オプションを与えるためのほかの方法として、コマンド行での引数があります。Readme で時々これらのことが述べられますが、Mac はコマンド行を持たないので無視して下さい。
もしあなた用の analog (C で書かれています)をコンパイルしたい時、またはソースコードを読みたい時には、analog のホームページ から得られます。(全ての OS のソースコードは同じです。)
analog をダウンロードして、あなたまたはあなたのブラウザがファイルを解凍したとき、analog のディレクトリ中に analog.cfg と呼ばれる環境設定ファイルと analog の実行ファイル自体、それに Readme 、ライセンス (analog を利用する前に読んで、同意しなくてはいけません)と数個の他のファイルを見つけるでしょう。setup.exe はありません。analog はそれがなくても、既に起動可能です。
(ある種の解凍プログラムが壊れていた場合には、作成されるべきフォルダを作ることができません。もし analog のフォルダ中に lang と呼ばれるフォルダが無いときには、そのフォルダを作り、そこに *.lng と *.tab と呼ばれる全てのファイルをいれて下さい。)
analog を起動させるのに2つの方法があります。Windows から analog を起動する( analog のアイコンをシングルクリックまたはダブルクリックするかはあなたの設定によります)こともできますし、DOS コマンドプロンプト( スタート−プログラム の下にある)から起動することもできます。もし Windows から起動するならば、DOS ウィンドウ を作って、走らせます。analog が終了した時、Report.html と呼ばれる出力ファイルを作るでしょう。analog を初めて起動させたとき、ほとんど一瞬のうちに終了するかもしれません。出力の説明にヘルプが必要なら、出力結果の意味 を見て下さい。
LOGFILE logfilename # あなたのログファイルの位置を設定するです。ログファイルは局所的に保存されなければなりません。analog は、FTP や HTTP を使ってインターネットからログファイルを持ってくることができません。プログラムと一緒に配布されている見本ファイルがあります。
Readme の後の方に 基本コマンド の一覧があります。また直ぐにでも始めるために、環境設定ファイル中にはすでにいくつかのコマンドが書かれていますが、他にも利用できる多くのコマンドがあります。全てのコマンドを、analog のカスタマイズ の章で知ることができます。 す。
とにかく、DOS ウィンドウから analog を起動する方がより簡単です。どんなエラーや警告でも容易に見れるからです。またコマンドプロンプトから analog を起動するとき、プログラム名の後のコマンド行にオプションを与える、コマンド行の引数というものがあります。これらは、環境設定ファイル中のコマンドを手っ取り早く実行する方法にすぎません。もしバッチファイルから analog を起動する時もコマンド行の引数を使うことができます。
もしあなた自身の analog( C で書かれています)をコンパイルしたい時、またはソースコードを読みたい時、analog のホームページ から手に入れることができます(全てのバージョンのソースコードは同じです)。
LOGFILE logfilename # あなたのログファイルの位置を設定するです。 ログファイル名の中で、ディレクトリ間に / ではなく、\ を使う必要があります。ログファイルは局所的に保存されなければなりません。analog は、FTP や HTTP を使ってインターネットからログファイルを持ってくることができません。プログラムと一緒に配布されている見本ファイルがあります。
Readme の後の方に 基本コマンド の一覧があります。また直ぐにでも始めるために、環境設定ファイル中にはすでにいくつかのコマンドが書かれていますが、他にも利用できる多くのコマンドがあります。全てのコマンドを、analog のカスタマイズ の章で知ることができます。
analog にオプションを与える他の方法に、プログラム名の後のコマンド行に与える、コマンド行の引数というものがあります。これらは、環境設定ファイル中のコマンドに対するショートカットです。
もしあなた自身の analog( C で書かれています)をコンパイルしたい時、またはソースコードを読みたい時、analog のホームページ から手に入れることができます(全てのバージョンのソースコードは同じです)。 他の章に コンパイルの仕方についての説明 があります。
最初に anlghead.h ファイルを調べて、編集するものがあるかどうか見てください。特に ANALOGDIR を設定する必要があります。
それを行ったあと、プログラムをコンパイルする必要があります。どうやるかは、あなたの使っている OS に依存します。
makeとだけ打って下さい。たいていのシステムではそれで十分でしょう。もしコンパイルに失敗したら、Makefile に目を通してみて、あなたの環境に適合するように変える必要があれば変更して、再度行ってみて下さい。何をすれば良いかが、そのファイルに書かれています。特に Solaris 2 (SunOS 5) のユーザは LIBS= の行を変えることが必要になります。
(専門家は anlghead.h を編集する代わりに、make コマンド行にいくつかの引数を渡すことができます。例えば
make DEFS='-DHTTPDIR=\"/usr/etc/apache/\"'analog をコンパイルするためのスクリプトがあるなら、これは便利です)
もし gcc を持っていないなら、コンパイラを変える必要があるでしょう。代わりに acc または cc で試して下さい。それでもコンパイルができないなら、DNS 参照コードを無視するために DEFS=-DNODNS を試して下さい。
HP-UX 10 と gcc のあるバージョンには、知られている問題があります。もし <sys/stat.h> ライブラリのエラーが出てくるなら、gcc をバージョン 2.7.2.3 かそれ以降にアップグレードするか、HP の cc のコンパイラを使う必要があります。 HP のコンパイラは、初期設定で ANSI C のコンパイラではないので、ANCI C を使うためにはコンパイラが示すための CFLAGS の中で -Ae を指定して、コンパイラーは ANCI C であることを示す必要があります。
SunOS 4 の cc と gcc は ANCI C で必要なヘッダーファイルを持っていません。もし ANCI C のコンパイラー acc があるなら、それを使いなさい。さもなければ、Makefile 中で与えられている DEFS を使いなさい。
SunOS 5 のユーザは Makefile の中の LIBS= 行を変える必要があります。またこの OS は時々壊れた strcmp() 関数を持っているようです。もし analog を起動したときに "illegal instruction" エラーが出たら、DEFS= 行に -DNEED_STRCMP を指定して、コンパイルしてください。。
VMS 上でのコンパイル。最初に上記のように anlghead.h を編集して下さい。 そして analog をコンパイルするために
MMSと打って下さい。VMS 7.0 と 7.1 には、analog のコンパイルを止めてしまうバグがあります。 これを直すには、descrip.mms のファイルの一番上の cflag の定義に、"/define=(_VMS_V6_SOURCE)" を付け加えることです。
Acorn RiscOS 上でのコンパイル。この Makefile は Make.Risc と呼ばれており、make する前に Makefile と名前を変える必要があります。また C、H それに O という名のディレクトリを作る必要があり、それからソースファイルを適切なディレクトリに移動しなければなりません。例えば、alias.c は C.alias と名前を変えなければならない。それに、ヘッダーファイル anlghead.h 中で、RiscOS ディレクトリ構造に合うように、幾つかのファイル名を変える必要があります。
OS/2 上でのコンパイル。OS/2 には、すでにコンパイルした analog がありますが、もし自分でコンパイルしたければ、 EMX package が必要になります。Makefile を編集して、OS=OS2 と LIBS=-lsocket を指定します。その後 anlghead.h を編集し、Make を走らせて、analog.exe の実行ファイルを作成するために、コマンド
EMXBIND -b ANALOGを走らせます。
analogとだけ打ってください。(または、もし何らかの理由で . があなたの $PATH に含まれていないときには、 ./analog と打ってください。)
analog の環境設定のためには、初期設定で analog.cfg と呼ばれている環境設定ファイルに、コマンドを書くことができます。直ちに必要な2個のコマンドは、
LOGFILE logfilename # ログファイルの位置を設定する OUTFILE outputfile.html # モニターの代わりにファイルに出力するログファイルはローカルに置かれてなければならない。analog は、FTP あるいは HTTP を用いて、インターネットを通してこのファイルを持ってくることはできない。プログラムには見本のログファイルが提供されています。
マニュアルの後で、基本コマンド の一覧があります。また始めるにあたっては、環境設定ファイルには少ししか設定がしてありません。しかし、 他に多くの設定が可能です。analog のカスタマイズ の章には全てのコマンドが述べられています。出力を理解するのには、出力結果の意味 の章が助けになるでしょう。
analog にオプションを与える他の方法に、プログラム名の後のコマンドラインに与える、コマンドライン引数というものがあります。これらは、環境設定ファイル中のコマンドの手っ取り早い方法にすぎません。
以下の章は技術的(すなわち、面白くないが重要)な章です。
次に、以下の分野の全ての環境設定コマンドについての資料があります。analogは200以上の環境設定コマンドと40以上のコマンドライン上のオプションを持っています。従って、時々これらの章は、コマンドの羅列となります。しかし、ここがanalogを使ってできる全ての事柄を見つけられる場所です。最後に、全てのコマンドと話題についての索引と、全てのコマンドと例題についての文法を含む簡易参考マニュアルがあります。
LOGFILE my_logfile OUTFILE output.htmlここではもちろん、使いたいファイルの名前を代入すべきです。ログファイルはローカルに保存されて無ければならない。analogはインターネットを通してログファイルを取って来るために、FTPやHTTPを使えないので、あなた自身で最初にそれを取って来ないといけません。いくつかのログファイルコマンドやコンマで区切られたリスト、あるいはログファイル名にワイルドカードを使って、いくつかのログファイルが読めます。例えば、以下のコマンドを使えば
LOGFILE new1.log,old*.log LOGFILE new2.loganalogは new1.log、new2.log、そして全ての古いログファイルを解析します。analogはいくつかの異なる書式のログファイルも理解します。これについては、ログファイルの選択についての章に、より詳細に出ています。
HOSTNAME "Spam Widgets Inc." HOSTURL http://www.spam-widgets.com/
もし出力中にグラフの代わりに壊れた画像が出たら、サーバー上のどのディレクトリに画像が保存されているかを指示する必要があります。下記のコマンドによってそれが可能になります。
IMAGEDIR /analog/images/(画像ファイルはプログラムと一緒に供給されています。それらはあなたが選んだディレクトリに移動しなければなりません。)
MONTHLY ON # 各月につき一行 WEEKLY ON # 各週につき一行 FULLDAILY ON # 各日につき一行 DAILY ON # 一週の各日につき一行 HOURLY ON # 位置日の各時間につき一行 GENERAL ON # 上部に概要 REQUEST ON # リクエストを受けたファイル FAILURE ON # 発見できなかったファイル DIRECTORY ON # ディレクトリレポート HOST ON # ファイルをリクエストしたコンピュータ ORGANISATION ON # リクエストした組織 DOMAIN ON # リクエストした国 REFERRER ON # リンク元 FAILREF ON # 壊れたリンク元 SEARCHQUERY ON # 検索語 SEARCHWORD ON # サーチエンジンで使用した検索語 BROWSER ON # 使用したブラウザー FILETYPE ON # リクエストされたファイルタイプ SIZE ON # リクエストされたファイルの大きさ STATUS ON # 各種の成功と失敗の回数もしサーバーが必要な情報を持っているときだけ、リンク元 やブラウザのレポートが出力されるでしょう。各レポートについて他の多くの設定ができます。例えば、何行出力するか、どの列を含むか、そしてレポートがどのように分類されているか設定できます。例として、以下のコマンド
REQINCLUDE pagesは、analogにリクエストレポート中に全てのファイルではなく、ページだけをリストするように教えます。analogのレポートについての章で、それらを制御する全てのレポートとコマンドの概要も読むことができます。
LANGUAGE FRENCHはフランス語での出力になります。現在、利用可能な言語はカタロニア語, 中国語, チェコ語, デンマーク語,オランダ語, アメリカ英語, イギリス英語,フィンランド語, フランス語, ドイツ語, ギリシャ語,ハンガリー語, アイスランド語, イタリア語,日本語, 韓国語, ラトビア語,リトアニア語, ノルウェー語 (Bokmål),NYNORSK, ポーランド語, ポルトガル語,ブラジル系ポーランド語, ルーマニア語, ロシア語,セルビアクロアチア語, スロバキア語, スロベニア語,スペイン語, スウェーデン語 そしてトルコ語です。ダウンロードの仕方や、翻訳の仕方、新しい言語などは出力の設定方法の章を見てください。
注意:これらの言語はanalogのバージョン3で現在利用できるものです。しかし、これらのほとんどはバージョン4用の翻訳ができていません。従って、バージョン4では利用できません。もしこのなかの一つを使おうとすれば、注意メッセージが現れ、コマンドは無視されるでしょう。言語ファイルが翻訳されたとき、それはanalog のホームページに加わります。
前に述べた様に、これらは利用可能なコマンドの内のほんのわずかなものです。全てのコマンドについて見るためには、環境設定コマンドの文法中の短い章から初めて、Readmeの残りの章を読まなければならないでしょう。
CONFIGFILE other.cfgというコマンドによって、環境設定ファイル内から別の環境設定ファイルを含むこともできます。他の環境設定ファイル中のコマンドは、順に読み込まれていきます。 プログラムは、プログラム自身が止めるまで、コマンド行を読み続けるか、環境設定ファイルを読み込みます。別の環境設定ファイルを読むことは、初期環境設定ファイル(普通は analog.cfg )の読み込みを止めることは できない 事に注意してください。これを行うには、-G と同時に +g コマンドも指定しなくてはいけません。またいくつかの環境設定ファイルを読み込むことは、いくつかのレポートを生成することは しない が、一個のレポートは全てのオプションに基づいています。
Mac 版では、analog のアイコンの上に特別の環境設定ファイルをドラッグすることで、初期のファイルに代わって、プログラムを動かすことができます。ファイルは # から始まらなくてはいけません。
たとえコマンド行での略語が使えなくても、+Cコマンドを使えば、どんな環境設定コマンドを指定することもできます。例えば、+C"UNCOMPRESS *.gz gzcat" とすれば、このコマンドを含むことができます。
DAILY OFF # 日別概要を必要としない。 FULLDAILY "ON" # その代わりに、1日全体のレポートを必要とする。 HOSTNAME (Spam Widgets Inc.) # スペースが含まれるので、引用符か括弧が必要もし一つだけ許されるようなもの(例えば、 OUTFILE )の時には、一般的に、後で現れるコマンドは、前のコマンドに優先する。あるいは、幾つかのもの(例えば、LOGFILE 、なぜなら幾つかのログファイルを読むことができる。)が許されるときには、それらを追加する。
analog -settings [他のオプション]を動かすか、 SETTINGS ON を環境設定ファイルに含んで下さい。 すると、 anlghead.h と anlghea2.h 中の初期設定と環境設定コマンド、それにコマンド行のオプションに基づいた全ての変数の値を出してくれるでしょう。 もし Unix または Windows を使っているなら、
analog -settings > fileを使えば、ファイル出力が得られることを思い出してください。
LOGFILE logfilenameです。あるいは、他の引数無しでコマンド行でログファイル名を与えれば良い。 例えば、analog ログファイル名 とやります。- 記号あるいは stdin という単語は、標準入力を意味します。この形式は、Unix ではパイプを作成するときに便利です。全てのログファイルは、あなたのコンピュータシステムの内部のファイルシステムになければなりません。(ディスク上か、少なくとも Unix 上でマウントされたディスクか、NT 上の共有されたドライブ上になければなりません。) -- analog は、インターネット上から FTP あるいは HTTP を使ってファイルを持ってくることはできません。Mac 版では、analog のアイコン上に一個の特定のログファイルをドラッグすれば、解析できます。
LOGFILE コマンドを幾つか書くことができます。ログファイル名にワイルドカードを含めることもできますし(しかし、必ずしもディレクトリ名に入れる必要は無いが、これはシステムに依存します。)、(スペースを含まない)コンマで区切ってログファイルの一覧を書くこともできます。従って、以下のコマンドは、logfile1、c:\logs\logfile2、それに .log で終わる全てのファイルを、analog は読みます:
LOGFILE logfile1,*.log LOGFILE c:\logs\logfile2または、Mac を使っているなら、以下の様に書きます。
LOGFILE "Hard Drive:Internet Applications:Analog:Logs:*"LOGFILE コマンドは、以下の場合を除いて蓄積型です(即ち、書かれたファイル名を全て読み込みます)。コマンド行で与えられた、またはユーザが指定した環境設定ファイル中のどのログファイルは、初期設定の環境設定ファイル 中のログファイルに取って代わるし、それら自身も、必須の環境設定ファイル 中のどのファイルによっても取って代わられます。また以下の特別なコマンドがあります。
LOGFILE noneこれは、今まで指定されたログファイルの一覧を無効にします。
もしあなたのログファイルが標準の形式でない時でも、LOGFORMAT コマンドを使って、他の形式について analog に教えることができるので、多分まだ大丈夫です。これは、次章 で説明されます。しかし大部分のユーザは標準形式のログファイルを持っているので、これについて知る必要はありません。最善の方法は、とにかくログファイルを解析してみて、analog が理解するかどうかを確かめてみることです。理解してくれれば、LOGFORMAT について心配する必要はありません。
もし analog が あなたのログファイルを理解できない時には、ログファイル形式を認識できない、あるいは多くの異常な行を見つけたと注意を与えるでしょう。これが起きる理由としては、基本的に4つの理由が考えられます。
LOGFILE log1,log2 http://www.%v.mydomain.comは、ファイル名 /file.html を log1 あるいは log2 のログファイル中の仮想ホスト host1 を使い、http://www.host1.mydomain.com/file.html と翻訳されます。LOGFILE コマンドの2個目の引数を使うなら、SUBDIR コマンドも多分必要となるでしょう。
引数に %v が含まれているが、ログファイル行に仮想ホストが無い場合には、その行は異常とみなされます。VHOSTLOWMEM 3 が指定されていれば、%v は翻訳されずに、出力には単に %v と現れるでしょう。
UNCOMPRESS *.gz,*.Z /usr/bin/gzcat一方 Windows NT 上では、以下の様に書ける。
UNCOMPRESS *.gz ("c:\Program Files\gzip\gzip" -cd)
VMS 上では、以下の様になります。
UNCOMPRESS *.LOG-GZ;* "gunzip -c"これは、初期環境設定ファイル に含めるには最適のコマンドであろう。
ログファイルが解凍し始めたが、analog がそのファイルは解析に必要ないと判断した時、2つの予期しないことが起き得る。ログファイルが完全に解凍しきるまで、プログラムが止まってしまうか、"broken pipe" エラーが出てくるかもしれない。これは、システムに依存し、analog の制御外のことです。
共通ログ形式は大部分のサーバーによって書かれている。それらの行は、以下の様になる。
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ HTTP/1.0" 200 1243マイクロソフト社のソフトのある版では、以下の様に HTTP の前に余分の2重引用符が付いてしまうバグがある。
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ "HTTP/1.0" 200 1243analog はこれら両方を理解しますが、(2種類の形式が存在するという意味で)もし形式が途中で形式が変わってしまう時には、それらの行を排除してしまいます。
[25/Dec/1998:17:45:35] http://www.site.com/ -> /~sret1/and the browser (or agent) log looks like
[25/Dec/1998:17:45:35] Mozilla/2.0 (X11; I; HP-UX A.09.05)参照元ログでは、日にちは省略され得る。
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ HTTP/1.0" 200 1243 "http://www.site.com/" "Mozilla/2.0 (X11; I; HP-UX A.09.05)"実際は一行である。Apache サーバを使っている時には、この形式は、mod_log_config モジュールを用い、以下のコマンドを使って生成される。
LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""
別々のログよりも組み合わせのログの方が通常良い。何故なら、より少ないスペースで多くの情報を蓄えられるからです。
192.64.25.41, -, 25/12/98, 17:45:35, W3SVC1, HOST1, 192.16.225.10, 2178, 303, 1243, 200, 0, GET, /~sret1/, -,(実際は一行である。) しかしながら、この形式は、日にちが地域的な時間表現に則っているという点に於いて、非常にまずく設計されている。即ち、北米では上記の例は、12/25/98 という日にちになる。analog は、可能な限りログファイルがどの形式であるか診断する。しかし、日にちも月も最大12しか記録されていない時には、どちらの形式か判断できない。この場合には、以下のコマンド、北米の日にち形式に対しては、 LOGFORMAT MICROSOFT-NA あるいは国際日にち形式に対しては、LOGFORMAT MICROSOFT-INT を使うように進言する。幾つかの国では、日にちはこれらのどちらの形式でもない。このときには、それ専用の LOGFORMAT コマンドを書く必要がある。
またマイクロソフト形式には、例えばブラウザーや参照元を含めるための、各種の第3者による拡張がある。しかしそれらは全て異なる方法で行っており、そのため analog はそれらを自動的に診断できず、再度であるがそれら専用の LOGFORMAT コマンドを書く必要がある。
12/25/98 17:45:35 jay.bird.com host1 Server fred GET /~sret1/ http://www.site.com/ Mozilla/2.0 (X11; I; HP-UX A.09.05) 200 1243 2178(実際は一行であり、書く項目はタブで区切られている。)(上記の) IIS のログファイルと同様に、あいまいな日にちの問題がある。従って、LOGFORMAT WEBSITE-NA か、LOGFORMAT WEBSITE-INT を使わなければならないか、あるいは専用の LOGFORMAT コマンドを書かなければならない。
もし 先頭行が壊れていると analog が判断した時には、何が悪いのかも伝える。ここに2つの共通した問題がある。最初は、2個の異なる名前であっても、先頭行は同じ項目を2回含んではならない。(これは、analog がどちらを使ったらよいか分からないからである。)もし同じ項目が2個含まれている時には、LOGFORMAT コマンドを用いて無視したい方を指定しなければならない。
2つ目は、日付無しの時刻を使うことは許されないし、その逆も許されない。 -- 特に、ログファイルの先頭に日付だけがあるのは、解析に充分ではなく、各行になければならない。マイクロソフト社のサーバソフトは、先頭行に日付だけが付いた拡張ログを生成する。しかしもしログファイルの途中で日付が変わっても、サーバソフトは、新しい日付行を書かない。このため、analog は安全にその様なログファイルを解析できない。役立つソフトのページ には、各行に日付をつけてくれる幾つかのプログラムがある。もしそのようなログファイルをあなたが扱っているなら、これらのプログラムの一つを使いたいかもしれない。しかし、これらのプログラムはログファイルの途中で日付が変わらないと仮定されており、従って、将来はより良い形式で、サーバソフトがログを取るようにする方が安全である。
拡張ログは、 http://www.w3.org/TR/WD-logfile.html に述べられている。 その先頭行は以下のようである。
#Fields: date time cs-uriログファイルの残りでは、項目は、空白かタブで区切られている。拡張形式については、マイクロソフトの試みがある。-- 残念なことに、この試みでは、仕様を読まないので、ブラウザや参照元を引用符で括らない、ブラウザ名中の空白を + で置き換え、そして時間を秒の代わりにミリ秒で計ったリクエストを提供する。拡張ログは、常に時刻を GMT で記録しているため、あなたの地域時間帯に変換するために、多分 LOGTIMEOFFSET コマンドを使う必要があるだろう。
WebSTAR 形式は、http://www.starnine.com/webstar/docs/ws4manual.3f.html に述べられている。 その先頭行は以下のようである。
!!LOG_FORMAT DATE TIME RESULT URL BYTES_SENT HOSTNAMEログファイルの残りでは、項目はタブで区切られている。WebSTAR サーバは、また時刻を GMT で記録しているため、あなたの地域時間帯に変換するために、再び LOGTIMEOFFSET コマンドを使う必要があるだろう。いくつかの他の Mac サーバも WebSTAR か、それに似たものを使う。analog はこれらも理解する。
最後に、Netscape の先頭行は、以下のようである。
format=%Ses->client.ip% [%SYSDATE%] "%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%
ログの書式設定のための基本的なコマンドは以下の様になります。
LOGFORMAT format-- 直ぐに、format が何であるかを述べます。LOGFORMAT コマンドは、同じ環境設定ファイル内の後のほうに位置した LOGFILE コマンドで指定された、ログファイルのみに適用されます。従って、LOGFORMAT を、参照すべき LOGFILE の上に書かなければなりません。このようにして、異なるログファイルは、異なる書式を持つことができます。例として、以下を挙げます。
LOGFILE log0 LOGFORMAT format1 LOGFILE log1 LOGFORMAT format2 LOGFILE log2 LOGFILE log3この例では、log1 は format1 であり、log2 と log3 は format2 であり、そして log0 はどの書式にも属していない。 -- analog は、このログファイルがどの書式なのかを見つけようとする。
APACHELOGFORMAT (%h %l %u %t \"%r\" %s %b)(括弧は、引数にスペースが含まれるので必要である。) analog は、Apache の "%...{format}t" という構造を解析できないという例外を除いて、Apache のログ書式を理解してくれる。もしこの構造があったときには、通常の LOGFORMAT を代わりに使用しなければならない。
analog が承知している全ての組み込み書式に対する書式用の単語がある。もしログファイルが標準書式の時には、これらのうちのひとつの単語が必要かもしれないが、analog は、何らかの理由でどの書式であるのかは検知できない;例えば、多分最初の行が壊れてしまっている;あるいは、多分 analog が北米時間か国際時間を使用しているのかどうかを判断できない。従って例えば、
LOGFORMAT COMMONは、共通書式を選択する;また、以下のオプションがある;COMBINED、 REFERRER, BROWSER, EXTENDED、 MICROSOFT-NA (北米時刻書式)、 MICROSOFT-INT (国際時刻書式)、 WEBSITE-NA、WEBSITE-INT、 MS-EXTENDED (マイクロソフトの拡張書式)、 MS-COMMON (幾つかのマイクロソフト版のバグの多い共通書式)、NETSCAPE または WEBSTAR。これら全ての書式は、前章の終わり に定義されている。自動判別のための特別な単語 AUTO を使うこともできる。
もしあなたのログファイルが、認識可能な書式でない時には、ログ書式の文字列を用いて、analog に教えることができる。ログファイルが標準書式の一つでないときに限り、これが必要である。そしてたとえ標準書式でなくとも、もし Apache のウェブサーバを使っているなら、上記で述べた APACHELOGFORMAT の方がやさしいことが分かるであろう。
書式用の文字列は、以下の様に種々の項目や特殊文字をコードで置き換えた、ログファイルの各行に対するテンプレートからなっている。これらのコードは大小文字を区別するので注意が必要である。 -- 例えば、%b は%B とは全く異なる! The format string consists of a template for the logfile line, with the various fields and special characters replaced by codes as follows. Please note that these codes are case sensitive -- for example, %b is completely different from %B!
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ HTTP/1.0" 200 1243は、LOGFORMAT コマンドで以下の様に表される。
LOGFORMAT (%S - %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b)要するに、単なる見本の行であるが、ホスト名は %S で置き換えられ、ユーザ名は %u で置き換えられ、等々である。(括弧は、引数がスペースを含むために必要である。)または、別の例として、もし以下のような行があったとしたら、
Fri 25/12/98 5:45pm, /~sret1/, jay.bird.com, 200, 1243, http://www.site.com, Mozilla/2.0 (X11; I; HP-UX A.09.05)以下の書式が使える。
LOGFORMAT (%j %d/%m/%y %h:%n%am, %r, %S, %c, %b, %f, %B)
LOGFORMAT COMMON LOGFORMAT COMBINED LOGFILE log1 LOGFORMAT (%j %d/%m/%y %h:%n%am, %r, %S, %c, %b, %f, %B) LOGFILE log2 LOGFILE log3log1 は、共通と組み合わせ書式の両方を持つが、log2 と log3 は、一つ前の例の書式の行のみを持つ。
もし幾つかの書式が指定された場合、analog はまずは最初の書式に各行が一致するかどうかを試し、もし失敗した時には次を試し、等々と行う。そのため、書式の順番は大事である。通常は、不適切な書式と行が一致するかどうかを試すのに割く時間を最小にするために、最も一般的なものを最初に置く。
それでは、最初の例に戻ろう。
LOGFILE log0 LOGFORMAT format1 LOGFILE log1 LOGFORMAT format2 LOGFILE log2 LOGFILE log3ここでは、log0 は実際には初期設定のログ書式を取り。もし、DEFAULTLOGFORMAT コマンドが無ければ、初期設定は自動的に認識されるであろう。しかし、もし DEFAULTLOGFORMAT コマンドが別の環境設定ファイルにでもあれば、それが log0 の書式となるでしょう。
LOGFORMAT の代わりに DEFAULTLOGFORMAT を使う必要があるときは、LOGFILE コマンドで与えることができないログファイルの書式、これを変えたい時でしょう。 -- 例えば、コマンド行で指定したもの、または Mac で analog のアイコンの上にドラッグしたもの、またはコンパイルした時に指定したもの。もしログファイルが常に同じ書式であれば、DEFAULTLOGFORMAT を使えば良い。そうすれば、充分な数の LOGFORMAT を適切な位置に置くことに頭を悩まさずに済む。
"Unix 時刻", %U は、常に GMT (グリニッジ標準時間)で記録される。そのため、おそらく LOGTIMEOFFSET コマンドを使って、地域時刻に変換する必要があるだろう。また、時間の整数部分だけであるので、少数がある場合には、%U.%j の形を使わなければならないだろう。
analog が取り扱えるログの書式は、即解読可能 として知られているものだけである:実際のところ、これは、文字列を終わらせる文字が文字列中に現れないという事を意味する。従って例えば、共通書式では、以下の様に見える。
LOGFORMAT (%S - %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b)もしホスト名がスペースを含んでいたとしたら、その行は、以上行とされるでしょう。何故なら、analog は、スペース=ダッシュ=スペースが最初に起きる場所では なく、最初のスペースの所でホスト名を終わらせてしまい、残りの行は、一致するかどうかを見ないでしょう。もちろん、ホスト名はスペースを含むはずは無いので、これは問題とはならない。他にも幾つかの制限がある。もし、何らかの日にちか時刻の情報があった場合、年度、月、日にち、時間、分は全てなくてはならない。そして、同じ情報は、2度と書式には現れない (従って例えば、%m と %M の両方は、指定できない。何故なら、これらは両方とも、月を表すからであり、もう片方を無視するために %j をすべきである )。
時には、ログファイルのある項目を読む必要があるが、解析する必要が無い場合がある。例えば、別々の共通ログと参照ログがあり、参照ログが以下の様になっているとする。
http://guide-p.infoseek.com/Titles -> /~sret1/analog/しかし、/~sret1/analog/ へのリクエストは、主たるログファイルを読み込んだ時に既に勘定されてしまっているため、このときにもう一度勘定に入れたくない。書式の文字列に、以下の様に * を指定することによりこれを避けることができる。
LOGFORMAT (%f -> %*r)
助言:ログファイルの一行全体が認識可能な文字で終わる限り、2個かそれ以上の隣接している場を無視するために、一個の %j をもって指定すると、時々より効率的になる。従って、共通書式は、以下の様に指定するとより効率的になる。
LOGFORMAT (%S - %u [%d/%M/%Y:%h:%n:%j] "%j %r %j" %c %b)-- 日にちと時刻に於いて [25/Dec/1998:17:45:35 +0000] 、秒と時間帯は、一つの %j で閉じ角括弧のところまで無視される。
もう一つの助言:%j は、analog が使用しない場ではなく、行全体を無視するために使うこともできる。例えば、拡張ログ書式は、# で始まる行を以下の様に書けば無視する。
LOGFORMAT #%jそして、マイクロソフトの書式は、以下の様にすれば FTP のリクエストに相当する部分を無視する。
LOGFORMAT (%*S, %*u, %m/%d/%y, %h:%n:%j, %j)もしそれらの書式が使われなかったとしたら、相当する行は異常行として扱われるでしょう。
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ HTTP/1.0" 200 1243 LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%wHTTP%j" %c %b) LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r" %c %b)
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ "HTTP/1.0" 200 1243 LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%w"HTTP%j" %c %b) LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r" %c %b)
jay.bird.com - fred [25/Dec/1998:17:45:35 +0000] "GET /~sret1/ HTTP/1.0" 200
1243 "http://www.site.com/" "Mozilla/2.0 (X11; I; HP-UX A.09.05)"
LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%wHTTP%j" %c %b "%f" "%B")
LOGFORMAT (%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r" %c %b "%f" "%B")
[25/Dec/1998:17:45:35] http://www.site.com/ -> /~sret1/ or http://www.site.com/ -> /~sret1/ LOGFORMAT ([%d/%M/%Y:%h:%n:%j] %f -> %*r) LOGFORMAT (%f -> %*r)
[25/Dec/1998:17:45:35] Mozilla/2.0 (X11; I; HP-UX A.09.05) LOGFORMAT ([%d/%M/%Y:%h:%n:%j] %B)
192.64.25.41, -, 12/25/98, 17:45:35, W3SVC1, HOST1, 192.16.225.10,
2178, 303, 1243, 200, 0, GET, /~sret1/, -,
LOGFORMAT (%S, %u, %m/%d/%y, %h:%n:%j, W3SVC%j, %j, %v, %T, %j, %b, %c, %j, %j, %r, %q,)
LOGFORMAT (%*S, %*u, %m/%d/%y, %h:%n:%j, %j)
192.64.25.41, -, 25/12/98, 17:45:35, W3SVC1, HOST1, 192.16.225.10,
2178, 303, 1243, 200, 0, GET, /~sret1/, -,
LOGFORMAT (%S, %u, %d/%m/%y, %h:%n:%j, W3SVC%j, %j, %v, %T, %j, %b, %c, %j, %j, %r, %q,)
LOGFORMAT (%*S, %*u, %d/%m/%y, %h:%n:%j, %j)
12/25/98 17:45:35 jay.bird.com host1 Server fred GET /~sret1/
http://www.site.com/ Mozilla/2.0 (X11; I; HP-UX A.09.05) 200 1243 2178
LOGFORMAT (%m/%d/%y %h:%n:%j\t%S\t%v\t%j\t%u\t%j\t%r\t%f\t%j\t%B\t%c\t%b\t%T)
25/12/98 17:45:35 jay.bird.com host1 Server fred GET /~sret1/
http://www.site.com/ Mozilla/2.0 (X11; I; HP-UX A.09.05) 200 1243 2178
LOGFORMAT (%d/%m/%y %h:%n:%j\t%S\t%v\t%j\t%u\t%j\t%r\t%f\t%j\t%B\t%c\t%b\t%T)
CASE INSENSITIVE CASE SENSITIVE
次に、analogは内蔵のエイリアスをそれぞれの項目に適用します。例えば、ファイル名や参照元の中の %7E は ~と同等であり、それに応じて翻訳します。また、ディレクトリからファイル名の接尾辞を取り除きます。この接尾辞は通常は index.htmlですが、下記のコマンドにより、別のものに変更できます。
DIRSUFFIX default.htm( DIRSUFFIXは1つだけ指定できます。)別の内蔵エイリアスもあります:例えばホスト名は、この時点で小文字に変換されます。
FILEALIAS /football.html /soccer.html HOSTALIAS lion lion.statslab.cam.ac.uk他の全てのエイリアスを打ち消す、特別なコマンド FILEALIAS none もあります。
他の項目に対するエイリアスには BROWALIAS,REFALIAS、 USERALIASそしてVHOSTALIAS があります。各項目に対しては、1回だけエイリアスが適用されます。
FILEALIAS /football.html /soccer.html FILEALIAS /soccer.html /brazil.htmlファイル /soccer.htmlは/brazil.htmlへ変換されますが、/football.htmlは /soccer.html にだけ変換され、2個目のエイリアスは適用されません。
エイリアスコマンド中ではワイルドカード(?や*)も使えます。また右側では、元の * と一致する元の名前の一部を表すように $1、$2 等も使えます。 特別な略記として、もし左側に * に対応して1個の名前しかないときには、右側の * は $1 と同等です。例えば
FILEALIAS /*/football/* /soccer/は/sport/football/rules.htmlを/soccer/へ変換します。 しかし
FILEALIAS /*/football/* /$1/soccer/$2 # or FILEALIAS /sport/football/* /sport/soccer/*のどちらも/sport/football/rules.htmlを/sport/soccer/rules.htmlへ変換します。
analogの * は何でも表すわけではありません:もし2種類の可能な一致の仕方があれば、左側の表現ができるだけ短くなるような一致の仕方を取ります。これはあなたが望む以上にしばしば起きます。しかし、これは例えば Perl の正規表現と対照的です。(2個の連続する*は全く意味を持ちませんが、もしそれを試したら、$1や$2などをそれに当てはめる前に、1個の*になってしまいます。)
もし、ファイルが検索引数を持つときには、FILEALIASやREFALIASの振る舞いはやや直観からはずれます。
Unixユーザーへの注意:もしALIASコマンドを+Cを伴うコマンド中に書いたら、シェルは $1 等を適用したり展開したりして、あなたが望まない結果を出すでしょう。このシェルの振る舞いを止めるには、2重引用符の代わりに1重引用符中にコマンドを書くことです。
TYPEOUTPUTALIAS .txt ".txt (Plain text files)"はファイルタイプレポート中でその行の説明を挿入します。
いくつかの ALIAS と OUTPUTALIAS の コマンドは混乱を引き起こすかもしれません。例えば、HOSTALIAS と HOSTOUTPUTALIAS の違いはなんでしょうか。実際には、別名が処理される時間による違いによる、数種類の違いがあります。HOSTALIAS はホストの 項目 に適用されますが、HOSTOUTPUTALIAS は ホストレポート中の行 に適用されます。これは、HOSTALIAS はドメインレポートのようにホスト名を使う他のレポートにも影響を及ぼすことを意味します。ところが、HOSTOUTPUTALIAS はホストレポートにだけ作用します。また、HOSTOUTPUTALIAS はホストレポートの各行に別々に適用されます。これは、もし二つの異なるホスト名を HOSTALIAS コマンドで一つの同じホスト名に変換したら、それらはそれ以降ずっと一つのホスト名になることを意味します。しかし、もし同じように HOSTOUTPUTALIAS コマンドが使われたら、それらは一つのレポート中ではたまたま同じ名前を持つ、二つの異なるホストになります。
要約すると、HOSTALIAS はふつう、1個のホストが2つの異なる名前を持つときに使用されます。したがって、2つのホストは他の場合には異なるように見えます。一方、HOSTOUTPUTALIAS は普通ホストレポートに注釈をつけたり、説明を付け加えたりするために使われます。
output aliase の全リストは以下の通りです。 REQOUTPUTALIAS, REDIROUTPUTALIAS, FAILOUTPUTALIAS, TYPEOUTPUTALIAS, DIROUTPUTALIAS, HOSTOUTPUTALIAS, DOMOUTPUTALIAS, ORGOUTPUTALIAS, REFOUTPUTALIAS, REFSITEOUTPUTALIAS, REDIRREFOUTPUTALIAS, FAILREFOUTPUTALIAS, BROWOUTPUTALIAS, FULLBROWOUTPUTALIAS, OSOUTPUTALIAS, VHOSTOUTPUTALIAS, USEROUTPUTALIAS そして FAILUSEROUTPUTALIAS です。
OUTPUTALIASに対して知られたバグが1つあります。レポートは OUTPUTALIAS が適用される前に分類されます。これはもしそのレポートに対して SORTBY が アルファベット順 に設定されていたら、そのレポートは正しく分類されないことを意味します。
残念ながら、もしまだ知らない人がいても、ここでは私は正規表現の使いかたを教える積りはありません。:もしUnix上でならば、man regex あるいは man grep と打ってみて下さい。正規表現の例題がたくさんあります。analog が使うのは、Unix の egrepのような、POSIX 流に拡張した正規表現です。もしPerl あるいはGNU の grep -E の正規表現をよく知っているなら、それらと全てが同じものを見つけるとはかぎらないでしょう。
"REGEXP:" をエイリアスの左側の前につけることによって、ALIASコマンド中に正規表現を含むことができます。あるいは、"REGEXPI:" を使うことによって Unix の egrep -i のように大小文字の区別をしない一致検索を指定することができます。(もし、CASE INSENSITIVE と明記したら、ホスト名やファイル名のような多くの項目は自動的に大小文字を区別しなくなります。)
左括弧の順番に勘定して一番目、二番目等の括弧でくくられた左辺の表現を表すために、エイリアスの右辺では $1、 $2 等を使用できる。(ここでもまた、一重引用符でくくれば、$1、$2 等をコマンド行に書くことができる。)
正規表現は、文字列の一部分が一致すれば一致したことになる。文字列全体に一致させたいときには、正規表現の両端を ^ と $ でくくらなければならない。
例えばリクエストレポートの場合には、
REQOUTPUTALIAS REGEXP:^(/~([^/]*).*)$ "[$2] $1"は
/~sret1/backgammon/rules.htmlを
[sret1] /~sret1/backgammon/rules.htmlに変換する。 または
HOSTALIAS REGEXP:^([^.]*)$ $1.mycompany.comは、全てのピリオッドを含んでいないホスト名に .mycompany.com を付け加える。 (これが良い考えかどうかは FAQ の議論を見よ。)
正規表現は貪欲である:もし2種類の一致の仕方があるときには、左側の一致を可能な限り進めてゆく。
HOSTEXCLUDE mycomputer.myisp.comは、そのコンピュータからの全てのリクエストを統計から除外します。
項目が含まれるか除外されるかどうかの規則は、次のようにして決められる。その項目に対する全ての INCLUDE と EXCLUDE は、順番に一つずつ考慮され、適合する最後のコマンドにより、その項目が含まれるか或いは除外されるかが決まる。どの INCLUDE あるいは EXCLUDE コマンドにも一致しない項目は、もしそのコマンドが除外ならば含まれるし、もしそのコマンドが包含ならば除外される。例えば、以下の環境設定
FILEINCLUDE /~sret1/* FILEEXCLUDE /~sret1/backgammon/*,/~sret1/analog/* FILEINCLUDE /~sret1/backgammon/*.gifは、私のファイルだけを吟味しろとプログラムに指示し、次に私の backgammon と analog のファイルは除外するが、最後に backgammon ディレクトリ中の gif ファイルだけを含めるように指示する。一方、
FILEEXCLUDE /~sret1/*/img/*は、私の種々のディレクトリ中の画像ファイルを除いて、全てのファイルを解析する。包含と除外は、幾つでもワイルドカードを使うことができることに注意せよ。
これらのコマンドの完全な一覧は、HOSTINCLUDE と HOSTEXCLUDE; FILEINCLUDE と FILEXCLUDE; BROWINCLUDE と BROWEXCLUDE; REFINCLUDE と REFEXCLUDE; USERINCLUDE と USEREXCLUDE; そして VHOSTINCLUDE と VHOSTEXCLUDE である。
包含と除外は別名を付けた 後に 処理されるので、使用すべき名前は、別名である。( OUTPUTALIAS コマンドがない時には、これは出力に現れる項目名である。)
時には、行がある特別な項目を含まないことがある。これは、その行にその項目用の場所が無いからか、あるいはそのリクエストに対して、ブラウザーがその項目を送らないからである。これらの行を含めるか削除するかは、 INCLUDE か EXCLUDE コマンドに特殊な空の項目を指定することによって可能になる。
USERINCLUDE jim USERINCLUDE ""は、 jim というユーザを含む行と、ユーザが指定されていない行を含めることになる。
もしファイルが、検索語 を含むときには、REQINCLUDE と REFINCLUDE は、やや直感とは異なる振る舞いをする。
適切な OS では、"REGEXP:" または "REGEXPI:" を表現の頭に付け加えて、包含と除外に対して正規表現が使える。これについては、別名の項ですでに相当ページを割いて説明をしたので、詳細については、そこを参照 して下さい。
もし全ての包含と除外について混乱が生じた時には、analog -settings を走らせることによって、あなたが指定したオプションが何を常に意味するかを見ることができます。
FROM 990701 TO 000630この代わりとしては、各成分の頭に + または - を付けて、プログラムが起動された時刻に相対的な時間を表すことができます。この場合には、日にちは2桁以上になることができます。これを使えば、以下のような設定ができます。 Alternatively, each of the components can be preceded by + or - to represent time relative to the time at which the program was invoked. In this case, the date can have more than 2 digits. This allows constructions like
FROM -01-00+01 # 昨年度の明日の日付から TO -00-0131 # 先月の終わりまで (先月が31日なくても大丈夫です) FROM -00-00-112 TO -00-00-01 # 最近16週間の統計 FROM -00-00-00:-06+01 # 最近6時間の統計FROM と TO コマンドに対するコマンド行の省略形、+F と +T があります。例えば、+T-00-00-01:1800 は、昨日の午後6時までの統計を取ります。-F と -T は、FROM OFF と TO OFF の様に、これらのコマンドの使用を止めます。
REFREPEXCLUDE http://your.site.com/*は、「リンク元URLレポート」からあなたの内部のリンク元を除外します。しかし、このコマンドでは、内部のリンク元は、「不成功リンク元レポート」、「リンク先レポート」、等からは除外されません。( これを実行するには、FAILREFEXCLUDE、 REFSITEEXCLUDE 等が必要です。) REFEXCLUDE コマンドと同様に、これらのリンク元があっても、ログファイルの他の解析は妨げられません。また、REFREPEXCLUDE は、レポートの最後の行の "残り" にリンク元を含みます。
これらのコマンド群の全部の一覧は以下の通りです。REQINCLUDE と REQEXCLUDE; REDIRINCLUDE と REDIREXCLUDE; FAILINCLUDE と FAILEXCLUDE; TYPEINCLUDE と TYPEEXCLUDE; DIRINCLUDE と DIREXCLUDE; HOSTREPINCLUDE と HOSTREPEXCLUDE; DOMINCLUDE と DOMEXCLUDE; ORGINCLUDE と ORGEXCLUDE; REFREPINCLUDE と REFREPEXCLUDE; REFSITEINCLUDE と REFSITEEXCLUDE; SEARCHQUERYINCLUDE と SEARCHQUERYEXCLUDE; SEARCHWORDINCLUDE と SEARCHWORDEXCLUDE; REDIRREFINCLUDE と REDIRREFEXCLUDE; FAILREFINCLUDE と FAILREFEXCLUDE; BROWSUMINCLUDE と BROWSUMEXCLUDE; FULLBROWINCLUDE と FULLBROWEXCLUDE; OSINCLUDE と OSEXCLUDE; VHOSTREPINCLUDE と VHOSTREPEXCLUDE; USERREPINCLUDE と USERREPEXCLUDE; と FAILUSERINCLUDE と FAILUSEREXCLUDE。もし、出力の別名 を使用しているときには、包含と除外は、別名を付ける前の名前に適用されます。
適切な INCLUDE と EXCLUDE コマンド内で、象徴的な言葉 pages を使うこともできる。非常によく使われるコマンド
REQINCLUDE pagesは、リクエストレポート中のページだけを含めるようにする。
PAGEINCLUDE *.ps,*.ps.gz PAGEEXCLUDE sret1.html(即ち、ポストスクリプトファイルと gzip で圧縮されたポストスクリプトファイルがページとみなされるが、sret1.html はページとはならない。)
/cgi-bin/script.pl?x=1&y=2は、引数 x=1 と y=2 を渡して、プログラム /cgi-bin/script.pl を走らせます。( 時々サーバーは、ログファイルの別々の場所にこれらの引数を記録します。しかしもし LOGFORMAT コマンドの中の %q 項を使えば、analog はファイル名を上記のように翻訳します。)
これからすぐに 述べる ARGSINCLUDE と ARGSEXCLUDE のコマンドを使えば、analog は引数を読み込んだり無視したりできます。 しかし初期設定では全ての引数は読み込まれるようになっています。これが通常望まれることであり、実際これらのコマンドを使うことも無いでしょう。
引数が読み込まれたとしても、いつでもレポートに引数が現れるわけではありません。なぜなら analog は引数が十分にないとき、表示しないからです。 引数を見るためには、それに相当する ARGSFLOOR 変数を十分に小さい値にしなければなりません。
また、レポート内で検索引数が、参照されているファイルのすぐ下に箇条書きされています。このため、一時的にファイルの順番が狂います。N 項目数 を使用すればもっとはっきりします。
この理由は、例えば以下のコマンド
FILEINCLUDE /cgi-bin/script.plは、 /cgi-bin/script.pl?x=1&y=2 ファイルには 適用されない からです 。適用させるためには、代わりに以下のようなコマンドを使わなければならないでしょう。
FILEINCLUDE /cgi-bin/script.pl*同様に
FILEALIAS /cgi-bin/script.pl /script.plは /cgi-bin/script.pl を変化させるが、/cgi-bin/script.pl?x=1&y=2 は変えません。これは上と同じように、
FILEALIAS /cgi-bin/script.pl?* /script.pl?$1のようなものを使えばよいでしょう。
ARGSEXCLUDE /cgi-bin/script.plを与えられたら、analog はファイルの引数を無視し、/cgi-bin/script.pl を /cgi-bin/script.pl?x=1&y=2 とみなすでしょう。 他方では、もし
ARGSINCLUDE /cgi-bin/script.plが指定されたら、analog は引数を読み、/cgi-bin/script.pl?x=1&y=2 を /cgi-bin/script.pl とは異なるファイルとして扱うでしょう。 REFARGSINCLUDE と REFARGSEXCLUDE は、レファラーに対して同じ事をします。
技術的注意:ファイル名が、内蔵のかあるいはユーザ指定の別名 であるかどうかを判断する以前に、引数を含むべきかどうかの判断が先行します。従って、ログファイル中に現れる、別名でない正確な名称を使わなければなりません。 例えば、実際には以下の2つは同じファイルにもかかわらず、 ARGSINCLUDE /~sret1/script.pl は、 /%7Esret1/script.pl と一致するとみなしません。 これは ARGSINCLUDE あるいは ARGSEXCLUDE コマンド中で、 "ページ" を使えないことを意味します。なぜなら別名を付けた後では、ファイルがページかどうか分からないからです。
http://www.altavista.com/cgi-bin/query?pg=q&kl=XX&q=carrot+cakeを考えてみましょう。検索項目は q= にあり、従って適切な SEARCHENGINE コマンドは、
SEARCHENGINE http://www.altavista.com/cgi-bin/query qであるか更に良いのは、
SEARCHENGINE http://*.altavista.*/* qとして、異なる国の全てのミラーサイトを含むことである。
時々検索エンジンは、検索項目用に2つあるいはそれ以上の項目を持つ場合ある。この場合、以下の様にコンマで区切って全てを含めることができます。
SEARCHENGINE http://*.webcrawler.*/* search,searchText
もしログファイルが 必要な情報を含んでいるときには、analog が表現できる32の異なるレポートがあります。それぞれのレポートは、以下のような短い名前と、コード文字または数字を持っています。
x GENERAL 全体の概要 m MONTHLY 月別レポート W WEEKLY 週別レポート D FULLDAILY 日別レポート d DAILY 曜日別概要 H FULLHOURLY 時間別レポート h HOURLY 時間別概要 4 QUARTER 15分間隔レポート 5 FIVE 5分間隔レポート S HOST ホストレポート Z ORGANISATION 組織レポート o DOMAIN ドメインレポート r REQUEST リクエストレポート i DIRECTORY ディレクトリレポート t FILETYPE ファイル種類別レポート z SIZE ファイルサイズレポート P PROCTIME 処理時間レポート E REDIR リダイレクションレポート I FAILURE 不成功レポート f REFERRER リンク元レポート s REFSITE リンク元サイトレポート N SEARCHQUERY 探索語レポート n SEARCHWORD 検索語レポート k REDIRREF リダイレクトされたリンク元レポート K FAILREF 不成功リンク元レポート B FULLBROWSER ブラウザーレポート b BROWSER ブラウザーの概要 p OSREP OSレポート v VHOST 仮想ホストレポート u USER ユーザレポート J FAILUSER 不成功ユーザレポート c STATUS 状態コードレポート個々のレポートの詳細な意味とそれらを制御するコマンドの概要は、 Analog のレポート を見て下さい。
FIVE OFF REFSITE ONのような環境設定コマンドや、-5 または +s のようなコマンド行の引数が使われます。 また「全体の概要」を除くすべてのレポートを ALL ON や ALL OFF のコマンド、またはコマンド行の引数である +A や -A を用いて出力を制御することができます。
GOTOS OFFコマンドで出力を消すことができ、GOTOS ON で再び出すことできます。また GOTOS FEW で、"Go To" 行を、ページの先頭と最後に置くことができます。コマンド行の引数としては、GOTOS OFF は -X と簡単に書け、GOTOS ON は +X と書けます。
「全体の概要」中の括弧内の数字は、直近の7日間の値を示しています。即ち、TO 時刻以前の7日間、または TO の時刻が与えられていないときには、プログラムが始まった時刻以前の7日間を表しています。直近の7日間の値は、全ては必要ないが幾つかのリクエストがその7日間にあった場合に、通常レポートに含まれます。しかし、次のコマンドによって削除することもできます。
LASTSEVEN OFFもちろん LASTSEVEN ON でそれらを再び出すことができます。
REPORTORDER コマンドでレポートの順番を変えることができます。以下の様に、全てのレポートのコード文字をあなたが望む順序で並べればよい。
REPORTORDER xcmdDhH45WriSoEItzsfKkuJvbB
OUTPUT stats.htmまたは +Ostats.htm のようなコマンド行の引数を使って、出力するファイル名を変えることができます。もし - または stdout というファイル名を使ったとしたら、出力は標準出力になり、スクリーンに出力されるでしょう。しかし Unix のユーザは、リディレクションを使って別のファイルに出力したり、パイプを通すかもしれません。また
OUTFILE /usr/bin/httpd/htdocs/stats.html # Unix OUTFILE "Hard Disk:Server Apps:WebSTAR:Analog:Report.html" # Macのような絶対パス名を使うこともできます。
時には、OUTFILE のファイル名に日付を含むことは都合が良いことがあります。ファイル名の中に以下のコードを含むことで、これを実現することができます。
%D 日付 %m 月の名称 %M 数値の月 %y 2桁の年 %Y 4桁の年 %H 時 %n 分 %w 曜日例えば
OUTFILE stats%y%M.htmlは stats9905.html のようなファイル名を生成します。使用される日付は、TO で使用される日付です。そこで指定されていなければ、プログラムが起動した時刻になります。
OUTPUT ASCIIのようなコマンドはもちろん、コマンド行の引数として +a を付ければ ASCII スタイルを、-a を付ければ HTML 出力形式を選ぶこともできます。もし キャッシュファイル を出力しているなら、OUTPUT NONE で出力を抑えることもできます。
次に、出力の言語を変えることができます。それには2つの方法があります。一般的な方法は LANGUAGE コマンドを使います。例えば
LANGUAGE FRENCHはフランス語で出力します。現在、有効な言語は CATALAN, CHINESE, CZECH, DANISH,DUTCH, ENGLISH, US-ENGLISH,FINNISH, FRENCH, GERMAN, GREEK,HUNGARIAN, ICELANDIC, ITALIAN,JAPANESE, KOREAN, LATVIAN,LITHUANIAN, NORWEGIAN (Bokmål),NYNORSK, POLISH, PORTUGUESE,BR-PORTUGUESE, ROMANIAN, RUSSIAN,SERBOCROATIAN, SLOVAK, SLOVENE,SPANISH, SWEDISH と TURKISH です。
注意:これらの言語の全ては、analog のバージョン3で有効ですが、大部分はバージョン4用にはまだ翻訳されていないので、このバージョンでは使えません。言語ファイルは lang ディレクトリに入っており LANGFILE コマンド(次の段落を見よ)で選ぶことができますが、言語ファイル中には、いくつかの英語の熟語が含まれています。言語ファイルが翻訳されれば、それらは analog のホームページ に加えられていきます。
もう一つの方法は LANGFILE コマンドを使う方法です。これはもしあなたが新しい言語を analog のホームページ からダウンロードしようとしたり、自分で翻訳しようとしたり、いくつかの言葉や熟語、または日付や時間の出力形式を変更しようとするときに便利です。 LANGFILE コマンドは、新しい言語に対してさまざまな言葉や熟語が含まれているファイルがどれであるか示しています。例えば、
LANGFILE lang/guarani.lngコマンドは、このファイルから読み込むことを表しています。(もしファイルが analgo が動作しているディレクトリかフォルダー内に無いときには、ディレクトリ名も含めなければならないことに注意してください。特に、他の言語と同じファイルにあるとは限りません。)
またいくつかの言語では ドメインファイル が使用できます。これらは通常 LANGUAGE コマンドによって自動的に選ばれます。しかし DOMAINSFILE コマンドを使って、異なるドメインファイルを使うこともできます。 またいくつかの言語では フォームインターフェース の翻訳もあります。
もしあなたが他の言語に翻訳して頂けるなら、わたしは非常に感謝します。しかし、他の誰も同じ言語に翻訳していないことを確かめるために、最初に私に連絡することをお勧めします。英語の言語ファイルには、新しい言語に翻訳する際の簡単な指示が含まれています。
このコマンドを使うときには、注意しなければなりません。 異なる時間帯の異なる世界で使われている夏時間のため、analog は、異なる時間帯の間 を変換しようとしません。1年の異なる時間に対して、正しい時間差を設定するのはあなたの責任です。例えば、あなたはシカゴに居るが、サーバは GMT (世界標準時)で記録しているとすると、2種類の異なる時間差を設定する必要があるでしょう。一つは夏に−5時間であり、冬には−6時間になります。あなたは、ログファイルを適切な場所で2つに分け、以下のようなコマンドを発行する必要があるでしょう。
LOGTIMEOFFSET -300 LOGFILE summer*.log LOGTIMEOFFSET -360 LOGFILE winter*.log
これに関連して、TIMEOFFSET と呼ばれるコマンドがある。これは、現地時間を取り入れるために、(Web サーバが動作しているコンピュータではなく)analog が動作しているコンピュータの時間をどれくらいずらせばよいのかを決定する。
IMAGEDIR img/ # 出力と同じディレクトリ内にある場合 IMAGEDIR /img/ # Web サーバのルートディレクトリからの位置
出力の最上部の行に影響を与える3このコマンドがある。初めに、LOGO コマンドは、analog のロゴマークを他の画像に(例えば、あなたの機関のロゴ)に置き換えることができる。以下の様にすれば良い。
LOGO picture.gif # このファイルに対して LOGO /images/picture2.gif # 異なるファイル LOGO none # ロゴマーク無しロゴマークは、スラッシュマークで始まらない限り、あるいは :// を含まない限り、IMAGEDIR 内にあると仮定されている。
次に、HOSTNAME と HOSTURL コマンドがある。これらは、題名の行の終わりの「名称」と「リンク」に影響を与える。例えば、以下の様に指定すると、
HOSTNAME "Stephen Turner" HOSTURL http://www.statslab.cam.ac.uk/~sret1/"ウェブサーバの統計 Stephen Turner" という結果が得られる。 HOSTURL に対して、none と指定して、リンクを張らないこともできる。analog は、通常必要ならば、ホスト名中の文字を HTML の文法に則って翻訳する。HTML のアクセントつきの文字のような特殊文字を含めるためには、それらの文字の前にバックスラッシュをつける必要がある。以下のようにである。
HOSTNAME "M\üller & S\öhne"
また HEADERFILE と FOOTERFILE と呼ばれるコマンドがある。これらによって、出力ファイルの最上部と最下部に挿入するファイルを指定することができる。以下の様に指定すると、
HEADERFILE none以前に指定されたヘッダーファイルを取り消すことができる。
出力にスタイルシートを指定する STYLESHEET というコマンドがある。このコマンドは、色等を指定することができる(スタイルシートの書き方は、http://www.w3.org/Style/css/ を参照せよ)。例えば、
STYLESHEET /housestyle.css STYLESHEET none # 上記の取り消し
これに関連して、SEPCHAR、REPSEPCHAR、それに DECPOINT と呼ばれる3このコマンドがある。これらは、それぞれ、数値の3桁区切り文字、レポート中の列に現れる数値の3桁区切り文字、それに小数点文字を指定する。例えば、フラン人のユーザは、以下の様に指定するであろう。
SEPCHAR " " REPSEPCHAR none DECPOINT ,こうすると、"3000と4分の1" は、文章中では "3 000,25" のようになり、レポート中では "3000,25" のようになる。
RAWBYTES と呼ばれるコマンドがある。もしレポート中で正確なバイト数を知りたかったら、RAWBYTES ON と指定すればよいし、 あるいはその代わりに、もしキロバイトやメガバイトのように適切な単位の数値が欲しいときには、RAWBYTES OFF とすればよい。
最後に、ページの幅を決める HTMLPAGEWIDTH とか ASCIIPAGEWIDTH と呼ばれるコマンドがある。明らかに、前者は出力形式が HTML のときに使われるし、後者は ASCII 出力形式のときに使用される。出力はこのコマンドで指定される幅に収まるとは保証されないが、時間の画像をの幅を選択するとき、 アルファベット順にホストレポートを並べようとするとき、水平線を書くとき、それに文章を書くときに、analog は注意を払っている。
それぞれの時間レポートは、リクエストを示す列、ページ毎のリクエスト、及びその時間に転送したバイト数を、以下の文字コードを使用して表しています。
HOURCOLS Pbというコマンドは、「時間別概要」の列として、ページリクエスト数とバイト数の割合をこの順番で含むように analog に告げます。 他の COLS コマンドには、MONTHCOLS、WEEKCOLS、 DAYCOLS (曜日別概要)、FULLDAYCOLS (日別レポート)、 FULLHOURCOLS (時間別レポート)、QUARTERCOLS と FIVECOLS があります。また、TIMECOLS コマンドもあり、特定の列を含むよう全ての時間レポートに指示します。
FULLDAYGRAPH Pはページリクエスト数による「日別レポート」の棒グラフの表示を実行します。また、このコマンドは、最も混んでいた時間帯が analog がどこかを判断して、レポートの最後の行に与えます。 小文字を使えば、標準の赤い棒グラフに代わって ASCII 文字を用いた棒グラフを書く。(この方が短い出力になり、ASCII 出力形式のとき、あるいは画像を使用しないブラウザで表示されたとき、とにかくどういう形になるかを与える。)従って、例えば、
FULLDAYGRAPH bは画像を使わずに、バイト数による「日別レポート」を表します。その他の GRAPH コマンドは MONTHGRAPH、WEEKGRAPH、 DAYGRAPH, HOURGRAPH, FULLHOURGRAPH, QUARTERGRAPH と FIVEGRAPH です。またそれらの全てを同時にセットする ALLGRAPH コマンドもあります。
BARSTYLE a初期設定は b です。BARSTYLE b
BARSTYLE c
BARSTYLE d
BARSTYLE e
BARSTYLE f
BARSTYLE g
BARSTYLE h
![]()
MONTHBACK ON # 逆順月次レポート WEEKBACK OFF # 昇順週別レポートその他の BACK コマンドは FULLDAYBACK、 FULLHOURBACK、QUARTERBACK と FIVEBACK です。 順番の種類を混ぜると混乱しがちとなり(もしそれを行うと、analog に警告されるでしょう)、そのため通常はそれらのコマンド全てを一括して設定する ALLBACK コマンドを使う事になるでしょう。
QUARTERROWS 96 # 最後の日だけ価値がある MONTHROWS 0 # 0 は、何の制限も無いことを意味する。即ち、全ての時間を表示する。その他の ROWS コマンドは、WEEKROWS、 FULLDAYROWS、FULLHOURROWS と FIVEROWS です。 ROWS コマンドが与えられていても、レポートの最後の行には、表示されている行の中で最も混雑した時間ではなく、今までの期間の中で最も混雑した時間を表示している。
MARKCHAR =は、等号を使えという意味である。
次のコマンド MINGRAPHWIDTH は、名ばかりの最小の画像の大きさを決める。例えば、以下の様に設定すると、
MINGRAPHWIDTH 10画像は、PAGEWIDTH で決められた幅をたとえ越しても、10文字分までの幅を取り得る。
もう一つ時間レポートに影響を与えるコマンドがある。どの曜日が一週間の始めか指定することができる。これは、「日別レポート」、「曜日別概要」、それに「週別レポート」の表示に影響する。例えば、地域の学生新聞が金曜日ごとに新しい記事をWebに載せているとすると、彼らは以下の様に彼らのレポート用に指定したいであろう。 WEEKBEGINSON FRIDAY
次章では、時間に関連しないレポート に関係したコマンドについて述べるでしょう。
初めに、これらのレポートは、まさに時間に関連したレポートのような COLS コマンドを持っています。(これらのコマンドの使いかたは 時間レポート の章をみてください。) 時間に関連しないレポートでは、2つの追加項目があります。即ち最後のアクセス日である D とリストの中の項目数である N です。例えば、
REQCOLS NRDはリクエストレポートの中のファイルを勘定し、それぞれのリクエスト数とそれぞれが最後にリクエストされた時の時間を記述します。時間に関連しないレポートにおける全ての COLS コマンドの一覧は、HOSTCOLS, ORGCOLS, DOMCOLS, REQCOLS, DIRCOLS, TYPECOLS, SIZECOLS, PROCTIMECOLS, REDIRCOLS, FAILCOLS, REFCOLS, REFSITECOLS, SEARCHQUERYCOLS, SEARCHWORDCOLS, REDIRREFCOLS, FAILREFCOLS, FULLBROWCOLS (Browser Report), BROWCOLS (ブラウザーの概要), OSCOLS, VHOSTCOLS, USERCOLS, FAILUSERCOLS と STATUSCOLS です。 全てのレポートの中で、これら全ての列が認められるわけではないのですが、間違った使い方をすれば、analog は注意を発するでしょう。
HOSTSORTBY ALPHABETICALというコマンドはホストレポートをアルファベット順に並べます。そのほかの SORTBY コマンドには、 ORGSORTBY, DOMSORTBY, REQSORTBY, DIRSORTBY, TYPESORTBY, REDIRSORTBY, FAILSORTBY, REFSORTBY, REFSITESORTBY, SEARCHQUERYSORTBY, SEARCHWORDSORTBY, REDIRREFSORTBY, FAILREFSORTBY, FULLBROWSORTBY, BROWSORTBY, OSSORTBY, VHOSTSORTBY, USERSORTBY, FAILUSERSORTBY と STATUSSORTBY があります。再び、全てのレポートの中で全ての分類の仕方が可能というわけではないのですが、違法な使い方をしたら、analog に注意されるでしょう。
SORTBY ALPHABETICAL に関係のある有名なバクがあります。レポートは、OUTPUTALIAS が適用される前に、分類されてしまいます。これは、もし OUTPUTALIAS がそのレポート中で指定されているなら、レポートは正しくは分類されない、ということを意味します。
DOMFLOOR 1000r # 少なくとも1,000件のリクエストがあった全てのドメイン
DOMFLOOR 1000p # 少なくとも1,000件のリクエストがあったページ
DOMFLOOR 1000000b # 少なくとも1,000,000バイトのデータ転送量
DOMFLOOR 1Mb # 少なくとも1メガバイト
DOMFLOOR 0.5%r # 0.5% のリクエスト( %p や %b に対しても同様 )
DOMFLOOR 0.5:r # どのドメインに対しても 0.5% の最大
# リクエスト数( :p や :b に対しても同様 )
DOMFLOOR 970701d # 1997年1月1日 以来の最終アクセス日
DOMFLOOR -00-01-00d # 最近の月からの最終アクセス日
# ( FROM と TO コマンドのマニュアルを見よ )
DOMFLOOR -100r # 最上位100位以内のリクエスト数のあったドメイン
# ( -100p, -100b, -100d に対しても同様 )
そのほかの FLOOR コマンドに HOSTFLOOR,
ORGFLOOR,
REQFLOOR, DIRFLOOR, TYPEFLOOR,
REDIRFLOOR, FAILFLOOR, REFFLOOR,
REFSITEFLOOR, SEARCHQUERYFLOOR,
SEARCHWORDFLOOR, REDIRREFFLOOR,
FAILREFFLOOR, FULLBROWFLOOR, BROWFLOOR,
OSFLOOR,
VHOSTFLOOR, USERFLOOR, FAILUSERFLOOR と
STATUSFLOOR があります。すべての FLOOR が全てのレポートで認められるわけではないのですが、間違った使い方をすれば、analog は注意をするでしょう。
リクエストレポート中のリンクに影響を与える、もう一つのコマンドがあります。 BASEURL コマンドは目標のリンク中のURLに、余分の文字列を頭に付け加えます。例えば、以下のコマンドを使用した後、
BASEURL http://www.statslab.cam.ac.uk/~sret1/ は、 /~sret1/ ではなく、 http://www.statslab.cam.ac.uk/~sret1/ にリンクを張ります。 これは照会したいサーバーの統計を、異なったサーバー上で表示したいときにとても便利です。もしファイルを http://www.statslab.cam.ac.uk/~sret1/ のように表示したいならば、そのアドレスにリンクを張るよりもむしろ、LOGFILE コマンドを代わりに使用して、第2引数を利用すればできます。
次の章では、この章のコマンドに密接に関係した 階層構造をもったレポート を生成するコマンドについて説明します。
最初に、一覧にされたレポートの各項目をあなたが制御できる必要がある。このためには、SUB の付いたコマンドを使う必要がある。従って、例えば次のコマンド、 SUBDIR /~sret1/* は、「ディレクトリレポート」が私のファイルの合計の項目を含むだけではなく、私の各サブディレクトリに対する各項目も含むであろう。以下の様なものになろう。
29,111: /~sret1/ 10,234: /~sret1/analog/ 5,179: /~sret1/backgammon/ 11,908: /~steve/コマンド中に1個以上の * を含むことができる。例えば、
SUBDOMAIN *.*は、全体の「ドメインレポート」を2階層深く表示する。
SUB コマンドを指定すると、全ての中間層は自動的に含まれる。従って、例えば、
SUBDOMAIN statslab.cam.ac.ukの後では、cam.ac.uk と ac.uk も、「ドメインレポート」に含まれるし、*.*.ac.uk の指定の後では、*.ac.uk も含まれることになる。
以下に4個の SUB コマンドの例を挙げる。
SUBTYPE *.gz # 「ファイル種類別レポート」中で SUBBROW */* # 例えば、「ブラウザーの概要」中での Mozilla/4 SUBBROW Mozilla/*.* # Mozilla にマイナーなバージョン番号を付ける REFDIR http://search.yahoo.com/* # 「リンク元レポート」 SUBORG *.aol.com # 「組織別レポート」 SUBORG *.*.com # 全ての .com を分解する
SUBDOMAIN レポート(しかし他はなんでもない)には、サブドメインを表現する2番目の引数を含むことができる。例えば、以下の様になる。
SUBDOMAIN cam.ac.uk 'University of Cambridge'このときこのサブドメインは、「ドメインレポート」にその翻訳と一緒に一覧される。また、数値で表したサブドメインを使うこともできる。例えば、以下のようである。
SUBDOMAIN 131.111 'University of Cambridge'もしサブドメインがアルファベット順に整列された時、数値のサブドメインも数値の順ではなくアルファベット順に整列される。これが問題になるとは、私には思えない。
もし LOGFILE に2個目の引数を付けたなら、SUBDIR には別な使用法がある。/index.html というファイルを http://www.mycompany.com/index.html と翻訳したとしよう。すると、以下のコマンド
SUBDIR http://*/*は、ディレクトリレポートを正しい形にする適切な指定である。
下の階層の項目は、階層的レポートに以下の条件の時に一覧にされる。もしその項目が sub-FLOOR 以上にあり、かつ SUB が付いたコマンドに含まれ、かつ INCLUDE または EXCLUDE コマンドにより除外されておらず、かつ 直近の親が一覧に含まれているという条件のもとである。例えば、以下の命令
SUBDIR /*/*/ SUBDIRFLOOR -3r SUBDIRSORTBY REQUESTSは、各ディレクトリ下の大部分のリクエストに対して、3つのサブディレクトリを一覧にする。SUBDIRFLOOR 1:r は、どの 最上層 のディレクトリに対する最大のリクエスト数の最低1%のリクエストを生じたどのサブディレクトリも一覧にするでしょう。
3個のファイルレポート (リクエストレポート、リダイレクションレポートそれに 不成功レポート) それに 3個のリンク元レポート (リンク元レポート、リダイレクションされたリンク元レポート それに 不成功リンク元レポート) は、完全には階層的ではないが、参照したファイル (引数が読み込まれたと仮定して: ARGSINCLUDE コマンドを参照のこと) の下の 検索語 と共に一覧が出力される。そのため、これらは sub-FLOOR と sub-SORTBY コマンドに似た命令を持つ。即ち、REQARGSFLOOR、REDIRARGSFLOOR、FAILARGSFLOOR, REFARGSFLOOR、REDIRREFARGSFLOOR そして FAILREFARGSFLOOR; それに REQARGSSORTBY、 REDIRARGSSORTBY、FAILARGSSORTBY、 REFARGSSORTBY、REDIRREFARGSSORTBY そして FAILREFARGSSORTBY である。同じ事が、OS のマイナーバージョンを含んだ「OSレポート」に対しても適用される。この場合には、SUBOSFLOOR と SUBOSSORTBY を持つ。
DOMAINSFILE lang/mydomains.tab使用している言語のドメインファイルが存在するとき、自動的に選ばれるので、通常このコマンドは必要ありません。しかし、もし新しい言語でドメインファイルを使いたいときには、DOMAINSFILE コマンドは役に立ちます。
もしドメインファイルを持っていないなら、http://www.statslab.cam.ac.uk/~sret1/analog/ukdom.tab からダウンロードできます。これは以下のように、各行に、ドメインコード、数字、国名が続きます。
ad 2 Andorra ae 3 United Arab Emirates [...]普通、人はドメイン名をアルファベット順に並べるのを好みますが、必ずしもそうする必要はありません。
数値は、「組織レポート」用に使用され、 "組織" が何層目にあるかを示しています。例えば、ホスト名 www.sta.ad を考えて見ましょう。この組織は、sta.ad 、即ち2層目にあり、アンドラ王国は上記のリストで数値2を持っています。しかし、UAE (アラブ首長国連邦)では、ホスト名は www.economy.gov.ae の様になる。階層にはもう一つのレベルがあり、従って UAE では3層目に組織名を持っています。(アンドラ王国では、sta が組織名であり、UAE では、economy が組織名になっており、両国とも www がホスト名である。)
この表し方にはいくつかの問題があります。いくつかの国々は2と3の両方の層に組織名を持っています(例えば、asaspace.at と univie.ac.at)。この場合、私は、より大きい数字を使って、積極的な間違いよりも消極的な間違いを選んでいます。(要するに、異なる数値がある場合には、大きい数値を取るということである。)(またもう一度正しいものにする修正の仕方がある。3層以上のホスト名からは、最初の項は必ず取り除くやり方です。)他の国々に対しては、層の数が幾つであるべきかは、私は詳しい知識を持ち合わせていない。もしあなたがこの数値についての何らかの情報をまたは修正をお持ちのときには、私にお知らせください 。
am Arm\énie
ドメインファイル中に存在するドメイン名だけが、「ドメインレポート」中で表現されることになる。残りは、多分見せかけの名前であり、一まとめに "未知のドメイン名" と表わされるでしょう。もし デバッグ をオンにしているときには、どのドメインが未知であるかわかるでしょう。
ドメインファイル中でハッシュ記号(#)で始まる行は、注釈とみなされます。
OUTPUT COMPUTERこの形式は、例えば、スプレットシート(表計算用ソフト)や画像作成ツールの後処理で読み取りやすく作られています。
出力の各行は、特別な文字によって各項目に分けられます。COMPSEP コマンドによってこの特殊文字を指定できます。例えば、
COMPSEP ,は CSV (コンマで区切られた値)形式です。出力中に現れ得る文字を使わないようにします。例えば、1個のスペースあるいは2個のスぺースはふさわしくないでしょう。
前もって整えられた出力の各行は、その行の所属しているレポートを表す1文字から始まります。(各レポートのコード文字は、出力の設定 に掲載されています)。それに続いて、このレポート中の残りの列を表す項が続きます(普通、RrPpBbD を使う)。それから、数値とその項目名があります。時間は実際、いくつかのフィールドをふさぎます:年、月、日、時間、分、あるいは時間見分けるのに必要なもの。
大部分のレポートの最初の行は、通常の列を表す文字の代わりに f があります。それに続いて、レポートのフロアがきますが、それは FLOOR コマンド用の形式で書き、またそれに続いて、以下のコード文字を用いた SORTBY コマンドが来ます。
全体の概要はすこし異なります。最初の x の後に、その行が何を含んでいるかを表す2文字のコードが続きます。可能なコードは以下の通りです。
大部分の人には、キャッシュファイルは必要ないでしょう。gzip の様な標準圧縮ソフトを使用してログファイルを圧縮することで十分でしょう。ログファイルの圧縮は、非常に多くの文字列の繰り返しにとても効果的です。私は、実際に約12倍の圧縮率を得ました。これは、多くの情報を失うことなく、あなたのファイルスぺースの問題を解決するでしょう。
このキャッシュファイルは、データの事後処理や、スプレッドシートに読み込むのに、最適な書式ではありません。この目的のためには、コンピュータが読み込み可能な出力 を使うべきです。
もしこの先、キャッシュファイルを使うなら、何が記録され、何が記録されないかを理解しておくことはとても重要です。キャッシュファイルからログファイル中の全てを復元することは 不可能 です。キャッシュファイルは、各ホストと各ファイルへの総リクエスト数についての情報を含みますが、例えば、どのファイルがどのホストによって読み込まれたかについての情報は含みません。(これを再現するためには、キャッシュファイルの大きさは、圧縮ログファイルと同じディスクスペースが必要になるでしょう。)従って、後に1つのファイルだけを見て、どのホストがそのファイルを読んだかを知ることはできません。同様に、FROM や TO コマンドを使って、日にちでファイルやホストを限定することもできません。
要約すると、キャッシュファイルを作るときに、全ての包含と除外を実行しておくべきです。もし、異なる包含と除外の組が欲しいなら、同じログファイルからいくつかのキャッシュファイルを作るべきです。後で、余分の包含と除外を正確に適用することはできません。
その他のあまり重要でない幾つかの事柄:時間に関する失敗したリクエストの型とリダイレクトされたリクエストは、キャッシュファイルに記録されません。そのため、総数が依然として正しいのにもかかわらず、必然的に最後の7日間の総計は低く見積もられてしまいます。そして時間は、5分間隔でのみ記録されます。
CACHEOUTFILE noneにより、キャッシュを保存しなくなります。あなたが、OUTPUTNONE を指定しない限り、キャッシュの出力と同時に通常の出力も得られます。上書きを避けるため、CACHEOUTFILE を既にあるファイル名に設定してはいけません。(以下のことには責任を持てません:ある幾つかのシステムでは、競合条件により、しばしばこの別設定が効かない可能性があります。また他のシステムでは、書き込み可だが読み込み可ではないときは、上書き可になる可能性があります。)OUTFILE について以前述べられたと同じように、日付を CACHEOUTFILE のファイル名に含めることができます。
CACHEFILE を使うかあるいは +U コマンド行のオプションを使えば、以前に作成されたキャッシュファイルを読み込むことができる。LOGFILE コマンドの時と同様に、コンマとワイルドカードを使い数個のキャッシュファイルを読み込むことができ、UNCOMPRESS コマンドの仕組みを使えば、圧縮されたキャッシュファイルを読むこともできる。キャッシュファイルもログファイルも読み込みたくない時には、あからさまに LOGFILE を none に設定しなければいけないことに注意してください。
analog がキャッシュファイルを読む時、できる限り包含と除外を守るが、項目名に対するエイリアス(別名)はもはや適用しません。(これは2重のエイリアスを避けるためです。)そのため、キャッシュファイルを作成するときに、希望のエイリアスを適用しておかなければなりません。同様に、LOGTIMEOFFSET 変数の値にも従いません。これは2重の時間差の適用を避けるためであり、どんな希望の時間差も、キャッシュが作成されるときに適用しておかなければなりません。
時には、キャッシュファイルに全ての項目を記録したくないことがあると思います。例えば、あなたの Web サイトにどのホストがアクセスしたなど構わないで、各ファイルが何回リクエストされたかのみを記録したいかもしれない。1つの項目を含めないためには、それに対応する LOWMEM コマンドを 3 に設定すれば良い。例えば、以下の様に
HOSTLOWMEM 3とすれば、キャッシュファイルからホスト名を除外することができます。これは重大な操作なので、この設定をすると analog は注意メッセージを出します。もしどのファイルがリクエストされたかも知る必要も無く、経過時間に対するリクエストの模様のみを記録したい時には、すべての6個の LOWMEM コマンドを 3 に設定することもできます。
以上のうちの一つに何かまずいことが起きることを考えて、各ログファイルに対して一つのキャッシュファイルを作成することを、私は推奨します。幾つかのログファイルから一つのキャッシュファイルを作成したり、あるいは古いキャッシュファイルとログファイルを組み合わせて一つのキャッシュファイルにすることは薦めません。
残念ながら DNS lookups はたいていの場合には動作がとてものろい。それは、あなたのコンピュータがネットワークを通してホスト名を検索しなければならないからです。このため、analog はいっぺん検索したアドレスをファイルに保存し、次回に同じ検索する手間を省きます。(こういう仕組みを持っているにもかかわらず、DNS lookups はとてものろく感じられるでしょう。)そのファイル名は以下のコマンドで指定されます。
DNSFILE dnsfile.txtこのファイルを実際に使うためには、以下の節のコマンドを使う必要があります。
DNS 検索には4種類あります。DNS NONEと指定すると、IPアドレスはホスト名に変換されません。DNS READと指定すると、analogは以前の検索結果を見にDNSファイルを読みにいきますが、新しい検索はしません。インターネットに接続されていない環境のときに、この設定は最適です。3番目は DNS WRITE です。このモードでは、古いファイルも読むし、新しいアドレスも検索するし、新しいアドレスをファイルに保存します。(一番最初に DNS WRITE を使うときには、analogは指定されたファイルを読みに行こうとしてファイルが無いという注意を受けます。しかし、次回にはファイルが存在することになります。)最後のモードは DNS LOOKUP です。このときには、analogは指定されたファイルを見に行き、新しいアドレス検索もしますが、新しい結果をファイルに保存しません。そのため、次回にはそれらの新アドレスは記録には残っていません。このモードを指定する人はいないと思いますが、もし DNS WRITE の指定をしても、何らかの理由でファイルへの書き込みに失敗すると、analogはこのモードに変化してしまいます。
もしあなたが、 HOSTEXCLUDE というコマンドを使用しているなら、検索できない場合には数字のIPアドレスを、または検索できた場合にはそのホスト名を除外する必要があります。すなわち、どんな場合にもそのホストはレポートから除外されます。
DNSLOCKFILE filenameもし同時に動作している全てのanalogが同じDNSファイルを使用しているときには、もちろん全てのanalogは、この同じロックファイルを使うように気をつけなければなりません。もしanalogがクラッシュしたときには、ロックファイルが残ってしまい、自分で削除しなければならないかもしれません。(以下のことには責任を取りかねます:いくつかのシステムでは、競合条件が存在してしばしばこのロックファイルによる安全性が阻害されることがあります。しかし、めったに起こりません。)
analogはDNSファイルからは何も削除はしません。このことは、DNSファイルは大きくなるばかりで、ファイルサイズは相当大きくなります。あなたは、しばしばそのファイルの上部部分を削除する必要があります。
どの位の期間古いlookupを信用するかを決定する2個の変数があります。
もしあなたが
DNSGOODHOURS 672と設定すると、これは例えば成功した検索は672時間(4週間)後に再確認されます。同様に、DNSBADHOURS を設定して、失敗した検索をある一定時間後に再検索するすることもできます。
最後に、 デバッグする コマンド、DEBUG +D があり、これはanalogが行った全てのDNS検索を表示します。
時刻 IPアドレス ホスト名ここで「時刻」はグリニッジ標準時の1970年から何分経っているかの数字(即ち、 "Unix 時間" ÷ 60)です。そして「ホスト名」は、もしアドレスが検索できなかったときには、 * で表されます。
ある項目が読み込まれた時に何が起きるか思い起こそう。最初に、別名 が付けられる。2番目に、その項目が 含まれているか除外されている かが確かめられる。最後に、もし全ての項目が勘定すべきなら、1つのリクエストが計算に加えられる。
通常、項目名は別名が付けられる前に保存される。これは、同じ項目が現れた時、analog が再度別名をつけるのを防ぐためである。しかし、これは必要以上にメモリを消費する。そのため、一群の LOWMEM コマンドが提供されており、これらのコマンドは、名前を後で記録するようにするか、全く記録しないように、analog に命令する。もしこれらのコマンドが使われたら、analog は通常より多い仕事をしなければならないが、メモリは使わないで済ませている。大部分のサイトでは、ホストが大部分のメモリを消費するので、私は HOSTLOWMEM コマンドを例として使おう。
以下のコマンド
HOSTLOWMEM 0は、ホスト名が別名を付けられる前に記録される時のように正常の場合を表す。この代わりに、もし以下の様に書くと、
HOSTLOWMEM 1ホスト名は、別名をつけられてから記録される。もし以下の様に書くと、
HOSTLOWMEM 2ホスト名は、包含と除外が実行される後になるまで、記録されない。最後に、もし以下の様に書くと、
HOSTLOWMEM 3ホスト名は全く保存されず、従って、「ホストレポート」は、望んだとしても出力されない。(「ドメインレポート」は、しかしながら出力される。) 他の項目に対する似たようなコマンドは、FILELOWMEM、BROWLOWMEM、REFLOWMEM、USERLOWMEM そして VHOSTLOWMEM である。
最初に、以前触れた全ての analog 変数の現在の設定を、一覧するためのオプションを思い出してください。この一覧を得るためには、コマンド行に単に -settings と付けるか、他のコマンドと一緒に PRINTVARS ON を環境設定ファイルの一つに書くけば良い。すると analog は、通常の様に起動する代わりに、設定の一覧を出力してくれる。
DEBUG ON全てのデバッグ情報が得られる。(そして、DEBUG OFF は全てオフにする。)ある範囲のデバッグ情報のみを得ることもできる。その範囲とは、以下で与えられる。
DEBUG FS"ファイルのオープンとクローズの情報" を与え、"各ログファイルの終了時の全体概要" も与えるが、他のどんなデバッグもしない。デバッグ情報の各行は、コード文字で表されている。また以下の指定もできる。
DEBUG +CDこの指定は、既にあるデバッグの範囲に C と D を付け加え、
DEBUG -CDは、これらの2個の種類を取り除く。
このコマンドに対するコマンド行での省略形がある。+V (ON に対して)、-V (OFF に対して)、+VFS (FS のオプションを正確に選択するために)、+V+FS (これらのオプションを追加するために)、そして +V-FS (これらを取り除くために)を使用してください。
C による出力は、2行にわたっている。最初の行は、異常を起こしたログファイルの行を示している。2行目は、analog が見つけた問題の行を示している。(この行は、いつもではないが通常、実際の問題がある場所である。)実際、出力の各 "行" は、画面上では1行以上にわたっており、もしあなたがログファイルの異常行を見つけようとするなら、それを注意深く考慮しなければならない。
WARNINGS には、コマンド行で実行するやり方があり、+q、-q、+q<options>、+q+<options>、または +q-<options> のように書きます。
PROGRESSFREQ 20000 # 例こう書くと、analog は、ログファイルを20,000行読むたびに小さなメッセージを出力します。これは、プログラムが実際に止まってしまったのか、あるいは(もっとありうることとして)何らかの理由(DNS lookup を使っているため)でのろくなってしまっただけであるかを判断するのに便利である。
ERRFILE newfileもしこれを行うと、analog は、あなたが見失わないようにメッセージの出力先を変えるという注意をする。標準のエラーに戻すには、以下を使う。
ERRFILE stderrERRFILE コマンドは、そのファイルの以前の内容を削除する。(従って、同じ ERRFILE コマンドを2回使わないようにしなさい。さもないと、メッセージを失うでしょう!)
ERRLINELENGTH 0は、無限の画面幅を指定する。
重要: セキュリティの理由 から、analog を CGI プログラムとして走らせないように、あるいは他の web ファイルや CGI プログラムと一緒のディレクトリやフォルダーに入れておかないように気をつけてください。フォームインタフェースが analog を走らせる時に、analog が危険なオプションを与えられていないかどうかを確認します。この確認が無いと、あなたのシステムは、外部からの攻撃に対し無力になるでしょう。
analog が完全に設定されて、それ自身で適切に動作するまで、フォームの設定をしないで下さい。そうしないと、問題個所の発見に余計な、複雑な要因を付け加えるだけになります。analog とは異なり、フォームインタフェースは、"規格外" の動作を しません 。この章をよく読み、どのようにして環境設定するかを理解してください。
フォームインタフェースは、普通のユーザが使用するのに適していますが、システム管理者あるいは他の専門家が設定する必要があります。設定するためには、web サーバが動いていないといけません。CGI プログラムが何たるか、またそれらの動作許可を適切に設定する方法もを知らなければなりませんし、HTML フォームを書く方法も知る必要があります。この章の残りは、これらの知識を前提として話を進めます。また、Perl 5.001 かそれ以降のバージョンも持っているものとします。他のシステムに必要な事柄については、下記の 技術的な詳細 を参照すること。 ( 実際には、Windows を使用しており、Perl を持っていないときには、役立つソフトのページ からフォームインタフェースの実行版をダウンロードできます。
注意: CGI プログラムは、セキュリティの抜け道を含み得る。それを使って、破廉恥なユーザがあなたのシステムを破壊するかもしれない。( もしこれについて知らなければ、あなたは CGI プログラムを全く使ってはいけません。WWW のセキュリティについての FAQ と CGI のセキュリティについての FAQ を最初によく読んで理解してください。)このフォームインタフェースをできるだけ安全に作成した積りですが、完全に保証はできません。最も注意深く設計された CGI プログラムでさえ、偶然にセキュリティのバグを含むことがあります。もし何か起こっても、私は責任と取れません。自分の責任に於いて使用してください。( ライセンス を読んでください。)更に、もしパスワードのような特別な防御をしないか、特別なホスト名に対して anlgform.pl を制限しない限り、フォームインタフェースを設定することは、インターネット上の誰にも analog を実行させることを、ログファイルを解析可能にすることを意味していることに注意すべきである。この章の終わりの部分に、このプログラムについての セキュリティ設計についてのノート がもう少し書かれている。
フォームインタフェースは、2つの部分からなっている。オプションを選択するフォーム( anlgform.html と呼ばれている)と、それらを analog に渡す CGI プログラム( anlgform.pl と呼ばれている)である。作動させる前に、anlgform.html と anlgform.pl の両方共に、あなたのシステム用に設定 しなければならない 。この設定方法についての説明は、両方のファイルの先頭部分に書かれている。
プログラムと一緒に配布されているフォームは、フォームの一例とみなしてください。英語以外の言語のフォームは、lang ディレクトリにあります。あるいは、もし希望するなら、自分自身のフォームを書くこともできます。実際には、フォームは全く必要とされません。もし、通常の様に URL の中でクエスチョンマークの後に渡される引数があり、単に CGI プログラムにリンクを張ることだけが望みなら、それで動作します。
ログファイル名: <input type=text name="LOGFILE">または、以下のようにも多分書けます。
<select name=LOGFILE size=1> <option value="/var/log/apache/fred"> Fred のログファイル <option value="/var/log/apache/jane"> Jane のログファイル </select>
セキュリティあるいはパフォーマンスの理由から、フォームで指定できない幾つかのコマンドがあります。それら全ての一覧は、*LOGFORMAT、 LANGFILE、HEADERFILE、FOOTERFILE、 UNCOMPRESS、OUTFILE、CACHEOUTFILE、 ERRFILE、DNS それに SETTINGS です。そしてフォームを設定する人は、もっと付け加えることができます。これらを上害する理由について、またあなたが一覧に付け加えたいコマンドについては、以下の セキュリティについてのノート をご覧下さい。
元ファイル名: <input type=text name="FILEALIAS1"> 別名: <input type=text name="FILEALIAS2">このようにして、一対の引数を指定することだけができる。そのため、例えば、同じ ALIAS に対していくつかの別名を指定する方法は無い。
次に、FLOOR コマンドがある。もしこれらのコマンドを2つ、FLOORA と FLOORB、に分けて指定すれば、これらのコマンドの文法をフォームの使用者が知らなくても済む。これらの2つのコマンドは一体となって働く。例えば、プログラムと一緒に配布されているフォームは、以下の様に指定している。
<br>最低 <input type=TEXT name="DOMFLOORA" maxlength=6 size=6> <select name="DOMFLOORB"> <option value=r>リクエスト <option value=p>ページへのリクエスト <option value=b selected>バイト </select> 以上を持つ全てのドメインを含むもし、DOMFLOORA が 5% かつ DOMFLOORB が r であれば、DOMFLOOR 5%r がプログラムに送られる。 (または、もし、以下の様にフォームを送りたいならば、DOMFLOORA=5 かつ DOMFLOORB=%r も同様の結果となる。)
2つ目は、特定の時に他の環境設定ファイルを読み込むことを指定できることである。analog が CGI プログラムによって呼ばれた時、初期環境設定ファイル を通常どおり読み込む。次に、cg という名前を持ったオプションにより指定された他の環境設定ファイルを処理する。次は、CGI プログラムが指定する他の全てのコマンドを処理する。その後、cm という名前をもったオプションにより指定された他の環境設定ファイルを処理する。最後に、通常の様に 強制的環境設定ファイル を処理します。 (従って、2個の analog を必要とするかもしれない。一つは、フォーム用でもう一つは、フォームを使わない時の analog であり、それぞれ異なる環境設定ファイルをコンパイルしてある。) 初期と強制的環境設定ファイル中のコマンドは、環境設定に寄与することに注意せよ。それらのうちいくつかは、フォームで指定されたオプションに取って代わる。例えば、初期環境設定ファイルが INCLUDE を含んでいると、これはフォームで指定される INCLUDE と EXCLUDE コマンドに影響を与え、予期しない振る舞いをするかもしれない。
フォームが常に設定する数個のコマンドがある。これらは、あなたがどこかで設定したものに取って代わるでしょう。まず、(もし DNSFILE がフォームで設定されているなら) DNS READ かまたは(そうでない時) DNS NONE が設定される。この振る舞いを制限するには、強制的環境設定ファイルを使えばよいが、もしそうすると時間切れという問題がおそらく持ち上がるでしょう。2番目に、常に WARNINGS FL が設定される。これは、重要でない注意がサーバのエラーログに溜まらないようにするためである。これを抑えるためには、あからさまに WARNINGS コマンドをフォームの始めに書けばよい。
最初に、anlgform.pl をコマンド行から走らせることができる。これは大部分の問題のバグを見つけるのに充分である。対のオプションを以下の様に指定できる。
anlgform.pl qv=1 LOGFILE=/some/log REQINCLUDE=pagesもし、上記の様に引数に qv=1 を含めると、anlgform.pl が何を analog に送ろうとしているのかを見ることができる。もし、qv=1 を含めないと、anlgform.pl は analog を走らせようとするだろう。
もしそれでも動かない時には、以下の点を確認してください。
最初に、フォームインターフェースを誰が動かすことができるかを考えるべきである。パスワードで防御するか anlgform.pl を特別のホスト名に制限するという手段を取らない限り、あなたのサイトにフォームインターフェースを付加するということは、インターネット上の誰でもに analog を実行可能にし、ログファイルを解析可能にするという事を意味する。これは、システムに対するプライバシーと負荷に明らかに関係している。
ある種のコマンドは、anlgform.pl により無視され analog には渡されない。それらの一覧は、anlgform.pl の一番上に書かれている。それたいする理由は以下の通りである。HEADERFILE と FOOTERFILE は、システム上のどのファイルも出力してしまう。*LOGFORMAT コマンドもまた、どのファイルも読まれてしまう。何故なら、誰かが各行に一つのファイル名を指定し、ファイル名の一覧を得ることができるからである。OUTFILE、CACHEOUTFILE と ERRFILE は、ファイルシステムに他人が書き込むことを許してしまう;ERRFILE ははまた、エラーをエラーログに溜めずに、どこかへ飛ばしてしまうことも可能である。UNCOMPRESS は、ユーザにどんなコマンドも実行可能にさせてしまう。DNS の使用は、これを READ よりも高い設定にすると、通常プロセスを時間切れにしてしまうので、禁止している。 DNS is forbidden because setting it higher than READ would normally cause the process to time out.
上記のどれも削除してはならない (本当に、本当にあなた以外の誰も anlgform.pl を走らせることが完全に不可能であると確信していない限り)。初期設定で禁止されているもう2つのコマンドがあるが、これらは禁止の一覧から除外することもできる。SETTINGS が禁止の一覧に含まれている理由は、システム上の幾つかのファイルの位置を移動するためである。しかし、診断するためには有用であり、もしフォームを設定する上で問題が起きた時、一時的に除外することを考えても良い。もう一つのコマンドは、私はより危険が少ないと考えるが、LANGFILE が含まれている。このコマンドが含まれている理由は、別ファイルが言語ファイルと全く同じ行数であり、言語ファイルとして受け付けられて、出力にそのファイルの一部分が紛れ込むことが理論的にありうるからである。しかし、まずファイルは全く同じ長さでなければならない。もしこのような危険に対し充分対処できると考えるなら、LANGFILE を一覧から除外できる。
一覧に付け加えたい他のコマンドがある。例えば、(やや起こりそうも無いことではあるが)以下のことは理論的に可能である。システム上の別ファイルが、analog が解析できるログ形式に充分一致しており、その内容を漏らしてしまうことがありうる。これについて心配し、フォームからはただ一つの特別なログファイルのみを解析しようとするなら、LOGFILE コマンドを禁止リストに付け加えることができる。同様の理由から、DOMAINSFILE も付け加えられる。また、もし全ての CONFIGFILE、CM と CG を付け加えない限り、ユーザがシステム上のどの環境設定ファイルも使えるということに注意すべきである。
LOGFILE と CACHEFILE コマンドの引数は、ある許可された文字 (特に、文字、10進数、/\.:_ スペース、それに2つの{文字、10進数、下線}の間の - ) のみ含んでいるかどうかチェックされる。これは、圧縮コマンドが popen() 関数を使って使用されたとき、文字列が UNCOMPRESS コマンドと一致して、シェルに渡されてしまうかもしれないからである。
これを除いて、コマンド名は文字と10進数、1と2、だけを含んでいるかどうか確認される。そして、コマンドの引数は、制御文字 (実際には文字コード 0-32 と 127-159;特に、新行文字は禁止されている ) を含まないように確認されている。コマンドの長さは、anlgform.pl ではチェックされていないが、環境設定コマンドの長さが、analog によりチェックされているので、バッファーのオーバーフローは問題になるはずが無い。
ところで、analog 自身を CGI プログラムとして使うべきではないと忠告する理由は、ある種のサーバー、特にマイクロソフトの IIS は、コマンド行の引数を CGI プログラムに渡すことをユーザに許してしまうからである。それに、たとえプログラムがプログラムが適切な CGI ヘッダーを返さないときでも、出力はユーザに戻され得る。これは、上記の全ての引数の確認は、妨害されることを意味する。もちろん、CGI プログラムにコマンド行の引数を渡せないサーバー上では、同じようなセキュリティ上の問題は無い。しかし、もしどんな引数も渡せないなら、初期設定の出力しか得られないので、analog は、CGI プログラムとしてあまり有用ではない。
Windows では、Perl スクリプトが Perl によって実行されるためには、Perl の実行ファイルは、.pl という拡張子を付ける必要がある。
anlgform.pl は、フォームへの引数渡しに GET あるいは POST メソッドを受け付ける。HTML の仕様 によると、この場合の様に、プログラムを走らせるのに何も副作用がない時に、GET を使うべきであると述べている。しかし、別の HTTP の仕様 の 15.1.3 章によると、オプションの幾つかが秘密に扱われるべき時は、POST を使うべきであると述べている。また、多くのオプションが付いた非常に長い URL は、幾つかの古いサーバーで問題を引き起こす。従って、anlgform.html は、初期設定で POST メソッドを使う。しかし、GET メソッドを使っても動く。例えば、通常の GET の様に、?記号の後ろにオプションを指定して、anlgform.pl に普通のリンクを張ることもできる。
この章は割と長く書かれていますが、注意深く読むに値します。もし web の動作原理の基礎を理解すれば、web の統計が実際に意味するところを理解できるでしょう。
私は、この章がこれらの考えに対する幾つかの過去の説明依存していることを言うべきでしょう。特に、以下の4つの記事を読むことをお勧めします。 Doug Linder による WWW 統計の説明 ; Dana Noonan による Web 使用の統計の意味 ; Tim Stehle による 使用の統計の実際の意味 ; そして最も否定的なのは、Jeff Goldberg による 何故 Web の仕様統計は(悪いというより)意味が無いか です。
これで何が分かったのだろうか。最初に、私はあなたの表紙に1つのリクエストをした。あなたは、リクエストの時刻と、(もちろん)どのページをリクエストしたのかと、私のコンピュータのインターネットアドレス(私の ホスト)を知る。私は、また通常、どのページからあなたのサイトを参照したかと、私のブラウザーの製造元とモデルを告げることになる。私のユーザー名と電子メールアドレスは告げない。
次に、そのページに画像があるかどうかを見る(むしろ私のブラウザーが行うのだが)。もし画像があり、私のブラウザーの画像取り込みを許可していたら、これらの画像の取り込みのため、別の接続を行う。私は、決してあなたのサイトにはログインはしない。私は、単に私がダウンロードしたい新しいファイルに会うたびに、一連のリクエストを行うだけである。これらの画像を参照しているのはあなたの表紙のページです。多分10枚位の画像があなたの表紙にあるでしょう。これで、私はあなたのサーバーに11個のリクエストを行った。
その後、あなたの他のページを訪問しに行き、私の望む各ページと画像に新しいリクエストを行う。最後に、リンクを辿ってあなたのサイトの外に出て行く。あなたは、これについては全く気がつかない。私は、あなたに何も告げずに、単に次のサイトに接続を行うだけである。
他の種類のキャッシュはもっと大きなスケールのものである。私はイギリスに居る。大西洋を越えたリンクは、時には非常に混雑するので、国単位のキャッシュを設定している。( 多くの個々の ISP も同じ事をしている。)あなたのページを直接見に行く代わりに、国別キャッシュからそのページを見に行くように、私のブラウザーを設定することができる。わが国の誰かが最近あなたのページを見るためにキャッシュを使ったならば、キャッシュはその情報を保存し、あなたにその事を告げずにそれらを私に与えるであろう。そのため、あなたのページが立った一度だけ送られたとしても、何百人もの人があなたのページを見たかもしれない。また、もし私の望むページがまだキャッシュに溜められていないときにも、キャッシュが私の代わりにあなたからそのページを要求するだろう。これは、リクエストが、私からではなくあたかもキャッシュから来たかのように見えている。もし何人かの人がこれを行えば、あなたには多くの異なるホストではなく、ただの一つのホストがキャッシュにアクセスしているように見える。
あなたは、ブラウザーの種類と参照ページが何であるかも知ることが出来る。しかし、多くのブラウザーは故意にブラウザーの種類を偽るか、ブラウザー名をユーザが設定できると言うことに注意すべきである。また、幾つかのブラウザーは誤った参照元を送り、そのページを参照したわけではないのに、最後に見たページがあたかもそれであるかのようにあなたに伝える。
私は、何をあなたが見つけられないかを強調しながら、ここでやや否定的な見方を紹介した。けれども、Web の統計は情報に満ちている。 "このぺーじは、30,000 件のリクエストを受けた" という事実から、 "30,000 人の人がこのページを読んだ" という間違いを犯さないと言う意味で重要である。ある意味でこれらの問題は、Web の世界では新しくない。 -- これらは、印刷媒体でも存在することである。例えば、販売された雑誌数を知っているだけで、何人の人がそれらを読んだかは分からない。印刷媒体では、手に入るデータを使って、これらの問題と向き合っている事を知っている。Web 上でも、架空の数字をでっち上げるよりも、同じ事をするほうが良いのは明らかである。
括弧内の数字は、このレポートの先頭で表された7日間での値を表しており、もし TO コマンドがあったなら、それは TO 時刻以前の7日間を表しており、もしコマンドがないのならば、レポートの起動日以前の7日間を表しています。
サイトへの訪問者数またはあなたが訪問した数を見つけることができないとき、そしてそれができるといわれているどのプログラムも信じないときは、このことについて議論した どのようにして Web が動作するか を参照して下さい。
GENERAL コマンドを使ってこのレポートを出力したり、削除したりすることができます。LASTSEVEN コマンドを使い、最後の7日間の数字を含んだり除いたりすることができます。あなたの設定した他のオプションによって、上記の出力は少し異なる行を与えるかもしれません。
) は 800
ページへのリクエスト あるいはその値未満を表す.
週の始めの日: リクエスト数: ページ数: ---------: -----: -----: 1998年 9月13日: 69614: 25277:最も混雑した週(次の日から1週間):1998年 9月13日 (26,654 ページへのリクエスト)1998年 9月20日: 10032: 5861:
![]()
適切な ON または OFF コマンドを使うことで各レポートを含むか、含まないかを制御することができます。COLS コマンドを使うことで、どの列を表示するかを制御することができます。GRAPH コマンドを使うことで、棒グラフと "最も混んでいる" 利用量がどれなのかを制御することができます。ROWS コマンドを使うことで、表示する行数を決めることができます。BACK コマンドによって、時間に関して行の前後を表示することができます。BARSTYLE コマンドを使へば、棒グラフに使われている図を変えることができます。
)は 150
ページへのリクエスト あるいはその値未満を表す.
日: リクエスト数: ページ数: --: ------------: -------: 日: 2031: 1193:月: 8001: 4668:
火: 0: 0: 水: 13934: 5915:
その他
適切な ON または OFF コマンドを使えば、各レポートを含むか含まないかを制御することができます。COLS コマンドを使えば、どの列を記述するかを制御することができます。GRAPH コマンドを使えば、棒グラフをどの計測に対して使うかを制御することができます。BARSTYLE コマンドを使えば、棒グラフを使った画像を変えることができます。
リクエスト数: バイト数の割合(%): 最終アクセス時刻: ファイル
------------: --------------------: -----------------------: --------
4123: 2.29%: 1998年 9月21日 01時:57分: /~sret1/analog/
3064: 0.15%: 1998年 9月21日 01時:54分: /~sret1/analog/analogo.gif
1737: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar1.gif
1692: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar16.gif
1685: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar8.gif
67345: 97.54%: 1998年 9月21日 02時:04分: [残り: 8,175 ファイル]
いつも通り、適切な ON または OFF コマンドを使って、それぞれのレポートを含むかどうかを制御することができます。 COLS コマンドによって、どの列を表示するかを制御することができます。 SORTBYコマンドによって、レポートのデータの並べ方を変えることができます。 FLOORコマンドによって、何項を表示するかを制御することができます。 出力用の INCLUDE と EXCLUDE コマンドを使って、個々の項を含んだり除外したりすることができます。 OUTPUTALIAS コマンドを使って、レポートの中の項の名前を変えることができます。
最下段の "示されていない" 行は、レポートに対して FLOOR 以上に十分なデータ転送量が得られなかった場合と、あからさまに EXCLUDE (除外)された場合の数を表している。
例えばこのドメインレポートのように、大部分のレポートは階層構造を持っています:
順位: リクエスト数: バイト数の割合(%): ドメイン
----: ------------: --------------------: --------
1: 13243: 16.23%: .com (Commercial)
: 1262: 1.26%: aol.com
2: 11783: 25.64%: .jp (Japan)
: 9592: 22.19%: ad.jp
: 1043: 1.97%: co.jp
3: 10073: 11.62%: .net (Network)
: 1926: 1.71%: uu.net
4: 9657: 13.31%: [未解決アドレス]
5: 7388: 8.04%: .uk (United Kingdom)
: 5792: 5.74%: ac.uk
: 1510: 1.99%: co.uk
: 18502: 25.16%: [残り: 82 ドメイン]
リクエストレポートでどのファイルがリンクされるかは、LINKINCLUDE と LINKEXCLUDE コマンドによって制御され、さまざまなリンク元レポートでどのファイルがリンクされるかは、REFLINKINCLUDE と REFLINKEXCLUDE コマンドによって制御されます。リクエストレポートでのリンクは BASEURL コマンドによっても影響を受けます。
括弧内の数字は、このレポートの先頭で表された7日間での値を表しており、もし TO コマンドがあったなら、それは TO 時刻以前の7日間を表しており、もしコマンドがないのならば、レポートの起動日以前の7日間を表しています。
サイトへの訪問者数またはあなたが訪問した数を見つけることができないとき、そしてそれができるといわれているどのプログラムも信じないときは、このことについて議論した どのようにして Web が動作するか を参照して下さい。
GENERAL コマンドを使ってこのレポートを出力したり、削除したりすることができます。LASTSEVEN コマンドを使い、最後の7日間の数字を含んだり除いたりすることができます。あなたの設定した他のオプションによって、上記の出力は少し異なる行を与えるかもしれません。
) は 800
ページへのリクエスト あるいはその値未満を表す.
週の始めの日: リクエスト数: ページ数: ---------: -----: -----: 1998年 9月13日: 69614: 25277:最も混雑した週(次の日から1週間):1998年 9月13日 (26,654 ページへのリクエスト)1998年 9月20日: 10032: 5861:
![]()
適切な ON または OFF コマンドを使うことで各レポートを含むか、含まないかを制御することができます。COLS コマンドを使うことで、どの列を表示するかを制御することができます。GRAPH コマンドを使うことで、棒グラフと "最も混んでいる" 利用量がどれなのかを制御することができます。ROWS コマンドを使うことで、表示する行数を決めることができます。BACK コマンドによって、時間に関して行の前後を表示することができます。BARSTYLE コマンドを使へば、棒グラフに使われている図を変えることができます。
)は 150
ページへのリクエスト あるいはその値未満を表す.
日: リクエスト数: ページ数: --: ------------: -------: 日: 2031: 1193:月: 8001: 4668:
火: 0: 0: 水: 13934: 5915:
その他
適切な ON または OFF コマンドを使えば、各レポートを含むか含まないかを制御することができます。COLS コマンドを使えば、どの列を記述するかを制御することができます。GRAPH コマンドを使えば、棒グラフをどの計測に対して使うかを制御することができます。BARSTYLE コマンドを使えば、棒グラフを使った画像を変えることができます。
リクエスト数: バイト数の割合(%): 最終アクセス時刻: ファイル
------------: --------------------: -----------------------: --------
4123: 2.29%: 1998年 9月21日 01時:57分: /~sret1/analog/
3064: 0.15%: 1998年 9月21日 01時:54分: /~sret1/analog/analogo.gif
1737: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar1.gif
1692: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar16.gif
1685: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar8.gif
67345: 97.54%: 1998年 9月21日 02時:04分: [残り: 8,175 ファイル]
いつも通り、適切な ON または OFF コマンドを使って、それぞれのレポートを含むかどうかを制御することができます。 COLS コマンドによって、どの列を表示するかを制御することができます。 SORTBYコマンドによって、レポートのデータの並べ方を変えることができます。 FLOORコマンドによって、何項を表示するかを制御することができます。 出力用の INCLUDE と EXCLUDE コマンドを使って、個々の項を含んだり除外したりすることができます。 OUTPUTALIAS コマンドを使って、レポートの中の項の名前を変えることができます。
最下段の "示されていない" 行は、レポートに対して FLOOR 以上に十分なデータ転送量が得られなかった場合と、あからさまに EXCLUDE (除外)された場合の数を表している。
例えばこのドメインレポートのように、大部分のレポートは階層構造を持っています:
順位: リクエスト数: バイト数の割合(%): ドメイン
----: ------------: --------------------: --------
1: 13243: 16.23%: .com (Commercial)
: 1262: 1.26%: aol.com
2: 11783: 25.64%: .jp (Japan)
: 9592: 22.19%: ad.jp
: 1043: 1.97%: co.jp
3: 10073: 11.62%: .net (Network)
: 1926: 1.71%: uu.net
4: 9657: 13.31%: [未解決アドレス]
5: 7388: 8.04%: .uk (United Kingdom)
: 5792: 5.74%: ac.uk
: 1510: 1.99%: co.uk
: 18502: 25.16%: [残り: 82 ドメイン]
リクエストレポートでどのファイルがリンクされるかは、LINKINCLUDE と LINKEXCLUDE コマンドによって制御され、さまざまなリンク元レポートでどのファイルがリンクされるかは、REFLINKINCLUDE と REFLINKEXCLUDE コマンドによって制御されます。リクエストレポートでのリンクは BASEURL コマンドによっても影響を受けます。
括弧内の数字は、このレポートの先頭で表された7日間での値を表しており、もし TO コマンドがあったなら、それは TO 時刻以前の7日間を表しており、もしコマンドがないのならば、レポートの起動日以前の7日間を表しています。
サイトへの訪問者数またはあなたが訪問した数を見つけることができないとき、そしてそれができるといわれているどのプログラムも信じないときは、このことについて議論した どのようにして Web が動作するか を参照して下さい。
GENERAL コマンドを使ってこのレポートを出力したり、削除したりすることができます。LASTSEVEN コマンドを使い、最後の7日間の数字を含んだり除いたりすることができます。あなたの設定した他のオプションによって、上記の出力は少し異なる行を与えるかもしれません。
) は 800
ページへのリクエスト あるいはその値未満を表す.
週の始めの日: リクエスト数: ページ数: ---------: -----: -----: 1998年 9月13日: 69614: 25277:最も混雑した週(次の日から1週間):1998年 9月13日 (26,654 ページへのリクエスト)1998年 9月20日: 10032: 5861:
![]()
適切な ON または OFF コマンドを使うことで各レポートを含むか、含まないかを制御することができます。COLS コマンドを使うことで、どの列を表示するかを制御することができます。GRAPH コマンドを使うことで、棒グラフと "最も混んでいる" 利用量がどれなのかを制御することができます。ROWS コマンドを使うことで、表示する行数を決めることができます。BACK コマンドによって、時間に関して行の前後を表示することができます。BARSTYLE コマンドを使へば、棒グラフに使われている図を変えることができます。
)は 150
ページへのリクエスト あるいはその値未満を表す.
日: リクエスト数: ページ数: --: ------------: -------: 日: 2031: 1193:月: 8001: 4668:
火: 0: 0: 水: 13934: 5915:
その他
適切な ON または OFF コマンドを使えば、各レポートを含むか含まないかを制御することができます。COLS コマンドを使えば、どの列を記述するかを制御することができます。GRAPH コマンドを使えば、棒グラフをどの計測に対して使うかを制御することができます。BARSTYLE コマンドを使えば、棒グラフを使った画像を変えることができます。
リクエスト数: バイト数の割合(%): 最終アクセス時刻: ファイル
------------: --------------------: -----------------------: --------
4123: 2.29%: 1998年 9月21日 01時:57分: /~sret1/analog/
3064: 0.15%: 1998年 9月21日 01時:54分: /~sret1/analog/analogo.gif
1737: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar1.gif
1692: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar16.gif
1685: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar8.gif
67345: 97.54%: 1998年 9月21日 02時:04分: [残り: 8,175 ファイル]
いつも通り、適切な ON または OFF コマンドを使って、それぞれのレポートを含むかどうかを制御することができます。 COLS コマンドによって、どの列を表示するかを制御することができます。 SORTBYコマンドによって、レポートのデータの並べ方を変えることができます。 FLOORコマンドによって、何項を表示するかを制御することができます。 出力用の INCLUDE と EXCLUDE コマンドを使って、個々の項を含んだり除外したりすることができます。 OUTPUTALIAS コマンドを使って、レポートの中の項の名前を変えることができます。
最下段の "示されていない" 行は、レポートに対して FLOOR 以上に十分なデータ転送量が得られなかった場合と、あからさまに EXCLUDE (除外)された場合の数を表している。
例えばこのドメインレポートのように、大部分のレポートは階層構造を持っています:
順位: リクエスト数: バイト数の割合(%): ドメイン
----: ------------: --------------------: --------
1: 13243: 16.23%: .com (Commercial)
: 1262: 1.26%: aol.com
2: 11783: 25.64%: .jp (Japan)
: 9592: 22.19%: ad.jp
: 1043: 1.97%: co.jp
3: 10073: 11.62%: .net (Network)
: 1926: 1.71%: uu.net
4: 9657: 13.31%: [未解決アドレス]
5: 7388: 8.04%: .uk (United Kingdom)
: 5792: 5.74%: ac.uk
: 1510: 1.99%: co.uk
: 18502: 25.16%: [残り: 82 ドメイン]
リクエストレポートでどのファイルがリンクされるかは、LINKINCLUDE と LINKEXCLUDE コマンドによって制御され、さまざまなリンク元レポートでどのファイルがリンクされるかは、REFLINKINCLUDE と REFLINKEXCLUDE コマンドによって制御されます。リクエストレポートでのリンクは BASEURL コマンドによっても影響を受けます。
括弧内の数字は、このレポートの先頭で表された7日間での値を表しており、もし TO コマンドがあったなら、それは TO 時刻以前の7日間を表しており、もしコマンドがないのならば、レポートの起動日以前の7日間を表しています。
サイトへの訪問者数またはあなたが訪問した数を見つけることができないとき、そしてそれができるといわれているどのプログラムも信じないときは、このことについて議論した どのようにして Web が動作するか を参照して下さい。
GENERAL コマンドを使ってこのレポートを出力したり、削除したりすることができます。LASTSEVEN コマンドを使い、最後の7日間の数字を含んだり除いたりすることができます。あなたの設定した他のオプションによって、上記の出力は少し異なる行を与えるかもしれません。
) は 800
ページへのリクエスト あるいはその値未満を表す.
週の始めの日: リクエスト数: ページ数: ---------: -----: -----: 1998年 9月13日: 69614: 25277:最も混雑した週(次の日から1週間):1998年 9月13日 (26,654 ページへのリクエスト)1998年 9月20日: 10032: 5861:
![]()
適切な ON または OFF コマンドを使うことで各レポートを含むか、含まないかを制御することができます。COLS コマンドを使うことで、どの列を表示するかを制御することができます。GRAPH コマンドを使うことで、棒グラフと "最も混んでいる" 利用量がどれなのかを制御することができます。ROWS コマンドを使うことで、表示する行数を決めることができます。BACK コマンドによって、時間に関して行の前後を表示することができます。BARSTYLE コマンドを使へば、棒グラフに使われている図を変えることができます。
)は 150
ページへのリクエスト あるいはその値未満を表す.
日: リクエスト数: ページ数: --: ------------: -------: 日: 2031: 1193:月: 8001: 4668:
火: 0: 0: 水: 13934: 5915:
その他
適切な ON または OFF コマンドを使えば、各レポートを含むか含まないかを制御することができます。COLS コマンドを使えば、どの列を記述するかを制御することができます。GRAPH コマンドを使えば、棒グラフをどの計測に対して使うかを制御することができます。BARSTYLE コマンドを使えば、棒グラフを使った画像を変えることができます。
リクエスト数: バイト数の割合(%): 最終アクセス時刻: ファイル
------------: --------------------: -----------------------: --------
4123: 2.29%: 1998年 9月21日 01時:57分: /~sret1/analog/
3064: 0.15%: 1998年 9月21日 01時:54分: /~sret1/analog/analogo.gif
1737: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar1.gif
1692: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar16.gif
1685: 0.01%: 1998年 9月21日 01時:53分: /~sret1/images/bar8.gif
67345: 97.54%: 1998年 9月21日 02時:04分: [残り: 8,175 ファイル]
いつも通り、適切な ON または OFF コマンドを使って、それぞれのレポートを含むかどうかを制御することができます。 COLS コマンドによって、どの列を表示するかを制御することができます。 SORTBYコマンドによって、レポートのデータの並べ方を変えることができます。 FLOORコマンドによって、何項を表示するかを制御することができます。 出力用の INCLUDE と EXCLUDE コマンドを使って、個々の項を含んだり除外したりすることができます。 OUTPUTALIAS コマンドを使って、レポートの中の項の名前を変えることができます。
最下段の "示されていない" 行は、レポートに対して FLOOR 以上に十分なデータ転送量が得られなかった場合と、あからさまに EXCLUDE (除外)された場合の数を表している。
例えばこのドメインレポートのように、大部分のレポートは階層構造を持っています:
順位: リクエスト数: バイト数の割合(%): ドメイン
----: ------------: --------------------: --------
1: 13243: 16.23%: .com (Commercial)
: 1262: 1.26%: aol.com
2: 11783: 25.64%: .jp (Japan)
: 9592: 22.19%: ad.jp
: 1043: 1.97%: co.jp
3: 10073: 11.62%: .net (Network)
: 1926: 1.71%: uu.net
4: 9657: 13.31%: [未解決アドレス]
5: 7388: 8.04%: .uk (United Kingdom)
: 5792: 5.74%: ac.uk
: 1510: 1.99%: co.uk
: 18502: 25.16%: [残り: 82 ドメイン]
リクエストレポートでどのファイルがリンクされるかは、LINKINCLUDE と LINKEXCLUDE コマンドによって制御され、さまざまなリンク元レポートでどのファイルがリンクされるかは、REFLINKINCLUDE と REFLINKEXCLUDE コマンドによって制御されます。リクエストレポートでのリンクは BASEURL コマンドによっても影響を受けます。
幾つかの基本的な定義から始めましょう。 ホスト は、ファイルを要求するコンピュータのことです。ファイルは、ページ (即ち、HTML の文書)あるいは画像のようなその他の物です。 全リクエスト は、ページ、グラフィック、等を含む、リクエスト(要求)された全てのファイルを勘定します(ある人々は、これをヒット数と呼びますが、この言葉は他の人々によっては別の意味で使われますので、私はこの言葉を避けました)。ページへのリクエスト は、明らかにページだけを勘定します。リクエストに対する 参照(レファラー) は、ユーザ(あるいは彼のコンピュータ)が今現在見ているファイルが辿ってきた元の場所を意味しています。もしユーザが、現在のページに達するリンクを辿れば、一つ前のページでしょう。ページに現れている画像の場合には、参照は、その画像を含んでいるページでしょう。
最初に、成功したリクエスト は、200(文書が送られた)と304(この場合、文書が要求されたが、最近修正が無かったため、ユーザがキャッシュされた手元のコピーを用いたからである。)の HTTP の状態コードを持ったリクエストのことである。時には、ログファイルのある行が状態コードを含まない場合がある。これらの行も、analog では、成功したとみなされる。
リダイレクトされたリクエスト は、300番代の他の状態コードを持ったリクエストであり、ユーザが要求したのと異なるページを渡されたことを意味している。これらのリクエストが起きる理由の大部分は、ユーザが誤って後ろのスラッシュ(/)を付けないでディレクトリを指定した場合である。サーバは、("多分あなたは、以下のことを意味したのでしょう")リダイレクションで応え、ユーザは、2度目の接続を試みて正しい文書を手に入れようとします(しかし通常、ユーザが何かしようとしても、ブラウザは自動的に接続するでしょう)。リダイレクトされた他の主な理由は、"click-thru" と呼ばれる広告のバンナーのためです。
失敗したリクエスト は、400番代のコード(リクエストエラー)を持った文書のためであるか、500番代のコード(サーバエラー)のためである。それらは色々な理由から来ているが、大部分の理由は、要求されたファイルが見つからなかったか、読めないようになっているかのどちらかである。
最後に、情報をもった状態コードを返すリクエスト は、100番代の状態コードを持ったものであり、現在は非常にまれである。
全体の概要に挙げられているログファイルの行には、他に幾つかの種類がある。 状態コードの無い行 は、状態コードが付いていないログファイルの行を指しており、全体の概要中の成功したリクエストは、状態コードの付いた行だけを勘定している。しかし、もしその行がリクエストしたファイル名を含んでおり、そのファイル名が勘定されているならば( LOGFORMAT 中で、米印がついていない場合)、成功に勘定される。 壊れたログファイルの行数 は、analog が文法を理解できない行のことである。そして、除外されたログファイルの項目数 は、我々が明示して 除外した 項目のことである。ホームページへの成功したリクエスト件数は、要求したファイルが与えられ、しかもそのファイルが PAGEINCLUDE コマンドでページと定義された行を参照している場合である。
各 時間に関係しないレポート の最後に "一覧にされていない" 行は、以下の2つである。 OUTPUTEXCLUDE コマンドを使って、出力からあからさまに除外されている項目と、レポートに出力するには、 フロア が足りないために一覧にされなかった項目である。
全体の概要での括弧内の数字は、最近7日間に対する値である。TO 日時前の7日間か、もし TO 日時が与えられていないときには、プログラムが走る前の7日間である。(ログファイルが使用された最後から7日前であれば、もっと良いのだが、しかしログファイル全体を読むまでそれがいつなのか分からず、それでは遅すぎる。)もしリクエストの全てかどれも7日以内に収まらない場合には、それらの値は表示されない。
ドメインレポートでは、"ドメインが与えられていない" という注意は、ホスト名がドットを含んでいないことを意味する。"未知のドメイン" は、ドットを含んでいるが、ドメイン名が ドメインファイル 中に見つからなかったことを意味する。ホストとそれに関係するドメインは、デバッグ モードをオンにすれば、一覧にされる。
始めに、クラッシュ、エラー、注意とデバッグ用メッセージの違いを理解してください。最初にクラッシュは、analogが全出力ファイルを生成しないで、早めに終了してしまうことです。システムはメッセージを出力するかもしれませんが、analogはそれ自身の出力を何らしません。analogはクラッシュしないはずです。もしクラッシュしたなら、私に報告をしてください。
エラーは、analogが仕事を終了するのを妨げる何かのことです。エラーが起きたときには、analogは analog: Fatal error: という言葉で始まるメッセージを出力し、何が起きたかをあなたに告げるでしょう。
注意は、analogとっては致命的ではない問題のことです。analogは動作しつづけるでしょう。これらは、ファイルが見つからないという危険なものから、単純に報告というものまであります。これらは、analog: Warning という言葉から始まるメッセージを出力します。注意の出力を止めるには、WARNINGS というコマンドを使えばできます。
最後に、デバッグのメッセージはプログラムの状態についての情報を与える。その情報は、1文字とコロンで始まる。デバッグをオンにしない限り、デバッグメッセージは得られない。
モニターの代わりにファイルにこれらのメッセージを保存しようとするなら、ERRFILE というコマンドを持ちいれば良い。モニターにこれらのメッセージを表示する文字幅を決めるには、ERRLINELENGTH というコマンドを持ちいれば良い。
さてこれから全ての可能な エラー と 注意 の詳細を述べよう。
analog に対するメーリングリストは3つあります。
analog-announce のメーリングリストを購読するには、 analog-announce-request@lists.isite.net に、本文中に subscribe の言葉を書いて送ってください。この言葉は、subject にではなく本文中に入れなければならないことに注意してください。また、メールアドレスに -request が入っていることに注意してください。
もし analog について助言が必要なら、最初に以下の簡単なことを確認してください。
それでもまだ助言が必要なら、analog-help のメーリングリストに書いてください。最初 に、本文中に subscribe と書いて analog-help-request@lists.isite.net へメールを送ることによって、購読(購読しないと質問を送ることはできません)を始めなければなりません。(この言葉は、subject ではなく、本文に書く事に注意してください。)購読要求に対する返事を受け取った後、analog-help@lists.isite.net へメールを送ることができます。しかし、購読のためにこのアドレスを使わないでください。うまくいきません。
メーリングリストにメールを送るとき、以下のことをしてください。
もし私に私信を送りたいときには、 analog-author@lists.isite.net まで送ってください。 どうぞこのアドレスをユーザサポート用の質問に使わないで下さい。それらは analog-help まで送ってください。
私のためにこのメーリングリストを提供してくれている ISite に感謝します。同様に、 analog-help のメーリングリストの書庫を提供してくれている The Mail Archive のサイトにも感謝 します。
これらの役立つソフトは analog サイトに全ての一覧が載っています。このリストは常に大きくなっているので、私はそれを配っていません。しかし analog のホームページ に行き(あるいはもっとましなのは、ローカルなミラーサイトに行き)、それを調べることを強く薦めます。
プログラムと一緒に配られた examples ディレクトリあるいはフォルダ中に環境設定ファイルの例があります。
getstats を作成した Kevin Hughes に感謝します。analog が作成される以前、ログファイルの解析プログラムはたった3つしかありませんでした。そして、その中で1つだけ getstats は望み通りの出力をしてくれました。getstats が私達のログファイルを処理できなくなり、私は analog を書きました。しかし見た目はまだ getstats に似ています。
また、このプログラムを作っていた早い時期に手助けしてくれた人、analog を作り続けるように、そして公に発表するように激励してくれた人に感謝します。ベータテストをしている間、有益な意見を述べてくれた人は大勢いますが、とりわけ、Dan Anderson, Martyn Johnson,Joe Ramey, Chris Ritson, Quentin Stafford-Fraser そして Dave Stanworth には感謝しています。なかでも Gareth McCaughan はプログラミングについて多くのアドバイスをしてくれました。彼がいなかったらこのプログラムの処理速度は遅くなっていたでしょう。
Dave Stanworth をはじめ、多くの人が analog のためにミラーサイトを提供してくれました。全てのミラーサイトは その他の場所 に載せてあり、その全ての人にも感謝します。また、メーリングリストを提供してくれた ISite、そして analog-help のリストを保管している The Mail Archive にも大変感謝しています。
Mark Roedel はanalog を別のプラットフォームに移植することを最初に提案し、最初の DOS 版を作りました。そのすぐ後、Jason Linhart が Mac 版を作り、Mac のプラットフォームや一般のプログラムに多くの特別のコードを与え続けてくれました。Mac 版は Stephan Somogyi と Nigel Perryによって与えられたコードも含んでおり、Jean-loup Gailly & Mark Adlerによる ZLib library を使います。 最新の移植は Dave Jones (VMS), Magnus Hagander (Win32), Nick Smith (Acorn RiscOS), Scott Tadman (BeOS), それに Martin Kraemer & Holger Schranz (BS2000/OSD) によってなされました。 Ivan Martinez は OS/2 版を作成しました。 The BS2000/OSD 版は Apache HTTP サーバープロジェクト で使う Apache Group によって開発されたコードを含んでいます。もしコンパイルする時に、NEED_MEMMOVE が定義されていたら、それは the University of California, Berkeley そしてその貢献者によって開発されたソフトウェアを含んでいます。
インターフェイスは James Dean Palmer の考えに基づいています。わずかでもコードを与えてくれた全ての人に感謝していますが、その人々の名前を挙げられないことをお許しください。 より analog を使いやすくするように 役立つソフト を書いてくれた人々にも感謝します。
他の言語に翻訳してくれた以下に挙げる人々に感謝します: Francesc Rocher, M. Mercè Llauge & Francesc Burrull i Mestres (カタロニア語), Yang Meng (中国語), Jan Simek (チェコ語), Adrian Price (デンマーク語), Ferry van het Groenewoud & Joost Baaij (オランダ語), Henrik Huhtinen, Steve Kelly & Andrew Staples (フィンランド語), Patrice Lafont, Lucien Vieira, Jean-Marc Coursimault & Lionel Delaude (フランス語), Mario Ellebrecht, Martin Kraemer, Holger Schranz, Thomas Jacob & Thomas Frings (ドイツ語), Dimitris Xenakis (ギリシャ語), Laszlo Nemeth (Hungarian), Gustaf Gustafsson (アイスランド語), Furio Ercolessi & Luca Andreucci (イタリア語), Takayuki Matsuki, Stephen Obenski & Motonobu Takahashi (日本語), Byungkwan Kim (韓国語), Jurijs Turjanskis (ラトビア語), Ingrid (リトアニア語), Jan-Aage Bruvoll, Espen Bjarnø & Pâl Løberg (ノールウェイ Bokmâl語), Magni Onsøien (ノールウェイ Nynorsk語), Wlodek Lapot, Tomek Wozniak & Marcin Sochacki (ポーランド語), Ivan Martinez (ブラジル系ポルトガル語), Jaime Carvalho e Silva (ヨーロッパ系ポルトガル語), Alex Mihaila (ルーマニア語), San Sanych Timofeev, Boris Litvinenko & Vyacheslav Nikitich (ロシア語), Mile Peric (セルゴクロアチア語), Stefan Billik (スロバキア語), Andrej Zizmond (スロベニア語), Javier Solis, Alexander Velasquez, Alfredo Sola & Martin Perez (スペイン語), Björn Malmberg (スウェーデン語), それに Nezih Erkman (トルコ語).
最後に、このプログラムを使っているあなたに感謝します。
*.htm は今や全てのコンピュータでページと見なされる。
この章は以下の部分に分かれています。
"stuff" 文字列
x y y を伴った x
(x | y) x または y
[x] x はオプション
subset("...") 文字列の一部の文字、順番は問わない
perm("...") 文字列からの全ての文字、順番は問わない
*x x はワイルドカード * と ? を含む(しばしば、コンマで区切られたリストも含む)
x := y x は y と定義される
COMMAND 話題にしているコマンド
更に、異なる型の引数に対して以下の名称を使います。
char 1個の文字
string 文字列
digit 10進数の1桁(0〜9)
number 負で無い整数(各桁を並べたもの)
real 負でない実数
regexp POSIX 拡張した正規表現
file あなたのサーバー内のファイル名
例 /index.html
localfile あなたのシステム内のファイル名
例 /usr/local/analog.html
localfmtfile システム内のファイル名であるが、日付コード を含むことができる。
例 /usr/local/analog%y%M.html
referrer 参照ページの URL
例 http://search.yahoo.com/
URL 絶対的な、または出力ページに相対的な URL
例 images/ or /~fred/images/
または http://www.fred.com/images/
注意:混乱を招かないと判断される場合には、私は時には厳密な定義よりも明瞭さ を優先した。
一般的なコマンドの文法は、以前 に与えられている。 種々な文字列やスペースを含む引数は、引用符か括弧でくくるのを思い出してください。
format_string := (マニュアルを見よ)
Apache_format_string := (Apache の資料 を参照)
logformat := ("COMMON" | "COMBINED" | "REFERRER" | "BROWSER" | "EXTENDED" |
"MICROSOFT-NA" | "MICROSOFT-INT" | "WEBSITE-NA" | "WEBSITE-INT" |
"MS-EXTENDED" | "MS-COMMON" | "NETSCAPE" | "WEBSTAR" | "AUTO" |
format_string)
LOGFORMAT logformat
DEFAULTLOGFORMAT logformat
APACHELOGFORMAT Apache_format_string
APACHEDEFAULTLOGFORMAT Apache_format_string
LANGUAGE ("CATALAN" | "CHINESE" | "CZECH" | "DANISH" | "DUTCH" | "ENGLISH" |
"US-ENGLISH" | "FINNISH" | "FRENCH" | "GERMAN" | "GREEK" |
"HUNGARIAN" | "ICELANDIC" | "ITALIAN" | "JAPANESE" | "KOREAN" |
"LATVIAN" | "LITHUANIAN" | "NORWEGIAN" | "NYNORSK" | "POLISH" |
"PORTUGUESE" | "BR-PORTUGUESE" | "ROMANIAN" | "RUSSIAN" |
"SERBOCROATIAN" | "SLOVAK" | "SLOVENE" | "SPANISH" | "SWEDISH" |
"TURKISH")
LANGFILE localfile
DOMAINSFILE localfile
[ あ | か | さ | た | な | は | ま | や | ら | わ ]
これはこのマニュアル( Readme )の索引です。各名称の後の番号を辿って,その コマンド或いは概念の参考資料を見出してください。一つの仲間のコマンド群は、 2番目の部分の名称に基づいて索引が作られています。例えば、 HOSTEXCLUDE は、 HOST ではなく、*EXCLUDE で引きます。
この索引は、analog の全ての環境設定コマンドを含みます。もし以前のバージョンで 使用していたコマンドがここに無い場合には、 以前のバージョンからのアップグレード の章を見てください。全てのコマンドは、簡易 参考マニュアル にも文法と例が載っていますが、その章はこの索引とは 相互参照していません。
訳注:英語表記の索引はそのままにして、日本語に訳せる 単語 (主にコマンド以外) は日本語表記の索引を作成しました。
Acknowledgements [1]
Addresses, numerical [1]
*ALIAS [1]
Aliases [1]
ALLBACK [1]
ALLGRAPH [1]
analog.cfg [1][2][3][4][5]
anlgform.html [1]
anlgform.pl [1]
anlghead.h [1][2]
Announcements [1]
APACHEDEFAULTLOGFORMAT [1]
APACHELOGFORMAT [1]
ARGSEXCLUDE [1]
*ARGSFLOOR [1]
ARGSINCLUDE [1]
*ARGSSORTBY [1]
Arguments in URLs [1][2]
ASCII output [1]
ASCIIPAGEWIDTH [1]
*BACK [1]
Bar charts [1]
BARSTYLE [1]
BASEURL [1]
Basic commands [1]
Broken pipe [1][2]
BROW* commands - see under second part of name
BROWSER [1]
Browser Report [1][2][3][4]
Browser Summary [1][2][3]
BROWSUM* commands - see under second part of name
Bugs, reporting [1]
Bytes, how displayed [1]
Cache files [1]
CACHEOUTFILE [1]
CACHEFILE [1]
CASE [1]
CGI program [1]
"Click-thru"s [1]
Colours [1]
*COLS [1][2]
Command line arguments [1][2][3][4]
IP アドレス [1]
アスキー出力 [1]
圧縮されたログファイル [1]
(数値の)アドレス [1]
analog のカスタマイズ [1]
analog を使うにあたって [1]
analog を使うにあたって (Mac) [1]
analog を使うにあたって (OS/2) [1]
analog を使うにあたって (Windows) [1]
analog を使うにあたって (他のプラットフォーム) [1]
新しい特徴 [1][2]
以前の特徴 [1][2]
色 [1]
HTML 出力 [1]
エイリアス [1]
エラー [1]
エラーレポート [1]
OS レポート [1][2][3][4]
階層的レポート [1]
簡易参考マニュアル [1]
環境設定ファイル [1][2][3][4][5]
(初期)環境設定ファイル [1]
(必須)環境設定ファイル [1]
基本コマンド [1]
キャッシュファイル [1]
クッキー [1]
国 [1]
クラッシュ [1]
言語 [1][2]
(拒否する)検索エンジン [1]
検索結果レポート [1][2][3][4]
検索語レポート [1][2][3][4]
検索引数 [1][2] -- 検索結果レポートと検索語レポートも見よ。
貢献者 [1]
告知 [1]
(各)コマンドの例 [1]
5分間隔レポート [1][2][3]
コマンドラインの引数 [1][2][3][4]
サイト通過のパス [1]
サブディレクトリ [1]
サブドメイン [1]
時間別概要 [1][2][3]
時刻レポート [1][2]
(限定した)時刻 [1]
時刻に依存しないレポート [1][2]
CGI プログラム [1]
謝辞 [1]
15分間隔レポート [1][2][3]
週の最初の日 [1]
週別レポート [1][2][3]
(環境設定)出力 [1]
出力スタイル [1]
(コンピュータの読める)出力スタイル [1]
出力の別名 [1]
小メモリ [1]
除外 [1]
初期設定環境設定ファイル [1]
初期設定ログファイル書式 [1]
処理時間レポート [1][2][3]
数値のアドレス [1]
数値のホスト名 [1]
ステータスコードレポート [1][2][3]
(拒否する)スパイダー [1]
正規表現 [1][2]
(定義)成功したリクエスト [1]
全体の概要 [1][2]
(定義)全リクエスト [1]
前バージョンからのアップグレード [1]
(定義)組織 [1]
ソースコード [1]
組織別レポート [1][2][3][4]
題名行 [1][2]
致命的エラー [1]
注意 [1][2]
月別レポート [1][2][3]
ツリーレポート [1]
定義 [1]
ディレクトリレポート [1][2][3][4]
DNS 参照 [1]
デバッグ [1]
ドメインレポート [1][2][3][4][5]
ドメインファイル [1]
バーチャート [1]
バーチャルドメイン・ホスト [1][2]
バーチャルホストレポート [1][2][3]
バイト (Bytes) の表示法 [1]
(報告された)バグ [1]
バグの報告 [1]
始めに [1]
(URL 中の)引数 [1][2]
(制限された)日付 [1]
日付レポート [1][2]
必須の環境設定ファイル [1]
ヒット [1]
(定義)ファイル [1]
ファイルサイズレポート [1][2][3]
ファイル種類別レポート [1][2][3][4]
フィルター [1]
フォームインタフェース [1]
不成功ユーザレポート [1][2][3]
(定義)不成功リクエスト [1]
不成功レファラーレポート [1][2][3][4]
(定義)不必要なログファイル項目 [1]
ブラウザーの概要 [1][2][3]
ブラウザーレポート [1][2][3][4]
文法 [1][2]
(定義)ページ [1]
(定義)ページのリクエスト [1]
ページを定義する [1]
(定義)ページのリクエスト [1]
包含と除外 [1]
(定義)ホスト [1]
ホストレポート [1][2][3]
ホームページ [1]
訪問者 [1]
訪問 [1]
翻訳者 [1]
未解決数値アドレス [1]
メーリングリスト [1]
(少なく使う)メモリ [1]
目次 [1]
役立つソフト [1]
ユーザレポート [1][2][3]
曜日別レポート [1][2][3]
曜日別概要 [1][2][3]
よく聞かれる質問 (FAQ) [1]
ライセンス [1][2]
リクエストレポート [1][2][3][4]
(定義)リクエスト [1]
リクエストの種類 [1]
リダイレクトされたレファラーレポート [1][2][3][4]
(定義)リダイレクトされたリクエスト [1]
リダイレクションレポート [1][2][3][4]
レファラーレポート [1][2][3][4]
リファーリングサイトレポート [1][2][3][4]
レポートの意味 [1]
レポートの例 [1]
ログファイル [1]
ログファイルの圧縮 [1]
ログファイルの書式 [1][2]
ログファイルの選択 [1]
ログファイルの場所 [1]
ログファイルの接頭辞 [1]
(拒否する)ロボット [1]
[ あ | か | さ | た | な | は | ま | や | ら | わ ]
[ A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ]
[ あ | か | さ | た | な | は | ま | や | ら | わ ]
これはこのマニュアル( Readme )の索引です。各名称の後の番号を辿って,その コマンド或いは概念の参考資料を見出してください。一つの仲間のコマンド群は、 2番目の部分の名称に基づいて索引が作られています。例えば、 HOSTEXCLUDE は、 HOST ではなく、*EXCLUDE で引きます。
この索引は、analog の全ての環境設定コマンドを含みます。もし以前のバージョンで 使用していたコマンドがここに無い場合には、 以前のバージョンからのアップグレード の章を見てください。全てのコマンドは、簡易 参考マニュアル にも文法と例が載っていますが、その章はこの索引とは 相互参照していません。
訳注:英語表記の索引はそのままにして、日本語に訳せる 単語 (主にコマンド以外) は日本語表記の索引を作成しました。
Acknowledgements [1]
Addresses, numerical [1]
*ALIAS [1]
Aliases [1]
ALLBACK [1]
ALLGRAPH [1]
analog.cfg [1][2][3][4][5]
anlgform.html [1]
anlgform.pl [1]
anlghead.h [1][2]
Announcements [1]
APACHEDEFAULTLOGFORMAT [1]
APACHELOGFORMAT [1]
ARGSEXCLUDE [1]
*ARGSFLOOR [1]
ARGSINCLUDE [1]
*ARGSSORTBY [1]
Arguments in URLs [1][2]
ASCII output [1]
ASCIIPAGEWIDTH [1]
*BACK [1]
Bar charts [1]
BARSTYLE [1]
BASEURL [1]
Basic commands [1]
Broken pipe [1][2]
BROW* commands - see under second part of name
BROWSER [1]
Browser Report [1][2][3][4]
Browser Summary [1][2][3]
BROWSUM* commands - see under second part of name
Bugs, reporting [1]
Bytes, how displayed [1]
Cache files [1]
CACHEOUTFILE [1]
CACHEFILE [1]
CASE [1]
CGI program [1]
"Click-thru"s [1]
Colours [1]
*COLS [1][2]
Command line arguments [1][2][3][4]
IP アドレス [1]
アスキー出力 [1]
圧縮されたログファイル [1]
(数値の)アドレス [1]
analog のカスタマイズ [1]
analog を使うにあたって [1]
analog を使うにあたって (Mac) [1]
analog を使うにあたって (OS/2) [1]
analog を使うにあたって (Windows) [1]
analog を使うにあたって (他のプラットフォーム) [1]
新しい特徴 [1][2]
以前の特徴 [1][2]
色 [1]
HTML 出力 [1]
エイリアス [1]
エラー [1]
エラーレポート [1]
OS レポート [1][2][3][4]
階層的レポート [1]
簡易参考マニュアル [1]
環境設定ファイル [1][2][3][4][5]
(初期)環境設定ファイル [1]
(必須)環境設定ファイル [1]
基本コマンド [1]
キャッシュファイル [1]
クッキー [1]
国 [1]
クラッシュ [1]
言語 [1][2]
(拒否する)検索エンジン [1]
検索結果レポート [1][2][3][4]
検索語レポート [1][2][3][4]
検索引数 [1][2] -- 検索結果レポートと検索語レポートも見よ。
貢献者 [1]
告知 [1]
(各)コマンドの例 [1]
5分間隔レポート [1][2][3]
コマンドラインの引数 [1][2][3][4]
サイト通過のパス [1]
サブディレクトリ [1]
サブドメイン [1]
時間別概要 [1][2][3]
時刻レポート [1][2]
(限定した)時刻 [1]
時刻に依存しないレポート [1][2]
CGI プログラム [1]
謝辞 [1]
15分間隔レポート [1][2][3]
週の最初の日 [1]
週別レポート [1][2][3]
(環境設定)出力 [1]
出力スタイル [1]
(コンピュータの読める)出力スタイル [1]
出力の別名 [1]
小メモリ [1]
除外 [1]
初期設定環境設定ファイル [1]
初期設定ログファイル書式 [1]
処理時間レポート [1][2][3]
数値のアドレス [1]
数値のホスト名 [1]
ステータスコードレポート [1][2][3]
(拒否する)スパイダー [1]
正規表現 [1][2]
(定義)成功したリクエスト [1]
全体の概要 [1][2]
(定義)全リクエスト [1]
前バージョンからのアップグレード [1]
(定義)組織 [1]
ソースコード [1]
組織別レポート [1][2][3][4]
題名行 [1][2]
致命的エラー [1]
注意 [1][2]
月別レポート [1][2][3]
ツリーレポート [1]
定義 [1]
ディレクトリレポート [1][2][3][4]
DNS 参照 [1]
デバッグ [1]
ドメインレポート [1][2][3][4][5]
ドメインファイル [1]
バーチャート [1]
バーチャルドメイン・ホスト [1][2]
バーチャルホストレポート [1][2][3]
バイト (Bytes) の表示法 [1]
(報告された)バグ [1]
バグの報告 [1]
始めに [1]
(URL 中の)引数 [1][2]
(制限された)日付 [1]
日付レポート [1][2]
必須の環境設定ファイル [1]
ヒット [1]
(定義)ファイル [1]
ファイルサイズレポート [1][2][3]
ファイル種類別レポート [1][2][3][4]
フィルター [1]
フォームインタフェース [1]
不成功ユーザレポート [1][2][3]
(定義)不成功リクエスト [1]
不成功レファラーレポート [1][2][3][4]
(定義)不必要なログファイル項目 [1]
ブラウザーの概要 [1][2][3]
ブラウザーレポート [1][2][3][4]
文法 [1][2]
(定義)ページ [1]
(定義)ページのリクエスト [1]
ページを定義する [1]
(定義)ページのリクエスト [1]
包含と除外 [1]
(定義)ホスト [1]
ホストレポート [1][2][3]
ホームページ [1]
訪問者 [1]
訪問 [1]
翻訳者 [1]
未解決数値アドレス [1]
メーリングリスト [1]
(少なく使う)メモリ [1]
目次 [1]
役立つソフト [1]
ユーザレポート [1][2][3]
曜日別レポート [1][2][3]
曜日別概要 [1][2][3]
よく聞かれる質問 (FAQ) [1]
ライセンス [1][2]
リクエストレポート [1][2][3][4]
(定義)リクエスト [1]
リクエストの種類 [1]
リダイレクトされたレファラーレポート [1][2][3][4]
(定義)リダイレクトされたリクエスト [1]
リダイレクションレポート [1][2][3][4]
レファラーレポート [1][2][3][4]
リファーリングサイトレポート [1][2][3][4]
レポートの意味 [1]
レポートの例 [1]
ログファイル [1]
ログファイルの圧縮 [1]
ログファイルの書式 [1][2]
ログファイルの選択 [1]
ログファイルの場所 [1]
ログファイルの接頭辞 [1]
(拒否する)ロボット [1]
[ あ | か | さ | た | な | は | ま | や | ら | わ ]
[ A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ]