>> HOME >> CentOS 4 MENU >> Apacheアクセスログ解析(AWStats)
Awstats とは非常に格好良く、かつ優れた Webアクセスを解析するソフトです。ログ解析は Webalizer で十分だったのですが、Awstats の方が性能がいいという噂ですので、導入し、Webサイトへのアクセス統計を Webブラウザから参照できるようにします。

1. AWStats インストール
2. AWStats 設定
1 ) AWStats プロファイル /etc/awstats/awstats.mountainbigroad.jp.conf の作成・編集
2 ) 日本の検索エンジンが検索エンジンとして集計されるように設定
3 ) レポートの日付が、「月 11月 2004」となっている為、awstats.pl を修正し正しく表示されるように設定
3. Apache の設定
1 ) Apache の AWStats アクセス設定ファイル /etc/httpd/conf.d/awstats.conf の編集
2 ) Apache への設定反映
4. AWStats データベースの作成/更新
1 ) Apache のログを utf-8 にデコード
2 ) AWStats データベースの作成/更新
5. アクセスログの自動集計(本格運用のための設定)
1 ) 閲覧用レポートのディレクトリ作成
2 ) 閲覧用レポート自動生成シェルスクリプトを作成
3 ) 閲覧用レポート自動生成シェルスクリプトの実行
4 ) スケジューラ(cron)への登録
5 ) /etc/cron.hourly/awstats の削除
1. AWStats インストール
[root@linux ~]# yum -y install awstats 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
dries                     100% |=========================|  951 B    00:00
dag                       100% |=========================| 1.1 kB    00:00
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
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.5-1.2.el4.rf.no 100% |=========================|  75 kB    00:00
---> Package awstats.noarch 0:6.5-1.2.el4.rf set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 awstats                 noarch     6.5-1.2.el4.rf   dries             1.0 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 1.0 M
Downloading Packages:
(1/1): awstats-6.5-1.2.el 100% |=========================| 1.0 MB    00:03
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: awstats                      ######################### [1/1]

Installed: awstats.noarch 0:6.5-1.2.el4.rf
Complete!
2. AWStats 設定
1 ) AWStats プロファイル /etc/awstats/awstats.mountainbigroad.jp.conf の作成・編集
[root@linux ~]# cp -p /etc/awstats/awstats.model.conf /etc/awstats/awstats.mountainbigroad.jp.conf 

[root@linux ~]# vi /etc/awstats/awstats.mountainbigroad.jp.conf 

  :
  :
# "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 is several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#
# apacheのアクセスログの場所
# 検索系サイトよりキーワードで検索されてきた場合、文字化が発生することがあります。
# これは、AWStats が utf-8 で作られているものの、キーワードが euc でログに出力される為に発生します。
# 対応として、apacheのアクセスログを utf-8にデコードした後に集計を行うようにします。
# access_log.utf8は一時的にデコードしたログを保存するファイルの名前です。
LogFile="/var/log/httpd/access_log.utf8"

  :
  :
# "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 analysing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
# ドメイン名を指定
SiteDomain="mountainbigroad.jp"

  :
  :
# 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
#
# アクセス元の名前解決を行う
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 adresses in host field, you must enter here
# matching IP adresses 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: ""
#
# ローカルとLAN内(192.168.1.*)のアクセスは除外
SkipHosts="127.0.0.1 REGEX[^192\.168\.1\.]"

  :
  :
# Set your primary language (ISO-639-1 language codes).
# Possible value:
#  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 start on sunday
# 1 - Week start on monday
# Default: 1
#
# 週の始めを日曜日にする
FirstDayOfWeek=0

  :
  :
2 ) 日本の検索エンジンが検索エンジンとして集計されるように設定
[root@linux ~]# vi /var/www/awstats/lib/search_engines.pm 

  :
 :

