この章では、 Webalizerを使用してWebまたはプロキシサーバーのログファイルからレポートを作成する方法について説明します。 パッケージ。
コンテンツ
Webalizerログファイル分析モジュール
Webalizerは、Apache Webサーバー、Squid、およびWU-FTPdログファイルからレポートを分析および生成するための無料で利用できるプログラムです。 Webサイトを運営していて、どのページが最も訪問されているか、いつ最も多くのトラフィックが来ているか、またはどの国から来ているかを確認したい場合は、Webalizerが使用するツールです。 Squidプロキシサーバーを管理していて、クライアントが最も一般的にアクセスするサイトと、プロキシが最も頻繁に使用されるタイミングを確認したい場合は、その情報を示すレポートも生成できます。
Webminが構成できる他の多くのサーバーとは異なり、Webalizerは比較的単純です。 webalizerコマンドを実行すると、ログファイルが読み込まれ、そのログのレコードに基づいてHTMLページと画像が生成されます。また、履歴ファイルから以前の実行で収集された統計を読み取ることができるため、ログファイルに存在しなくなったデータをレポートに含めることができます。その後、同じ履歴ファイルが最新のレポートの情報で更新され、後続の処理で使用されます。これにより、システム管理者は、要約された元のログファイルを安全に削除できます。
Webalizerは、デフォルトでグローバル構成ファイル/etc/webalizer.confを使用します。このファイルは、生成するテーブルとグラフの種類と使用するタイトルを指定します。複数の仮想サーバーをホストするシステムでは、通常、複数の構成ファイルが存在するため、サイトごとに異なるレポートオプションを設定できます。残念ながら、グローバル構成ファイルとログごとの構成ファイルの両方から両方のオプションを組み合わせる方法はありません。レポートを生成するときに使用できるのは1つだけです。
ログファイルには常に新しいリクエストが追加されているため、Webalizerは通常Cronなどのプログラムによってスケジュールどおりに実行されます。独自のサーバープロセスまたはデーモンがないため、スケジューラーに依存して毎日1〜2回呼び出し、各ログファイルを再処理して各レポートを再生成します。
Webalizerは比較的単純なため、すべての種類のUnixで同じように動作します。つまり、スケジュールされたレポート機能を機能させるには、Scheduled Cron Jobsモジュールをインストールして機能させる必要がありますが、Webminモジュールの機能とレイアウトも同じです。
WebminのWebalizerモジュールアイコンは、サーバーカテゴリにあります。最初にクリックすると、図39-1に示すように、ApacheまたはSquidがシステムで使用するように構成されているすべてのログファイルを一覧表示するページが表示されます。これらのサーバーの構成を分析することにより、モジュールは通常、分析可能なシステム上のすべてのログがどこにあるかを判断できますが、レポート用に追加のログファイルをモジュールに簡単に追加することもできます。
Webalizerログファイル分析のメイン画面モジュールがWebalizerが実際にシステムにインストールされていないことを検出すると、代わりにメインページにエラーメッセージが表示されます。これが発生した場合は、LinuxディストリビューションCDまたはプログラムのWebサイト(www.webalizer.org)からインストールする必要があります。 Linuxの多くのバージョンには、ソフトウェアパッケージモジュールを使用してインストールできるWebalizerパッケージが標準で含まれています。
モジュールを使用して複数のログファイルを分析する場合は、これをサポートするようにグローバルWebalizer構成が正しく設定されていることを確認することが重要です。一部のLinuxディストリビューション(Redhatなど)に付属しているバージョンでは、以前の処理の実行に関する情報を格納する履歴ファイルとキャッシュファイルに絶対パスが誤って使用されています。これを修正するには、ログファイルのオプションを設定する前に、次の手順に従います。
- モジュールのメインページで、グローバルオプションの編集をクリックします。 下部のボタン。これにより、すべてのログファイルに適用される編集オプションのフォームが表示されます。
- Webalizerの履歴 ファイルフィールドで、2番目のラジオボタンが選択され、webalizer.histがテキストボックスに表示されていることを確認します。 /var/stats/webalizer.histのような絶対パスが表示されている場合は、それを変更します。
- 同様に、Webalizerインクリメンタルファイルを確認してください フィールドはwebalizer.currentに設定されており、フルパスではありません。
- WebalizerDNSキャッシュファイル 必要に応じて絶対パスに設定したままにして、DNS情報が異なるレポート間で共有されるようにすることができます。
- 保存をクリックします ページの下部にあるボタンをクリックして、新しい設定を記録します。
レポートオプションの編集
ログファイルからレポートを生成する前に、出力ディレクトリ、レポートを実行するUnixユーザー、レポートレイアウト設定などの特定のオプションを設定する必要があります。ログがモジュールによって自動的に識別され、メインページに表示されると仮定すると、次の手順に従います。
- モジュールのメインページで、レポートを生成するWebサーバーログファイルの名前をクリックします。図39-2に示すように、そのファイルの現在の設定を一覧表示するページが表示されます。
- レポート内のすべてのログファイル フィールドには、WebminおよびWebalizerによって作成されたレポートで使用されるファイルが正確に表示されます。多くのシステムは、ApacheおよびSquidログファイルを定期的に移動、切り捨て、圧縮し、最終的に削除するように構成されているため(多くの場合、logrotateなどのプログラムを使用)、モジュールには、同じディレクトリ内の同じ名前で始まるすべてのファイルが含まれます。プライマリログファイル。したがって、たとえば/ var / log / httpd / access_logについてレポートしている場合、/ var / log / httpd内のファイルaccess_log.0.gz、access_log.1.gzなどもこのフィールドに表示されます。
- ディレクトリへのレポートの書き込み フィールドに、レポートのHTMLページを作成するディレクトリを入力します。これはすでに存在している必要があり、通常はWebサイトのドキュメントルートの下にある必要があります(例: /home/example.com/stats )。 。次のフィールドで指定されたユーザーが所有または書き込み可能である必要があります。 Webalizerはindex.htmlファイルやその他のHTMLページを作成し、すでに含まれているものを上書きする可能性があるため、ディレクトリが他の目的で使用されていないことを確認してください。
- 生成されたレポートファイルを所有するUnixユーザーの名前をRunwebalizer as userに入力します。 分野。これは、必要に応じて編集または移動できるように、WebサイトのHTMLファイルを所有しているユーザーである必要があります。または、 rootと入力することもできます レポートがあなた自身の使用のみを目的としている場合。モジュールがWebalizerを実行する方法のため、指定するユーザーはログファイルへの読み取りアクセス権を持っている必要はありませんが、レポートディレクトリに書き込むことができる必要があります。
- ログファイルを常に再処理しますか? *フィールドを*いいえに設定 、Webalizerが以前のレポート実行からキャッシュされた情報を利用できるようにします。 はいに設定する 各実行の前にすべてのキャッシュと以前の統計が破棄されるため、ログファイル全体が再処理されます。これは、ログファイルに存在しなくなったデータはレポートに含まれないことを意味します。 はいを選択する Webalizerによる古い統計のキャッシュをバイパスする場合に最も役立ちます。これは、前回の実行以降にログファイルが完全に変更された場合は正しくない可能性があります。
- レポートオプション フィールドで、カスタムオプションを選択します モジュールにこのログのグローバルWebalizer構成ファイルをコピーさせて、後でこのレポートにのみ適用されるオプションを定義できるようにします。システムにWebサイトが1つしかない場合、または異なる仮想サーバーのレポートをカスタマイズする必要がない場合は、グローバルオプションを使用を選択できます。 代わりにラジオボタン。その場合、ステップ9から19は無視できます。このフィールドの最後のオプションであるその他の構成ファイル 、レポートの生成時に使用する既存のWebalizer構成ファイルを指定できます。これは、以前にこのログファイルでプログラムを使用したことがあり、その設定をすでにカスタマイズしている場合に役立ちます。
- スケジュールされたレポートの生成を残す 無効に設定 今のところ。 「スケジュールどおりのレポート」セクションでは、それを有効にする方法について説明します。
- 保存をクリックします ページ下部のボタン。入力にエラーがない限り、モジュールのメインページに戻ります。
- 手順6で*カスタムオプション*を選択した場合は、ログファイル名をもう一度クリックしてから、オプションの編集をクリックします。 ページ下部のボタン。これにより、図39-3に示すオプションフォームが表示されます。
- ウェブサイトのホスト名 フィールドで、2番目のラジオボタンを選択し、URLから www.example.comなどのテキストフィールドにWebサイトの名前を入力します。 。
- Webalizerがページと見なすファイルの種類をカスタマイズするには、[レポートするファイルの種類]フィールドの拡張子を編集します。他のタイプ(画像やオーディオファイルなど)は、ほとんどのレポート目的ではカウントされません。
- サイトでindexで始まるファイル以外のディレクトリインデックスHTMLファイルを使用している場合。 ( home.htmlなど )ファイル名をディレクトリインデックスページに入力します 分野。通常、このフィールドは空のままにしておくことができます。
- 通常、Webalizerはログファイルの時刻をシステムのローカルタイムゾーンに変換します。代わりにGMTを強制的に使用するには、 GMTでのレポート時間を変更しますか? はいへのフィールド 。レポートが異なるタイムゾーンのユーザーによって表示されている場合を除き、いいえに設定したままにしておく必要があります。 けれど。
- ログファイルに、前に表示されたレコードより後の日付のレコードが含まれている可能性がある場合は、[*順不同のログエントリを処理しますか?*]フィールドをはいに設定します。 。これにより、レポートの生成がわずかに遅くなりますが、いいえの場合 が選択され、ログに異常なレコードが含まれている場合、Webalizerはそれを完全には処理しません。 Netscapeのような一部のWebサーバーは、このようなログファイルを生成する罪悪感を持っています。
- Webalizer履歴ファイル 、Webalizerインクリメンタルファイル およびWebalizerDNSキャッシュ フィールドは、相対パスに設定されている限り、通常は変更しないでおくことができます。イントロダクションでは、これが必要な理由をより詳細に説明しています。
- 表示するグラフと表 セクションで、レポートに含めたくないものの選択を解除します。
- テーブルの行と可視性 セクションでは、表示される各テーブルのサイズを変更したり、なしを選択してテーブルを完全に削除したりできます。 。
- サイトにアクセスするすべてのクライアント、アクセスされるURLなどを一覧表示するレポートで追加ページの作成をオンにするには、[*すべてのセクションを一覧表示するページを生成する*]で適切なチェックボックスを選択します。それ以外の場合は、上位20を示すテーブルのみがレポートに含まれます。
- 最後に、[保存]をクリックします ページ下部のボタン。今後生成されるレポートは、これらのオプションを使用します。
Figure 39-2 “The log file options page”
上記の手順はApacheログファイルを念頭に置いて書かれていますが、Squidログにも適用されます。唯一の違いは、Squidにはドキュメントルートディレクトリがないため、レポート用に新しいディレクトリを作成する必要があることです。これは、Webサーバーのルートディレクトリの下にある可能性があるため、誰でもレポートを表示できます。その場合、WebサーバーのHTMLファイルを所有するUnixユーザーの名前をユーザーとしてwebalizerを実行に入力する必要があります。 分野。
レポートの生成と表示
レポートのオプションを設定したら、実際にレポートを生成するのは簡単です。次の手順に従ってください:
- メインページで、レポートが生成されているログファイルの名前をクリックします。
- レポートの生成を押します フォームの下部にあるボタン。各ログファイルで実行されたWebalizerからの出力を示すページが表示されるので、発生したエラーを確認できます。大きなログファイルを最初に処理するときは、ファイル内のすべてのクライアントIPアドレスに対して逆引き参照を実行する必要があるため、これには長い時間(おそらく数時間)かかる場合があります。幸い、実際に生成されるCPUとネットワークの負荷は最小限です。
- すべてがうまくいけば、レポートのHTMLページが宛先ディレクトリに作成されます。表示するには、出力の下にある[完了したレポートの表示]リンクをクリックします。
- レポートの最初のページには、Webサイトが月ごとに受け取ったヒットのグラフが表示され、各月の詳細を含むページへのリンクが以下にあります。各月のページには、サイトの日別、時間別、クライアント別、ページ別、国別のヒットの表とグラフが表示されます。また、その情報がログに含まれている場合は、ユーザー、ブラウザ、リファラー別のヒットも表示される場合があります。ファイル。
- 表示をクリックすると、モジュールのメインページから同じレポートを直接表示できます。 レポートのリンク ログファイルの列、またはレポートの表示を押す ログファイルオプションフォームのボタン。
スケジュールどおりの報告
ログファイルから手動でレポートを生成する代わりに、このモジュールを使用して、Webalizerを定期的に実行するCronジョブを設定できます。通常、レポートは、ログファイルのサイズに応じて、1日または2日ごとに更新する必要があります。一部の大きなログは処理に時間がかかるため、更新の頻度が高すぎると(1時間に1回など)、複数のWebalizerプロセスが同じログファイルで同時に実行され、結果のレポートが破損する可能性があります。
通常、スケジュールされたレポートを設定する前に、Webmin内からログファイルのレポートを少なくとも1回生成して、実際に機能しているかどうかを確認することをお勧めします。それが完了したら、次の手順に従います。
- モジュールのメインページで、ログファイルの名前をクリックします。これにより、図39-2に示すオプションフォームが表示されます。
- スケジュールされたレポートを変更します 生成フィールドを*有効にします。以下で選択する場合もあります*。
- ログファイルを再処理する日時を分から選択します 、時間 、日 、月 および平日 以下のリスト。それぞれについて、すべてを選択できます レポートを1分ごと、1時間ごとなどに生成するか、選択済みを選択できます。 リストから選択した時間または日付でのみWebalizerを実行します。複数のエントリを選択するには、controlキーを押すかShiftキーを押しながらクリックします。また、controlキーを押しながらクリックして、すでに選択されているエントリの選択を解除することもできます。デフォルトでは、ログは毎日深夜に処理されます。スケジュールどおりに生成されている複数のレポートがある場合は、すべてが同時に実行されないように、それらをずらしてみてください。たとえば、2番目のレポートでは、時間として*0*ではなく_1_を選択します。
- 保存をクリックします WebminにレポートのCronジョブを作成させるボタン。これはScheduledCronJobsモジュールで確認できますが、ここで編集できるのは日付と時刻のみです。
ログファイルの通常のレポート生成をオフにするには、無効を選択します スケジュールされたレポートの生成の場合 代わりにフィールド。 Cronジョブは削除されますが、実行するように設定された日時が記憶されるため、簡単に再度有効にできます。
別のログファイルの追加
モジュールはシステム上のすべてのログファイルを自動的に識別しようとしますが、ApacheおよびSquid構成ファイルを読み取ることにより、見逃している可能性があります。これは、Apache WebサーバーまたはSquidプロキシサーバーモジュールが正しくセットアップされていない場合、システムに複数のApacheコピーがインストールされている場合、またはWebサーバーが通常ではなくフィルタープログラムにログを記録するように構成されている場合に発生する可能性があります。ファイル。
FTPサーバーのログファイルからレポートを生成する場合は、WU-FTPdログが自動的に検出されないため、ファイルをモジュールに追加する必要があります。また、Apacheが使用する標準のCLF形式を使用している場合は、Zeus、TUX、Netscape、NSCAなどの他のWebサーバーからログを追加することもできます。それぞれ/var/webmin/miniserv.logと/var/usermin/miniserv.logにあるWebminとUserminによって作成されたログに関するレポートを作成することも可能です。
レポート用のログファイルを手動で追加する手順は次のとおりです。
- モジュールのメインページで、既存のログのテーブルの上または下にある[*分析用の新しいログファイルを追加する*]リンクをクリックします。
- ベースログファイルパス フィールドに、 /usr/local/apache/var/foo.com.logなどのログファイルへのフルパスを入力します 。名前がfoo.com.logで始まる他のログファイルが同じディレクトリに存在する場合 、それらもレポートに含まれます。
- ログファイルタイプから メニューで、 Apacheのいずれかを選択します Webサーバーによって生成されたCLF形式のファイルの場合、 Squid Squidプロキシサーバーからのログの場合、または FTP WU-FTPdからの転送ログ用。
- フォームの残りの部分は、既存のログファイルの場合とまったく同じ方法で入力できます。この章で前述した「レポートオプションの編集」セクションの手順3以降を実行してください。
手動で追加されたログファイルとモジュールによって自動的に検出されたログファイルの違いの1つは、削除の存在です。 ログファイルオプションページの下部にあるボタン。これをクリックすると、メインページのリストからログが削除されますが、レポートとログファイル自体は変更されません。
グローバルオプションの編集
Webalizerには/etc/webalizer.confという名前のマスター構成ファイルがあり、レポートオプションの場合にモジュールによって使用されます。 フィールドがグローバルオプションを使用に設定されている 。 [カスタムオプション]を選択してログごとのファイル構成の初期設定を提供する場合にもコピーされますが、後でグローバルオプションを変更しても、既に独自の構成ファイルを使用しているログには影響しません。
分析が必要なログファイルがシステムに1つしかない場合は、そのログのレポート専用に作成するのではなく、グローバルwebalizer.confファイルのみを使用する方が理にかなっています。また、複数のログファイルのレポートを設定する場合は、最初にグローバルWebalizer構成を編集して、ログごとの構成のコピー元となるテンプレートを提供する必要があります。編集するには、次の手順に従います。
- モジュールのメインページで、グローバルオプションの編集をクリックします。 アイコン。ブラウザには、図39-3のようなオプションフォームが表示されます。
- この章の前半の「レポートオプションの編集」セクションの手順11以降に従って、すべてのレポートの外観を構成します。このフォームのフィールドは、レポートごとのオプションページのフィールドとまったく同じ意味を持っています。
- 保存をクリックします ボタンをクリックして、変更内容で構成ファイルを更新します。
複数のレポートを生成する場合は、それぞれに個別にオプションを設定する方がはるかに理にかなっています。そうすれば、それぞれに異なるWebサーバーのホスト名を設定できるため、各レポートのタイトルとページへのリンクが正しくなります。
Webalizerグローバルオプションモジュールアクセス制御
第52章で説明されているように、ほとんどのモジュールの機能の限られたサブセットにのみアクセスできるWebminユーザーまたはグループを作成できます。 Webalizerモジュールの場合、システム上の一部のログのみのオプションを編集し、レポートを生成する権限をユーザーに付与できます。これは、システムが複数のApache仮想サーバーをホストし、それぞれが異なる人によって所有されている場合に役立ちます。各サーバーに独自のログファイルがある限り、Webminユーザーに仮想サーバーとそのログレポートの両方を管理する権限を与えることができます。
ユーザーにモジュールへのアクセスを許可したら、システム上の一部のログファイルのみにユーザーを制限するための手順は次のとおりです。
- Webmin Usersモジュールで、ユーザー名の横にあるWebalizerLogfileAnalysisをクリックします。これにより、標準のモジュールアクセス制御フォームが表示されます。
- モジュール構成を編集できますか?を変更します いいえへのフィールド 、Webalizerまたはそのグローバル構成ファイルへのパスを変更できないようにします。
- 終了既存のレポートのみを表示できますか? いいえに設定 、ユーザーが所有するログファイルのレポートのオプションを編集できるようにします。
- セットグローバルWebalizerオプションを編集できますか? いいえ 他の人のログに適用される可能性のあるユーザー編集オプションを防ぐため。
- ユーザーフィールドとしてWebalizerを実行 、最後のラジオボタンを選択し、このWebminユーザーが通常ログインするUnixユーザーの名前を入力します。これにより、rootとして生成されるレポートの設定が停止します。これにより、システムファイルや他のユーザーに属するファイルが上書きされる可能性があるため、重大なセキュリティリスクが発生する可能性があります。
- [*下のログのレポートの表示と編集のみを許可する*]フィールドに、ログファイルへのフルパス( /var/log/httpd/example.com.log など)を入力します。 )またはその下にログファイルがあるディレクトリ( /home/example.com/logs など) )。モジュールは、そのディレクトリの外に自動的に検出されたログを非表示にするため、ユーザーは他の人のWebサイトのレポートを設定できません。
- 保存を押します ボタンをクリックして、新しい制限をアクティブにします。
ユーザーがこのように制限されると、モジュールを使用して、allowディレクトリ内のログファイルのみのレポートを設定できるようになります。レポートは、手順5で指定されたUnixユーザーとしてのみ生成されます。これにより、Webminユーザーは、シェルプロンプトでは通常はできないファイルを上書きしなくなります。これにより、信頼できない人がモジュールを安全に使用できるようになりますが、悪意のあるユーザーが、非常に頻繁に実行され、CPU時間を過度に消費するレポート用のCronジョブを設定する可能性があります。
Webalizerログファイル分析モジュールの構成
モジュールがWebalizerプログラムとそのグローバル構成ファイルに使用するパスを設定するには、標準の Module Configからアクセスできるモジュール構成フォームを使用します。 メインページのリンク。クリックすると、次のフィールドを含むフォームが表示されます。
Webalizer構成画面