AWSでAwstatsのインストール

AWSでAwstatsのインストールをしたので、メモ代わりに投稿します。
Awstatsって、まだ需要あるのかな？
#Awstatsのインストールと設定方法
apacheのログの形式を変更
Awstatsをインストールする前に、先にapacheのログの形式を変更。

```
$ vi /etc/httpd/conf/httpd.conf
```
以下の様に、変更。

```
CustomLog logs/access_log common
↓
CustomLog logs/access_log combined
```
次はAWstatsのダウンロード。
最新版は7.8。

```
$ wget http://prdownloads.sourceforge.net/awstats/awstats-7.8.tar.gz
```
ダウンロードしたファイルを解凍。

```
$ tar zxvf awstats-7.8.tar.gz
```
解凍したディレクトリのcgi-binディレクトリに移動。

```
$ cd awstats-7.8/wwwroot/cgi-bin
```
このディレクトリ内のファイルを全てapacheのcgiが動作するディレクトリにコピー。AWSだと場所は/var/www/cgi-bin/

```
$ cp -r * /var/www/cgi-bin/
```
一つ上のディレクトリに移動して、iconディレクトリを/var/www/html/にコピー。

```
$ cd ../

$ cp -r icon/ /var/www/html/
```
cgi-binディレクトリに移動。

```
$ cd /var/www/cgi-bin/
```
awstats.model.confをawstats.ドメイン.confという名前でコピー。
たとえば、ドメイン名がnewstweet.jpの場合は、awstats.newstweet.jp.confという名前でコピー。

```
$ cp awstats.model.conf awstats.newstweet.jp.conf
```
次は、今作成した設定ファイルの編集。

```
$ vi awstats.newstweet.jp.conf
```
次はLogFileを自分のログファイルの位置に変更。

```
# 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/mylog.log"
↓
LogFile="/var/log/httpd/access_log"（自分のアクセスログを指定）
```
LogTypeの値を確認。 今回はwebのログを取得するのでWのままでOK。

```
# 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
```
次に、LogTypeの値を確認。 最初にログの形式をcombinedに変更しているので、1であるかを確認。

```
# 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
```
Sitedomainには自分のドメインを入れる。

```
# 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=""
↓
SiteDomain="newstweet.jp"（自分のドメイン名を入れる）
```
DNSLookupの値を1に変更。

```
# 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=2
↓
DNSLookup=1
```
apacheのログのパーミッションを変更

```
$ sudo chmod 755 /var/log/httpd
$ sudo chmod 644 /var/log/httpd/access_log
```
その他の項目はそのままでOK。 解析後データはawstats.plと同じディレクトリに置かれる。（今回の場合は /var/www/cgi-bin/）
基本的な設定はここまで。
次に統計の作成を行う。

```
$ perl awstats.pl -config=newstweet.jp -update
```
newstweet.jpの部分を自分のドメイン名に変更して実行することで統計が作成。

```
Create/Update database for config "./awstats.newstweet.jp.conf" by AWStats version 7.8 (build 20200416)
From data in log file "/var/log/httpd/access_log"...
（省略）
```
上記の様なメッセージが表示されれば成功。
統計が作成できたらブラウザから

```
http://newstweet.jp/cgi-bin/awstats.pl
```

にアクセスし、統計情報が見られるか確認。
統計情報が見られればAWstatsの導入は完了。
#cronに定期的(１分毎）に解析を行うように設定
最後に１分毎に自動更新の設定
cronを行います。

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

```
*/01 * * * * perl /var/www/cgi-bin/awstats.pl -config=newstweet.jp -update > /dev/null 2>&1
```
これで１分ごとに解析が行われているはず。

#最後に・・・
今回、インストールしたAwstatsのアクセス解析を公開しているので、参考にどうぞ！
[newstweet.jpのアクセス解析](http://newstweet.jp/cgi-bin/awstats.pl)

アクセス解析を見て、アクセスの少なさに同情した方は、こちらをお願いします。
[NewsTweet｜Twitterで注目されているニュースが分かる](http://newstweet.jp)

参考にしたサイト
[Awstatsのインストールと設定方法 - Denet Tech Lib.](http://library.denet.ad.jp/2014/07/awstats.html)
[Apacheログ解析ツールAwstatsの導入](https://qiita.com/devzooiiooz/items/f262eb16ac3d51d156c0)
[AWStats：/var/log/apache2/access.logにアクセスできません](https://qastack.jp/ubuntu/21475/awstats-cannot-access-var-log-apache2-access-log)