スポンサードリンク

スポンサードリンク

キーワードに合ったホームページを自動的に作っちゃおうツール

キーワードに合ったホームページを自動的に作っちゃおうツール

最新版のダウンロードはこちら↓
EXCEL版
BlogHPEditTool.exe

※実行ファイル版を作成中の為、
 今後、修正やバージョンアップはありません。m(__)m

EXCEL版の最新版の説明はこちら

最新情報 (RSS)

ご意見・ご感想などはこちらにコメントくださいm(__)m

キーワードに合ったホームページを自動的に作っちゃおうツール

CentOS 5.1 AWstatsでアクセス解析

さて前回は、ApacheでWebサーバの構築をしました

今回はAWstatsでアクセス解析構築です


前回「CentOS 5.1 ApacheでWebサーバ



サイトを構築したら
どのようなアクセスが来ているか
気になりますよねぇ〜



と、いう訳で

AWstatsというアクセス解析を導入します



まず
必要になるリポジトリのインストール

前に
Clam AntiVirus を導入している方や
chkrootkit を導入している方は
もうすでにリポジトリはインストールされているので
今回は必要ありません

CentOS 5.1 Clam AntiVirusでウィルス対策
CentOS 5.1 rootkit検知ツール(chkrootkit)の導入



とりあえず
リポジトリのインストールを。。。



リポジトリのダウンロード

# wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm




リポジトリのインストール

# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm




ダウンロードしたリポジトリの削除

# rm -f rpmforge-release-0.3.6-1.el5.rf.i386.rpm




基本リポジトリとのパッケージ競合を避けるために
デフォルトは無効

# vi /etc/yum.repos.d/rpmforge.repo




# Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag
# URL: http://rpmforge.net/

