Apacheログ解析ツールAwstatsの導入

#環境
Ubuntu16.04LTS
Apache2.4.18

#インストール

```sh:
sudo apt-get install awstats
```
何がインストールされたかは以下のコマンドで確認(適宜grep conf)

```sh:
dpkg -L awstats
```
#デフォルトの解析を止める
インストールするとAWStatsは10分毎にcronで解析をする。これを止める。
/etc/cron.d/awstatsを削除する。

```sh:
cd /etc/cron.d
sudo rm awstats
```

#cgidを有効にする
Apacheのモジュールcgidが有効になっていなければならない。（有効になってないとソースがそのまま表示される)
以下のコマンドをたたくと、/etc/apache2/mods-enabledにシンボリックリンクが貼られる。
```sh:
sudo a2enmod cgid
```
※その他のコマンド
a2dismod モジュール名 : モジュール設定を無効する
a2ensite サイト設定名 : サイト設定を有効にします。
a2dissite サイト設定名 : サイト設定を無効にします。
↓参照
[UbuntuでApacheを設定する際のハマリどころ](http://d.hatena.ne.jp/uriyuri/20081112/1226497108)

#mime.confに以下を追記
「AddHandler cgi-script .cgi」の記述はデフォであるので.plを追記するのみ
(これは必須ではないかも、virtual-hostの設定ファイルも同様）

```mime.conf
AddHandler cgi-script .cgi .pl
```


#設定ファイルをいじる
virtualhostごとのログファイルを解析するため、設定ファイルをそれぞれ設定する。
/etc/awstats/に設定ファイルができるので、コピーする。
hogehogeドメインのvirtualhostを解析する場合。

```sh
sudo cp awstats.conf.local awstats.hogehoge.conf
```
コピーした設定ファイル awstats.hogehoge.confをIncludeするように親設定ファイルawstats.confを編集

```sh
sudo pico awstats.conf
```
#####Includeする
```sh:awstats.conf
Include "/etc/awstats/awstats.hogehoge.conf"
```

ここを参照してパラメータを設定する
[awstats のインストール](http://landisk.kororo.jp/debian/13_awstats.php)

```sh:awstats.hogehoge.conf
# You can overrides config directives here.
# This is particularly useful for users with several configs for
# different virtual servers, who want to reuse common parameters.
# Also, this file is not updated with each new upstream release.

##解析するログファイル
LogFile="cat /var/log/apache2/hogehoge_access.log*|"

##ログのタイプ　「W」はWebログのこと。
LogType=W

##ログのフォーマットを指定。combined なので「1」を指定。
LogFormat=1

##ドメイン名の指定
SiteDomain="hogehoge.hoge.com"

##ホストのエイリアス名を指定する
##HostAliases=""

##ルックアップを行うかどうか。無駄に負荷はかけたくない場合は「0」
##ルックアップを無効にすると国別アクセス解析ができなくなる
DNSLookup=1

##解析結果を保存する場所
DirData="/home/hoge/awstats/hoge"

##cgi-binディレクトリのある場所。ドキュメントルートからの相対or絶対パス
##DirCgi="/cgi-bin/awstats"

##解析結果ページに表示されるアイコン画像のPATH。
##ドキュメントルートからの相対or絶対パス
##DirIcons="/awstats-icon"

##解析対象のインデクスファイル。index.html からindex.php へ変更。
##DefaultFile="index.php"

##言語の指定。デフォルトでは、auto に指定されています。
Lang="jp"

##表示を左右2画面のフレームにする。
UseFramesWhenCGI=1

##詳細表示をクリックしたときに別ウィンドウにするかどうか。
##別ウィンドウが開くと面倒なのでオフにした。
DetailedReportsOnNewWindows=0

##ブラウザから解析の更新を可能にする
##通常、cronで定刻時刻に解析データをアップデートするようにするところを、
##ブラウザから解析データを更新できるようにする。
##AllowToUpdateStatsFromBrowser=1

##年間の集計を許可する
AllowFullYearView=3

## ローカルからのアクセスをカウントしない
##SkipHosts="127.0.0.1 REGEX[^128\.20\.1\.]"
SkipHosts="127.0.0.1"

## 日曜日を週の頭にもってくる
FirstDayOfWeek=0
```
#awstats.plのシンボリックリンクを作成
インストールすると/usr/lib/cgi-bin/awstats.plができるので
これにシンボリックリンクを貼る

```sh:
sudo mkdir /var/www/awstats
cd /var/www/awstats
sudo ln -s /usr/lib/cgi-bin/awstats.pl awstats.pl
```
#sitesのconfファイルの設定
任意のsites confファイルに以下を追記する。

```sh:/etc/apache2/sites-available/*.conf
	ScriptAlias /awstats/ "/var/www/awstats/"
	Alias /awstatsclasses "/usr/share/awstats/lib/"
	Alias /awstats-icon "/usr/share/awstats/icon/"
	Alias /awstatscss "/usr/share/doc/awstats/examples/css"
	#CGIディレクトリコンテナ
	<Directory "/var/www/cgi-bin">
		AllowOverride None
		Options ExecCGI FollowSymLinks
		Order allow,deny
		Allow from all
	</Directory>
```

自ホストの解析に組み込む場合、awstatsへのアクセスをログに記録しない。

```sh:/etc/apache2/sites-available/*.conf
	#awstatsを含むアクセスログは記録しない環境変数
	SetEnvIf Request_URI "awstats\.pl" no_log
	#上記で設定した環境変数を有効にする
	CustomLog ${APACHE_LOG_DIR}/hogehoge_access.log combined env=!no_log
```

ここまでいったら、一旦cgiスクリプトを手動で起動させ、表示させてみる。

```sh:
perl /usr/lib/cgi-bin/awstats.pl -config=hogehoge.domainname -update
```
設定ファイルに記述したDirDataに解析データが保存されているか確かめる。
この設定例では
DirData="/home/hoge/awstats/hoge"

Apacheを再起動して解析データが表示されるか確認する。

#cronに定期的(１分毎）に解析を行うように設定する。

```sh:
crontab -e
```
以下を追加「-config=」には/etc/awstats/にある設定ファイル名ではなく、
awstats設定ファイル内の「SiteDomain」に定義されたドメイン名を設定する。

```sh:
*/01 * * * * /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=hogehoge.domainname -update > /dev/null 2>&1
```
これで１分ごとに解析が行われているはず。

#参考
[http://landisk.kororo.jp/debian/13_awstats.php](http://landisk.kororo.jp/debian/13_awstats.php)
[https://help.ubuntu.com/community/AWStats](https://help.ubuntu.com/community/AWStats)
[http://www.nu-chon.org/w/index.php?AWStats%A5%E1%A5%E2](http://www.nu-chon.org/w/index.php?AWStats%A5%E1%A5%E2)
[http://krakenbeal.blogspot.jp/2011/03/ubuntuawstats.html](http://krakenbeal.blogspot.jp/2011/03/ubuntuawstats.html)
[http://centossrv.com/awstats.shtml](http://centossrv.com/awstats.shtml)
[http://hobbit.ddo.jp/awstatsdocs/awstats_tools.html](http://hobbit.ddo.jp/awstatsdocs/awstats_tools.html)
[http://sourceforge.net/projects/awstats/?source=typ_redirect](http://sourceforge.net/projects/awstats/?source=typ_redirect)