# SearchEnginesSearchIDOrder
# It contains all matching criteria to search for in log fields. This list is
# used to know in which order to search Search Engines IDs.
# Most frequent one are in list1, used when LevelForSearchEnginesDetection is 1 or more
# Minor robots are in list2, used when LevelForSearchEnginesDetection is 2 or more
# Note: Regex IDs are in lower case and ' ' and '+' are changed into '_'
#------------------------------------------------------------------------------
@SearchEnginesSearchIDOrder_list1=(
# 以下を追加
# Japanese Search Engines
'google\.co\.jp',
'66\.249\.(89\.99|93\.104)',
'66\.102\.(7\.104|9\.104|11\.104)',
'64\.233\.(161\.104|179\.104|167\.104|183\.104|187\.104)',
'72\.14\.(203|207|209|221|235)\.104',
'216\.239\.(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',
'ask\.jp',
'search\.livedoor\.com',
'www\.ceek\.jp',
 :
 :

# NotSearchEnginesKeys
# If a search engie key is found, we check its exclude list to know if it's
# really a search engine
#------------------------------------------------------------------------------
%NotSearchEnginesKeys=(
# 以下を追加
# For Japanese Search Engines
'infoseek\.co\.jp'=>'at\.imfoseek\.co\.jp',
'goo\.ne\.jp'=>'members\.goo\.ne\.jp',
 :
 :

# SearchEnginesHashID
# Each Search Engine Search ID is associated to an AWStats id string
#------------------------------------------------------------------------------
%SearchEnginesHashID = (
# 以下を追加
# Japanese Search Engines
'google\.co\.jp','googlejapan',
'66\.249\.(89\.99|93\.104)',,'googlejapan',
'66\.102\.(7\.104|9\.104|11\.104)','googlejapan',
'64\.233\.(161\.104|179\.104|167\.104|183\.104|187\.104)','googlejapan',
'72\.14\.(203|207|209|221|235)\.104','googlejapan',
'216\.239\.(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',
'ask\.jp','askjapan',
'search\.livedoor\.com','livedoor',
'www\.ceek\.jp','ceek',
 :
 :

# SearchEnginesKnownUrl
# Known rules to extract keywords from a referrer search engine URL
#------------------------------------------------------------------------------
%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=',
'askjapan','q=',
'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=', '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
# List of search engines names
# 'search_engine_id', 'search_engine_name',
#------------------------------------------------------------------------------
%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',
'askjapan','Ask Jeeves Japan',
'livedoor','Livedoor',
'ceek','CEEK.JP',
 :
 :
3 ) レポートの日付が、「月 11月 2004」となっている為、awstats.pl を修正し正しく表示されるように設定
[root@linux ~]# vi /var/www/awstats/awstats.pl 

# 7701行目付近
            else {
                print ">span style=\"font-size: 14px;\"<";
                if ($MonthRequired eq 'all') { print "$Message[6] $YearRequired"; }
                #else { print "$Message[5] $MonthNumLib{$MonthRequired} $YearRequired"; }
                else { print "$YearRequired $Message[6]".$MonthNumLib{$MonthRequired}; }
                print "</span>";
            }
3. Apache の設定
awstats.pl は、実行するたびに AWStats のデータベースからログ情報を入力してアクセス統計ページを作成するため、サーバーに負荷がかかることから、アクセス統計ページを HTML で作成し、閲覧するようにします。
1 ) Apache の AWStats アクセス設定ファイル /etc/httpd/conf.d/awstats.conf の編集
[root@linux ~]# 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
#</Directory>

# コメントを解除
Alias /css/ /var/www/awstats/css/
Alias /js/ /var/www/awstats/js/
2 ) Apache への設定反映
[root@linux ~]# service httpd reload 
httpd を再読み込み中:                                      [  OK  ]
4. AWStats データベースの作成/更新
1 ) Apache のログを utf-8 にデコード
検索系サイトよりキーワードで検索されてきた場合、文字化が発生することがあります。これは、AWStats が utf-8 で作られているものの、キーワードが euc でログに出力される為に発生します。対応として、apacheのアクセスログを utf-8にデコードした後に集計を行うようにします。
※ デコードスクリプトは、nayuta氏 が公開している「conv_weblog_to_utf8.pl」を使用させて頂きました。