[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
↓変更
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1




AWstats のインストール

# yum -y --enablerepo=rpmforge install awstats



Loading "installonlyn" plugin
Loading "fastestmirror" plugin
Loading "downloadonly" plugin
Setting up Install Process
Setting up repositories
rpmforge 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 2.3 MB 00:03
################################################## 6714/6714
primary.xml.gz 100% |=========================| 210 kB 00:01
################################################## 381/381
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for awstats to pack into transaction set.
awstats-6.7-1.el5.rf.noar 100% |=========================| 105 kB 00:01
---> Package awstats.noarch 0:6.7-1.el5.rf set to be updated
--> Running transaction check
--> Processing Dependency: perl(LWP::UserAgent) for package: awstats
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-libwww-perl to pack into transaction set.
perl-libwww-perl-5.805-1. 100% |=========================| 21 kB 00:00
---> Package perl-libwww-perl.noarch 0:5.805-1.1.1 set to be updated
--> Running transaction check
--> Processing Dependency: perl-HTML-Parser >= 3.33 for package: perl-libwww-perl
--> Processing Dependency: perl(Compress::Zlib) for package: perl-libwww-perl
--> Processing Dependency: perl(HTML::Entities) for package: perl-libwww-perl
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-HTML-Parser to pack into transaction set.
perl-HTML-Parser-3.56-1.e 100% |=========================| 7.2 kB 00:00
---> Package perl-HTML-Parser.i386 0:3.56-1.el5.rf set to be updated
---> Downloading header for perl-Compress-Zlib to pack into transaction set.
perl-Compress-Zlib-1.42-1 100% |=========================| 5.1 kB 00:00
---> Package perl-Compress-Zlib.i386 0:1.42-1.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: perl(HTML::Tagset) for package: perl-HTML-Parser
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-HTML-Tagset to pack into transaction set.
perl-HTML-Tagset-3.20-1.e 100% |=========================| 3.1 kB 00:00
---> Package perl-HTML-Tagset.noarch 0:3.20-1.el5.rf set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
awstats noarch 6.7-1.el5.rf rpmforge 1.1 M
Installing for dependencies:
perl-Compress-Zlib i386 1.42-1.fc6 base 52 k
perl-HTML-Parser i386 3.56-1.el5.rf rpmforge 146 k
perl-HTML-Tagset noarch 3.20-1.el5.rf rpmforge 14 k
perl-libwww-perl noarch 5.805-1.1.1 base 376 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 1.7 M
Downloading Packages:
(1/5): perl-libwww-perl-5 100% |=========================| 376 kB 00:01
(2/5): perl-HTML-Parser-3 100% |=========================| 146 kB 00:01
(3/5): awstats-6.7-1.el5. 100% |=========================| 1.1 MB 00:03
(4/5): perl-Compress-Zlib 100% |=========================| 52 kB 00:00
(5/5): perl-HTML-Tagset-3 100% |=========================| 14 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: perl-HTML-Tagset ######################### [1/5]
Installing: perl-HTML-Parser ######################### [2/5]
Installing: perl-Compress-Zlib ######################### [3/5]
Installing: perl-libwww-perl ######################### [4/5]
Installing: awstats ######################### [5/5]

Installed: awstats.noarch 0:6.7-1.el5.rf
Dependency Installed: perl-Compress-Zlib.i386 0:1.42-1.fc6 perl-HTML-Parser.i386
0:3.56-1.el5.rf perl-HTML-Tagset.noarch 0:3.20-1.el5.rf perl-libwww-perl.noarch
0:5.805-1.1.1
Complete!



AWstats を使うのに
perl-HTML-Tagset、perl-HTML-Parser、perl-Compress-Zlib、perl-libwww-perl
もインストールされました

まぁこんなんでインストール終了です





では、設定です

まず、不要なファイルを削除

# rm -f /etc/awstats/awstats.localhost.localdomain.conf




でもって、設定をサンプルからコピー
※ファイル名には特に意味はなく、 バーチャルドメイン名でもOK
 awstats.abc.jp.conf など awstats.○○.conf と、言う具合に
 ○○には何でもよい
 このブログの設定の場合
 バーチャルホスト全体のアクセスを見るので vhost としている

# cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.vhost.conf




コピーしたファイルを編集

# vi /etc/awstats/awstats.vhost.conf



# AWSTATS CONFIGURE FILE 6.6
#-----------------------------------------------------------------------------
# Copy this file into awstats.www.mydomain.conf and edit this new config file
# to setup AWStats (See documentation in docs/ directory).
# The config file must be in /etc/awstats, /usr/local/etc/awstats or /etc (for
# Unix/Linux) or same directory than awstats.pl (Windows, Mac, Unix/Linux...)
# To include an environment variable in any parameter (AWStats will replace
# it with its value when reading it), follow the example:
# Parameter="__ENVNAME__"
# Note that environment variable AWSTATS_CURRENT_CONFIG is always defined with
# the config value in an AWStats running session and can be used like others.
#-----------------------------------------------------------------------------
# $Revision: 1.327 $ - $Author: eldy $ - $Date: 2006/04/21 22:28:49 $



#-----------------------------------------------------------------------------
# MAIN SETUP SECTION (Required to make AWStats work)
#-----------------------------------------------------------------------------

# "LogFile" contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: "/var/log/apache/access.log"
# Example: "../logs/mycombinedlog.log"
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
# %YYYY-n is replaced with 4 digits year we were n hours ago
# %YY-n is replaced with 2 digits year we were n hours ago
# %MM-n is replaced with 2 digits month we were n hours ago
# %MO-n is replaced with 3 letters month we were n hours ago
# %DD-n is replaced with day we were n hours ago
# %HH-n is replaced with hour we were n hours ago
# %NS-n is replaced with number of seconds at 00:00 since 1970
# %WM-n is replaced with the week number in month (1-5)
# %Wm-n is replaced with the week number in month (0-4)
# %WY-n is replaced with the week number in year (01-52)
# %Wy-n is replaced with the week number in year (00-51)
# %DW-n is replaced with the day number in week (1-7, 1=sunday)
# use n=24 if you need (1-7, 1=monday)
# %Dw-n is replaced with the day number in week (0-6, 0=sunday)
# use n=24 if you need (0-6, 0=monday)
# Use 0 for n if you need current year, month, day, hour...
# Example: "/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
# You can also use a pipe if log file come from a pipe :
# Example: "gzip -d </var/log/apache/access.log.gz |"
# If there are several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#

解析するログファイル
LogFile="/var/log/httpd/access_log"
↓変更(バーチャルホストのアクセスログを指定)
LogFile="/var/log/httpd/vhost-access_log"

参照:
前回「CentOS 5.1 ApacheでWebサーバ


# Enter the log file type you want to analyze.
# Possible values:
# W - For a web log file
# S - For a streaming log file
# M - For a mail log file
# F - For a ftp log file
# Example: W
# Default: W
#

ログタイプ
LogType=W


# Enter here your log format (Must match your web server config. See setup
# instructions in documentation to know how to configure your web server to
# have the required log format).
# Possible values: 1,2,3,4 or "your_own_personalized_log_format"
# 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 - IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 - Webstar native log format.
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
# With LogFormat=4, some features (browsers, os, keywords...) can't work.
# "your_own_personalized_log_format" = If your log is ftp, mail or other format,
# you must use following keys to define the log format string (See FAQ for
# ftp, mail or exotic web log format examples):
# %host Client hostname or IP address (or Sender host for mail log)
# %host_r Receiver hostname or IP address (for mail log)
# %lognamequot Authenticated login/user with format: "john"
# %logname Authenticated login/user with format: john
# %time1 Date and time with format: [dd/mon/yyyy:hh:mm:ss +0000] or [dd/mon/yyyy:hh:mm:ss]
# %time2 Date and time with format: yyyy-mm-dd hh:mm:ss
# %time3 Date and time with format: Mon dd hh:mm:ss or Mon dd hh:mm:ss yyyy
# %time4 Date and time with unix timestamp format: dddddddddd
# %methodurl Method and URL with format: "GET /index.html HTTP/x.x"
# %methodurlnoprot Method and URL with format: "GET /index.html"
# %method Method with format: GET
# %url URL only with format: /index.html
# %query Query string (used by URLWithQuery option)
# %code Return code status (with format for web log: 999)
# %bytesd Size of document in bytes
# %refererquot Referer page with format: "http://from.com/from.htm"
# %referer Referer page with format: http://from.com/from.htm
# %uabracket User agent with format: [Mozilla/4.0 (compatible, ...)]
# %uaquot User agent with format: "Mozilla/4.0 (compatible, ...)"
# %ua User agent with format: Mozilla/4.0_(compatible...)
# %gzipin mod_gzip compression input bytes: In:XXX
# %gzipout mod_gzip compression output bytes & ratio: Out:YYY:ZZpct.
# %gzipratio mod_gzip compression ratio: ZZpct.
# %deflateratio mod_deflate compression ratio with format: (ZZ)
# %email EMail sender (for mail log)
# %email_r EMail receiver (for mail log)
# %virtualname Web sever virtual hostname. Use this tag when same log
# contains data of several virtual web servers. AWStats
# will discard records not in SiteDomain nor HostAliases
# %cluster If log file is provided from several computers (merged by
# logresolvemerge.pl), use this to define cluster id field.
# %extraX Another field that you plan to use for building a
# personalized report with ExtraSection feature (See later).
# If your log format has some fields not included in this list, use:
# %other Means another not used field
# %otherquot Means another not used double quoted field
#
# Examples for Apache combined logs (following two examples are equivalent):
# LogFormat = 1
# LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
#
# Example for IIS:
# LogFormat = 2
#

ログフォーマット
LogFormat=1
↓変更(ログフォーマットをバーチャルホスト全体用に変更)
LogFormat= "your_own_personalized_log_format"
LogFormat= "%host %other %logname %time1 %url %code %bytesd %refererquot %uaquot"

参照:
前回「CentOS 5.1 ApacheでWebサーバ


# If your log field's separator is not a space, you can change this parameter.
# This parameter is not used if LogFormat is a predefined value (1,2,3,4)
# Backslash can be used as escape character.
# Example: " "
# Example: "\t"
# Example: "\|"
# Example: ","
# Default: " "
#

LogSeparator=" "


# "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"
#

Webサーバー名を指定
SiteDomain="localhost.localdomain"
↓変更(適当に)
SiteDomain="vhost"


# Enter here all other possible domain names, addresses or virtual host
# aliases someone can use to access your site. Try to keep only the minimum
# number of possible names/addresses to have the best performances.
# You can repeat the "SiteDomain" value in this list.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Note: You can also use @/mypath/myfile if list of aliases are in a file.
# Example: "www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]"
#

アクセスが自サーバー内なのか、判断する為に使用するドメインなど
HostAliases="localhost 127.0.0.1"
↓変更(適当に?)
HostAliases="localhost 127.0.0.1 REGEX[\.(aaa.jp|bbb.com)$]"
※REGEX[ ] は正規表現を入力する為のもので
 REGEX[\.(aaa.jp|bbb.com)$]
 と、書く事によって aaa.jp と bbb.com のサブドメインからの
 アクセスが自サーバーからのアクセスとみなされます。
 (たぶんこれでイケるはず。。。)

 参照:使うほどに良さが分かる正規表現(2/2)


# 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 'geoipfree' or 'geoip' 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
#

アクセス元の名前解決を行う(アクセス元をIPアドレスではなくホスト名で表示する)
DNSLookup=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="/var/www/awstats"


# Relative or absolute web URL of your awstats icon directory.
# If you build static reports ("... -output > outputpath/output.html"), enter
# path of icon directory relative to the output directory 'outputpath'.
# Example: "/awstatsicons"
# Example: "../icon"
# Default: "/icon" (means you must copy icon directories in "/mywwwroot/icon")
#

解析データを表示するためのアイコンがあるディレクトリ
DirIcons="/awstats/icon"


# When this parameter is set to 1, AWStats adds a button on report page to
# allow to "update" statistics from a web browser. Warning, when "update" is
# made from a browser, AWStats is run as a CGI by the web server user defined
# in your web server (user "nobody" by default with Apache, "IUSR_XXX" with
# IIS), so the "DirData" directory and all already existing history files
# awstatsMMYYYY[.xxx].txt must be writable by this user. Change permissions if
# necessary to "Read/Write" (and "Modify" for Windows NTFS file systems).
# Warning: Update process can be long so you might experience "time out"
# browser errors if you don't launch AWStats frequently enough.
# When set to 0, update is only made when AWStats is run from the command
# line interface (or a task scheduler).
# Possible values: 0 or 1
# Default: 0
#

ページに「更新」ボタンを表示する(表示:1/非表示:0)
AllowToUpdateStatsFromBrowser=0


# AWStats saves and sorts its database on a month basis (except if using
# databasebreak option from command line).
# However, if you choose the -month=all from command line or
# value '-Year-' from CGI combo form to have a report for all year, AWStats
# needs to reload all data for full year (each month), and sort them,
# requiring a large amount of time, memory and CPU. This might be a problem
# for web hosting providers that offer AWStats for large sites, on shared
# servers, to non CPU cautious customers.
# For this reason, the 'full year' is only enabled on Command Line by default.
# You can change this by setting this parameter to 0, 1, 2 or 3.
# Possible values:
# 0 - Never allowed
# 1 - Allowed on CLI only, -Year- value in combo is not visible
# 2 - Allowed on CLI only, -Year- value in combo is visible but not allowed
# 3 - Possible on CLI and CGI
# Default: 2
#

年表示を。。。ん?
AllowFullYearView=2


〜省略〜


#-----------------------------------------------------------------------------
# OPTIONAL SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------



〜省略〜


#-----------------------------------------------------------------------------
# OPTIONAL ACCURACY SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------



〜省略〜


#-----------------------------------------------------------------------------
# OPTIONAL APPEARANCE SETUP SECTION (Not required but increase AWStats features)
#-----------------------------------------------------------------------------



〜省略〜


# Each URL, shown in stats report views, are links you can click.
# Possible values: 0 or 1
# Default: 1
#
アクセスがあったアドレスをリンクにする(LinkOn:1/LinkOff:0)
ShowLinksOnUrl=1
↓変更
ShowLinksOnUrl=0
バーチャルホスト全体のアクセス解析の為
ドメインが異なり、リンクのアドレスがずれるので
リンクとしない


〜省略〜


#-----------------------------------------------------------------------------
# PLUGINS
#-----------------------------------------------------------------------------



〜省略〜


# Plugin: GeoIPfree
# Perl modules required: Geo::IPfree version 0.2+ (from Graciliano M.P.)
# Country chart is built from an Internet IP-Country database.
# This plugin is useless for intranet only log files.
# Note: You must choose between using this plugin (need Perl Geo::IPfree
# module, database less up to date) or the GeoIP plugin (need Perl Geo::IP
# module from Maxmind, database more up to date).
# Note: Activestate provide a corrupted version of Geo::IPfree 0.2 Perl
# module, so install it from elsewhere (from www.cpan.org for example).
# This plugin reduces AWStats speed of 10% !
#
#LoadPlugin="geoipfree"

↓変更(コメントアウト)アクセス元国情報を詳細に取得
LoadPlugin="geoipfree"


〜省略〜








AWstats の設定で、
プラグインを有効にしましたが
その機能を使うために
perl モジュールをインストールします


まず、Perlモジュールパッケージ管理システム(cpan2rpm)を
インストールして管理を簡単にします



ダウンロードしたRPMパッケージの改竄チェックに使用するGPGキーインポート

# rpm --import http://perl.arix.com/cpan2rpm/gpg.pub.asc




cpan2rpm をダウンロード

# wget http://perl.arix.com/ftp/cpan2rpm-2.028-1.noarch.rpm


perl stuff
最新版はこちらをチェック→cpan2rpmダウンロード


cpan2rpm をインストール

# rpm -Uvh cpan2rpm-2.028-1.noarch.rpm
準備中... ########################################### [100%]
1:cpan2rpm ########################################### [100%]






では必要な perl モジュールをインストールしましょう

必要なモジュール

Geo::IPfree

だけです。。。

perl モジュール Geo::IPfree のインストール

# cpan2rpm --install Geo::IPfree

Installing package
準備中... ########################################### [100%]
1:perl-Geo-IPfree ########################################### [100%]
-- Done --





インストールが失敗した場合

Tarball extraction: [/usr/src/redhat/SOURCES/Geo-IPfree-0.2.tar.gz]

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: 処理中にエラーが起きましたが、最後まで処理してからエラー終了させました
system tar -x --directory /tmp/EbSkoprsHL -z -f /usr/src/redhat/SOURCES/Geo-IPfree-0.2.tar.gz
failed: 512 at /usr/bin/cpan2rpm line 1259.
-- Done --




このような表示が出て
インストールできなかった場合
下記を実行

/usr/src/redhat/SRPMS/ 内を全て削除

# rm -f /usr/src/redhat/SRPMS/*



/usr/src/redhat/SPECS/ 内を全て削除

# rm -f /usr/src/redhat/SPECS/*



/usr/src/redhat/SOURCES/ 内を全て削除

# rm -f /usr/src/redhat/SOURCES/*



/usr/src/redhat/RPMS/i386/ 内を全て削除

# rm -f /usr/src/redhat/RPMS/i386/*



そして、もう一度インストール


# cpan2rpm --no-sign --install Geo::IPfree


今度は "--no-sign" オプションが付きます


これでインストール出来るはず。。。





次に編集するのは
検索エンジンに対応するためのファイルです


# vi /var/www/awstats/lib/search_engines.pm




※ ","(コンマ)は設定の区切りとして使われるので
 設定の最後に追加する場合、もとの最終行の一番後ろに
 "," を追加し、そのしたの行に下記の設定を追加する。
 逆に設定の一番上に追加する場合は
 追加する設定の最終行の一番右に "," を追加



@SearchEnginesSearchIDOrder_list1=(
※追加
# Japanese Search Engines
'google\.co\.jp',
'66\.249\.(89\.99|93\.104)',
'66\.102\.(7\.99|7\.104|9\.104|11\.104)',
'64\.233\.(161\.104|179\.104|167\.104|183\.104|187\.104)',
'72\.14\.(203|205|207|209|221|235|253)\.104',
'216\.239\.(37\.104|39\.104|41\.104|51\.104|57\.104|59\.104)',
'search\.biglobe\.ne\.jp',
'goo\.ne\.jp',
'nifty\.com',
'search\.msn\.co\.jp',
'search\.odn\.ne\.jp',
'excite\.ne\.jp',
'naver\.co\.jp',
'fresheye\.com',
'tocc\.co\.jp',
'infoseek\.co\.jp',
'cache\.yahoofs\.jp',
'search\.livedoor\.com',
'www\.ceek\.jp',
'72\.14\.207\.99',
'209\.85\.165\.104',
'209\.85\.129\.104',
'209\.85\.(173|175)\.104',


%NotSearchEnginesKeys=(
※追加
# For Japanese Search Engines
'infoseek\.co\.jp'=>'at\.infoseek\.co\.jp',
'goo\.ne\.jp'=>'members\.goo\.ne\.jp',


%SearchEnginesHashID = (
※追加
# Japanese Search Engines
'google\.co\.jp','googlejapan',
'66\.249\.(89\.99|93\.104)','googlejapan',
'66\.102\.(7\.99|7\.104|9\.104|11\.104)','googlejapan',
'64\.233\.(161\.104|179\.104|167\.104|183\.104|187\.104)','googlejapan',
'72\.14\.(203|205|207|209|221|235|253)\.104','googlejapan',
'216\.239\.(37\.104|39\.104|41\.104|51\.104|57\.104|59\.104)','googlejapan',
'search\.biglobe\.ne\.jp','biglobe',
'goo\.ne\.jp','goo',
'nifty\.com','nifty',
'search\.msn\.co\.jp','msnjapan',
'search\.odn\.ne\.jp','odn',
'excite\.co\.jp','excitejapan',
'naver\.co\.jp','naver',
'fresheye\.com','fresheye',
'tocc\.co\.jp','tocc',
'infoseek\.co\.jp','infoseek',
'cache\.yahoofs\.jp','yahoocache',
'search\.livedoor\.com','livedoor',
'www\.ceek\.jp','ceek',
'72\.14\.207\.99','googlejapan',
'209\.85\.165\.104','googlejapan',
'209\.85\.129\.104','googlejapan',
'209\.85\.(173|175)\.104','googlejapan',


%SearchEnginesKnownUrl=(
※追加
# Japanese Search Engines
'googlejapan','(p|q)=',
'biglobe','q=',
'goo','MT=',
'nifty','Text=',
'msnjapan','(q|MT)=',
'odn','Querystring=',
'excitejapan','search=',
'naver','query=',
'fresheye','kw=',
'tocc','QRY=',
'infoseek','qt=',
'yahoocache','w=',
'livedoor','q=',
'ceek','q=',
'clusty','query=',


@WordsToCleanSearchUrl= ('act=','annuaire=','btng=','cat=','categoria=','cfg=','cof=',
'cou=','count=','cp=','dd=','domain=','dt=','dw=','enc=','exec=','geo=','hc=','height=',
'hits=','hl=','hq=','hs=','id=','kl=','lang=','loc=','lr=','matchmode=','medor=',
'message=','meta=','mode=','order=','page=','par=','pays=','pg=','pos=','prg=','qc=',
'refer=','sa=','safe=','sc=','sort=','src=','start=','style=','stype=','sum=','tag=',
'temp=','theme=','type=','url=','user=','width=','what=','\\.x=','\\.y=','y=','look=');
↓変更(複数行に分けていますが、本来1行です)
@WordsToCleanSearchUrl= ('act=','annuaire=','btng=','cat=','categoria=','cfg=','cof=',
'cou=','count=','cp=','dd=','domain=','dt=','dw=','enc=','exec=','geo=','hc=','height=',
'hits=','hl=','hq=','hs=','id=','kl=','lang=','loc=','lr=','matchmode=','medor=',
'message=','meta=','mode=','order=','page=','par=','pays=','pg=','pos=','prg=','qc=',
'refer=','sa=','safe=','sc=','sort=','src=','start=','style=','stype=','sum=','tag=',
'temp=','theme=','type=','url=','user=','width=','what=','\\.x=','\\.y=','y=','look=',
'target=','collection=','showSummary=','perPage=','next=','DB=','OPE=','Max=','base=',
'submit=','SearchType=','SESSIONID=','QUERYRULE=','DISPLAYMIN=','RELURLSWITCH=','SORT=',
'start=','direct=','relwd=','lk=','svx=','nh=','internet=','DC=','submit0=','DEST=',
'where=','CCM=','NRS=','UNI=','UD0=','FRS=','sv=','rf=','oq=','col=','act\.search='
);


%SearchEnginesHashLib=(
※追加
# Japanese Search Engines
'googlejapan','Google Japan',
'biglobe','Biglobe',
'goo','Goo',
'nifty','Nifty',
'msnjapan','MSN Japan',
'odn','ODN',
'excitejapan','Excite Japan',
'naver','Naver',
'fresheye','Fresheye',
'tocc','TOCC/Search',
'infoseek','Infoseek',
'yahoocache','Yahoo Cache',
'livedoor','Livedoor',
'ceek','CEEK.JP',




修正した内容が正しいかの確認

# perl -c /var/www/awstats/lib/search_engines.pm
/var/www/awstats/lib/search_engines.pm syntax OK


"syntax OK" と出ればOKです





次に編集するのは
Apache の AWstats用コンフィグファイルです


# 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 127.0.0.1
↓変更
allow from all
</Directory>

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



Apache コンフィグファイルの再読込

# service httpd reload
httpd を再読み込み中: [ OK ]







AWstats データベース作成

# vi /root/awstatsinit.sh



#!/bin/sh

logfile=`grep ^LogFile /etc/awstats/awstats.$1.conf|sed -e 's/LogFile="\([^ ]*\)"/\1/p' -e d`
for log in `ls $logfile*|sort -r`
do
`rpm -ql awstats|grep "awstats\.pl"` \
-config=$1 -update -logfile=$log
done



データベース作成
Apache のログを過去の分まで全て取り込む

AWstats のコンフィグファイルの名前を指定
(awstats.○○.conf の○○の部分)

# vi /root/awstatsinit.sh vhost


※ログの量によって時間がかかります





ログがおかしい、
データベースを初期化したい、
って時は

作成した AWstats のコンフィグファイル内の

この部分

DirData="/var/www/awstats"

DirData で指定されたディレクトリに
データファイルがあるので全て削除

削除するファイルは

awstats.○○.conf の○○の部分がファイル名内にあるので
関係ありそうなテキストファイルを削除する

awstats000000.vhost.bak
awstats000000.vhost.txt
dnscachelastupdate.vhost.txt

000000 ← 日付

次に Apache のログを過去分から全て削除

これで、もう一度 AWstats のデータベースを構築すればOK





次にApache のログローテーションの設定
/etc/logrotate.d/httpd を編集

# vi /etc/logrotate.d/httpd



ログファイルの切り替えが行われる時に
AWstats のデータベースに取り込んでもらうようにする

/var/log/httpd/*log {
missingok
notifempty
sharedscripts
追加(ここから)
prerotate
`rpm -ql awstats|grep "awstats_updateall\.pl"` now -confdir="/etc/awstats" \
-awstatsprog="`rpm -ql awstats|grep "awstats\.pl"`" >/dev/null
endscript
追加(ここまで)
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}







ここまで出来れば
統計ページが表示できます

http://サーバーのIPアドレス/awstats/awstats.pl?config=vhost





次に、
アクセス統計ページをHTMLファイルにします

上記のURLでは、
アクセスするたびに
統計ページを作成するためサーバーに負担がかかります
なので、定期的にHTMLして負荷をなくします


HTMLファイル出力ディレクトリを作成

# mkdir /www/default/awstatsreport



HTMLファイル出力ディレクトリアクセス設定ファイル作成

# vi /etc/httpd/conf.d/awstatsreport.conf



Alias /awstatsreport "/www/default/awstatsreport"

<Location "/awstatsreport">


Order deny,allow
Deny from all
Allow from 127.0.0.1
※追加
Allow from 192.168.1 ← ローカルネットワークを指定
</Location>





awstats.pl に対してのアクセスを制御

# 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 127.0.0.1 前回編集した箇所
allow from all
</Directory>

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


※追加
<Files "awstats.pl">
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1
</Files>





Apache コンフィグファイルの再読込

# service httpd reload
httpd を再読み込み中: [ OK ]





HTMLファイル作成スクリプトの作成

# vi /root/awstatsreport.sh



#!/bin/bash

site=$1
dir=$2

reportbuild() {
# AWStatsデータベース更新中断時ロックファイル残存対処(ここから)
if [ -f /tmp/awstats.$site.lock ]; then
ps -p `cat /tmp/awstats.$site.lock |awk '{print $6}'`
if [ $? -ne 0 ]; then
echo /tmp/awstats.$site.lock removed >&2
rm -f /tmp/awstats.$site.lock
fi
fi
# AWStatsデータベース更新中断時ロックファイル残存対処(ここまで)
`rpm -ql awstats|grep "awstats_buildstaticpages\.pl"` \
-awstatsprog="`rpm -ql awstats|grep "awstats\.pl"`"\
-config=$site -update -lang=jp -dir=$dir \
-year=$YEAR -month=$MONTH -builddate=$YEAR$MONTH
if [ "$YEAR$MONTH" = $(date +%Y%m) ]; then
mv $dir/awstats.$site.$YEAR$MONTH.html $dir/index.html
else
mv $dir/awstats.$site.$YEAR$MONTH.html $dir/$YEAR$MONTH.html
fi
}

ls $dir/* > /dev/null 2>&1
if [ $? -eq 0 ]; then
YEAR=`date --date '1 days ago' +%Y`
MONTH=`date --date '1 days ago' +%m`
reportbuild
else
DirData=`grep ^DirData /etc/awstats/awstats.model.conf|awk -F= '{print $2}'|tr -d \"`
for log in `ls $DirData/awstats*.$site.txt`
do
YEAR=`echo $log|cut -d / -f 5|cut -d . -f 1|sed -e 's/awstats..\([^ ]*\)/\1/p' -e d`
MONTH=`echo $log|cut -d / -f 5|cut -d . -f 1|sed -e 's/awstats\([^ ]*\)..../\1/p' -e d`
reportbuild
done
fi





作成したスクリプトに実行権をつけます

# chmod 700 /root/awstatsreport.sh




HTMLファイル作成スクリプトを実行

# /root/awstatsreport.sh vhost /www/default/awstatsreport





スクリプトが正常に終了すれば

http://サーバーのIPアドレス/awstatsreport/

このアドレスでアクセス統計が表示されます





最後に
HTMLファイル作成スクリプトを
cron に登録して終了です


# crontab -e




05 00 * * * /root/awstatsreport.sh vhost /www/default/awstatsreport > /dev/null



これで毎日 0時5分に自動実行されます


この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

キーワードに合ったホームページを自動的に作っちゃおうツール

キーワードに合ったホームページを自動的に作っちゃおうツール

最新版のダウンロードはこちら↓
EXCEL版
BlogHPEditTool.exe

※実行ファイル版を作成中の為、
 今後、修正やバージョンアップはありません。m(__)m

EXCEL版の最新版の説明はこちら

最新情報 (RSS)

ご意見・ご感想などはこちらにコメントくださいm(__)m

キーワードに合ったホームページを自動的に作っちゃおうツール