» Linux ディストリビューション » CentOS » AWStats

アクセスログ解析機能を導入する

 アクセスログ解析機能ソフトウェアの一つである AWStats は、ウェブページへのアクセスログを解析して、統計情報をブラウザで閲覧できる HTML 形式に変換してくれる Perl スクリプトです。 AWStats 以外にもたくさんのソフトウェアがありますが、AWStats は視覚的に見やすくなっているところが特徴です。

 主な統計情報は、月・日・時間ごとのアクセス統計、OS・ブラウザ・アクセス元ドメイン別のアクセス統計などを集計してくれるほか、「どこのページからリンクされてきたのか」、「どこの検索エンジンからどのような検索キーワードで検索されたのか」などの統計情報も集計することができます。


ここでの説明は、パッケージの管理(RPMforge パッケージの導入)、および、ウェブサーバーの構築が完了していることを前提としています。

パッケージのインストール

 アクセスログ解析パッケージは、yum コマンドを使用してインストールします。 なお、AWStats は Perl スクリプトであるため、最新版の Perl パッケージがインストールされているか確認します。

[root@web ~]# yum install awstats


[root@web ~]# which perl

/usr/bin/perl « Perl モジュールがインストール済み

[ CentOS 6 / CentOS 5 ]

パッケージインストール後の設定

 AWStats に関する設定は、パッケージをインストールした段階では、オプション設定ファイルが存在しないため、サンプルファイルを使用してオプション設定ファイルを作成します。 なお、オプション設定ファイルは、サンプルファイルのファイル名を変更します。 また、オプション設定ファイルの改行が Windows 形式(^M)となっている場合には、UNIX 形式の改行に変換します。

(Ex. ホスト名が web、ドメイン名が i2kt.com の場合)

サンプルファイルのファイル名を変更する

[root@web ~]# mv /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats.web.i2kt.com.conf


改行コードを変換する

[root@web ~]# nkf -Lu --overwrite /etc/awstats/awstats.web.i2kt.com.conf


[root@web ~]# vi /etc/awstats/awstats.web.i2kt.com.conf

# "SiteDomain" must contain the main domain name, or the main intranet web
# server name, used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL's links when ShowLinksOnUrl option is set to 1.
# If analyzing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
# ホスト名、ドメイン名の指定
SiteDomain="web.i2kt.com"
          :
        ( 中略 )
          :
# If you want to have hosts reported by name instead of ip address, AWStats
# need to make reverse DNS lookups (if not already done in your log file).
# With DNSLookup to 0, all hosts will be reported by their IP addresses and
# not by the full hostname of visitors (except if names are already available
# in log file).
# If you want/need to set DNSLookup to 1, don't forget that this will reduce
# dramatically AWStats update process speed. Do not use on large web sites.
# Note: Reverse DNS lookup is done on IPv4 only (Enable ipv6 plugin for IPv6).
# Note: Result of DNS Lookup can be used to build the Country report. However
# it is highly recommanded to enable the plugin 'geoip' or 'geoipfree' to
# have an accurate Country report with no need of DNS Lookup.
# Possible values:
# 0 - No DNS Lookup
# 1 - DNS Lookup is fully enabled
# 2 - DNS Lookup is made only from static DNS cache file (if it exists)
# Default: 2
#
# アクセス元をホスト・ドメイン名に変換
DNSLookup=1


# When AWStats updates its statistics, it stores results of its analysis in
# files (AWStats database). All those files are written in the directory
# defined by the "DirData" parameter. Set this value to the directory where
# you want AWStats to save its database and working files into.
# Warning: If you want to be able to use the "AllowToUpdateStatsFromBrowser"
# feature (see later), you need "Write" permissions by web server user on this
# directory (and "Modify" for Windows NTFS file systems).
# Example: "/var/lib/awstats"
# Example: "../data"
# Example: "C:/awstats_data_dir"
# Default: "."          (means same directory as awstats.pl)
#
# スクリプトと同一ディレクトリ内にデータを保存
DirData="."
          :
        ( 中略 )
          :
# Do not include access from clients that match following criteria.
# If your log file contains IP addresses in host field, you must enter here
# matching IP addresses criteria.
# If DNS lookup is already done in your log file, you must enter here hostname
# criteria, else enter ip address criteria.
# The opposite parameter of "SkipHosts" is "OnlyHosts".
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: "127.0.0.1 REGEX[^192¥.168¥.] REGEX[^10¥.]"
# Example: "localhost REGEX[^.*¥.localdomain$]"
# Default: ""
#
# ローカルホスト、内部ネットワークからのアクセスは除外
SkipHosts="127.0.0.1 REGEX[^192¥.168¥.0¥.]";
          :
        ( 中略 )
          :
# Set your primary language (ISO-639-1 language codes).
# Possible values:
#  Albanian=al, Bosnian=ba, Bulgarian=bg, Catalan=ca,
#  Chinese (Taiwan)=tw, Chinese (Simpliefied)=cn, Croatian=hr, Czech=cz,
#  Danish=dk, Dutch=nl, English=en, Estonian=et, Euskara=eu, Finnish=fi,
#  French=fr, Galician=gl, German=de, Greek=gr, Hebrew=he, Hungarian=hu,
#  Icelandic=is, Indonesian=id, Italian=it, Japanese=jp, Korean=ko,
#  Latvian=lv, Norwegian (Nynorsk)=nn, Norwegian (Bokmal)=nb, Polish=pl,
#  Portuguese=pt, Portuguese (Brazilian)=br, Romanian=ro, Russian=ru,
#  Serbian=sr, Slovak=sk, Slovenian=si, Spanish=es, Swedish=se, Turkish=tr,
#  Ukrainian=ua, Welsh=cy.
#  First available language accepted by browser=auto
# Default: "auto"
#
# アクセスログ解析結果表示の日本語化
Lang="jp"
          :
        ( 中略 )
          :
# Choose if you want the week report to start on sunday or monday
# Possible values:
# 0 - Week starts on sunday
# 1 - Week starts on monday
# Default: 1
#
# 週の始まりを日曜日に変更
FirstDayOfWeek=0

[ CentOS 6 / CentOS 5 ]

ウェブサーバーの再起動

 AWStats に関するウェブサーバーのオプション設定ファイルを変更します。

[root@web ~]# vi /etc/httpd/conf.d/awstats.conf

Alias /awstats/icon/ /var/www/awstats/icon/

ScriptAlias /awstats/ /var/www/awstats/
<Directory /var/www/awstats/>
        DirectoryIndex awstats.pl
        Options ExecCGI
        order deny,allow
        deny from all
        # アクセスの許可(内部ネットワークのみ)
        allow from 192.168.0
</Directory>

#Alias /css/ /var/www/awstats/css/
#Alias /js/ /var/www/awstats/js/

 設定を反映するため、ウェブサーバーを再起動します。

[root@web ~]# /etc/rc.d/init.d/httpd restart

httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

[ CentOS 6 / CentOS 5 ]