conv_weblog_to_utf8.pl をダウンロードし、/var/www/awstats へ保存します。
# 実行権限の付与
[root@linux ~]# chmod 700 /var/www/awstats/conv_weblog_to_utf8.pl 

# デコードの実行
[root@linux ~]# /var/www/awstats/conv_weblog_to_utf8.pl \
< /etc/httpd/logs/access_log \
> /etc/httpd/logs/access_log.utf8 
2 ) AWStats データベースの作成/更新
[root@linux ~]# /var/www/awstats/awstats.pl -config=mountainbigroad.jp -update 
Update for config "/etc/awstats/awstats.mountainbigroad.jp.conf"
With data in log file "/var/log/httpd/access_log.utf8"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 29)
Jumped lines in file: 29
 Found 29 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.
5. アクセスログの自動集計(本格運用のための設定)
1 ) 閲覧用レポートのディレクトリ作成
[root@linux ~]# mkdir /var/www/html/awstats 
2 ) 閲覧用レポート自動生成シェルスクリプトを作成
[root@linux ~]# vi awstats.sh 

#!/bin/sh

YEAR=`date --date '1 days ago' +%Y`
MONTH=`date --date '1 days ago' +%m`

# httpのログファイルをデコードした上で一時ディレクトリに格納します。
# access_log.utf8は一時的にデコードしたログを保存するファイルの名前です。
/var/www/awstats/conv_weblog_to_utf8.pl \
< /var/log/httpd/access_log \
> /var/log/httpd/access_log.utf8

# AWStats データベースの作成/更新
/var/www/awstats/awstats.pl -config=mountainbigroad.jp -update

# 閲覧用レポート自動生成
/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output -year=$YEAR -month=$MONTH -staticlinks > \
/var/www/html/awstats/$YEAR-$MONTH.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=alldomains -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.alldomains.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=allhosts -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.allhosts.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=lasthosts -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.lasthosts.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=unknownip -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.unknownip.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=alllogins -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.alllogins.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=lastlogins -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.lastlogins.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=allrobots -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.allrobots.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=lastrobots -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.lastrobots.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=urldetail -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.urldetail.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=urlentry -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.urlentry.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=urlexit -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.urlexit.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=browserdetail -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.browserdetail.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=unknownbrowsers -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.unknownbrowsers.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=unknownos -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.unknownos.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=refererse -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.refererse.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=refererpages -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.refererpages.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=keyphrases -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.keyphrases.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=keywords -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.keywords.html

/var/www/awstats/awstats.pl -config=mountainbigroad.jp \
-output=errors404 -staticlinks > \
/var/www/html/awstats/awstats.mountainbigroad.jp.errors404.html

# インデックスHTML
if [ "$YEAR$MONTH" = $(date +%Y%m) ]; then
  mv /var/www/html/awstats/$YEAR-$MONTH.html /var/www/html/awstats/index.html
fi
[root@linux ~]# chmod 700 awstats.sh 
3 ) 閲覧用レポート自動生成シェルスクリプトの実行
[root@linux ~]# ./awstats.sh 
Update for config "/etc/awstats/awstats.mountainbigroad.jp.conf"
With data in log file "/var/log/httpd/access_log.utf8"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 29)
Jumped lines in file: 29
 Found 29 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.
4 ) スケジューラ(cron)への登録
[root@linux ~]# crontab -e 

# 毎日 00:00 に自動実行します。
00 00 * * * /root/awstats.sh > /dev/null 2>&1
5 ) /etc/cron.hourly/awstats の削除
1時間おきにAWStatsデータベース更新処理が実行されるように、インストール時に自動的に設定されていますので、これを削除しておきます。
[root@linux ~]# rm -f /etc/cron.hourly/awstats