実践Linux
CentOS7        CentOS7 目次へ  TOP(HOME)へ


アクセス解析ツールawstatsの設置            2016年6月




●AWStats の入手
CentOS 外部レポジトリの追加(EPEL)=EPELパッケージを導入して、標準パッケージに含まれないパッケージをyumでインストールできるようにする。
CentOS6.5/7の64bit版のyumリポジトリにEPELを追加する方法
EPELのリポジトリのインストール
# yum install epel-release

yumコマンドの実行時にEPELのリポジトリは明示的に使用されるようにしたい場合は、インストールされたEPELのリポジトリの設定ファイル「/etc/yum.repos.d/epel.repo」を以下のように編集します。
[epel]
:(略)
enabled=0  1を0に変更

yumコマンドの実行時にEPELのリポジトリを明示的に使用するには、オプション「--enablerepo=epel」を付けて実行します。
# yum --enablerepo=epel list | grep awstats

EPELからawstatsをインストール
# yum --enablerepo=epel -y install awstats

●awstatsのconfファイルの編集
/etc/awstats/awstats.ns1.conf が自動作成されている。
ここでは名称をawstats.www.my-dom.xxx.confに変更。
編集
LogFile=  Webサーバのログファイルの場所がフルパスで指定されていることを確認します。awstats.plのディレクトリからの相対パスも利用できます。
LogType=  Webサーバのログを解析する場合には"W"、ストリーミングサーバのログファイルを解析する場合には"S"、メールサーバのログを解析する場合には"M"、FTPサーバのログを解析する場合には"F"が設定されていることを確認します。
LogFormat=  ログフォーマット。combinedの場合は 1、commonの場合は 4( ただしこの場合ブラウザ情報等、一部の解析はできなくなる)。
DirIcons=  AWStatsのアイコンディレクトリの相対URLが反映されていることを確認します.
SiteDomain=  解析したいWebサーバーに到達するために利用されるメインのドメインの名前もしくはイントラネットのサーバー名を設定します. 同一サイトが複数の名前でアクセスされる可能性がある場合は, HostAliasパラメータのリストに追加します.
HostAliases=  ホストのエイリアス名。REGEXは正規表現。
DNSLookup=  DNSの逆引き(ホスト名を表示) 0は行わない、1は完全に行う、2は キャッシュファイルからのみ。
DirData=  データ保存用ディレクトリの位置を指定します。
DirCgi=  AWStats のディレクトリを相対 URL で指定します。
DirIcons=  icon のディレクトリを相対 URL で指定します。

以下抜粋

#LogFile="/var/log/httpd/access_log"  下に変更
LogFile="/var/log/httpd/www_access_log"  このlogファイル名はhttpd.confで確認しておくこと。
LogType=W
LogFormat=1

#SiteDomain="ns1"  下に変更
SiteDomain="www.my-dom.xxx"
#HostAliases="REGEX[^.*localhost\.localdomain$]"  下に変更
HostAliases="localhost 127.0.0.1 REGEX[my-dom\.net$]"
DNSLookup=2
DirData="/var/lib/awstats"
DirCgi="/awstats"
DirIcons="/awstatsicons"

DefaultFile="index.php index.html"
#SkipHosts="127.0.0.1"  下に変更
SkipHosts="127.0.0.1 REGEX[^192\.168\.]"  LAN側とローカルからのアクセスはスキップするように指定する。
SkipFiles=""
OnlyFiles=""

●/etc/httpd/conf.d/awstats.confの編集
Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
<IfModule mod_authz_core.c>
# Apache 2.4
#Require local   下に変更
Require ip 127.0.0.1 192.168.7   追加
</IfModule>
#<IfModule !mod_authz_core.c>   apache2.2用はコメントアウト
## Apache 2.2
#Order allow,deny
#Allow from 127.0.0.1 192.168.7.
#Allow from ::1
#</IfModule>
</Directory>
<IfModule mod_env.c>
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
</IfModule>

httpdを再起動

●レポート手動出力 ( 自動では/etc/cron.hourly/awstats で、 1時間毎に自動更新されることになっている )
# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.my-dom.xxx -update
-config=www.my-dom.xxxでawstats.www.my-dom.xxx.confを指定するということになる。

●ブラウザで見る
http://www.my-dom.xxx/awstats/awstats.pl?config=www.my-dom.xxx にアクセスし、解析結果画面が正しく表示されれば OK です。

●cronで解析内容の更新
まず、/etc/cron.hourly/awstatsを/etc/cron.daily/に移動しておく。
/etc/logrotate.confをみると、ログは weekly、4世代分残すことになっている。
awstatsのconfでLogFile="/var/log/httpd/www_access_log"としたので、これが突然rotateされてしまうと連続した解析結果が得られないことになる。
いったん、/var/lib/awstatsの統計データをいったんすべて消去してクリア。
# cat /var/log/httpd/www_access_log-* /var/log/httpd/www_access_log > /usr/share/awstats/log_html
を実行して/usr/share/awstats/log_htmlに全てのログを集める。
/etc/awstats/awstats.www.my-dom.xxx.confの編集
LogFile="/usr/share/awstats/log_html"に変更。
次に
# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.my-dom.xxx -update
を実行してこれまでの全統計データを作成しておく。

/etc/cron.daily/awstatsの編集
#!/bin/bash

# 下2行はコメントアウト
#exec /usr/share/awstats/tools/awstats_updateall.pl now -configdir="/etc/awstats" -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
#exit 0

rm /usr/share/awstats/log_html
cat /var/log/httpd/www_access_log-* /var/log/httpd/www_access_log > /usr/share/awstats/log_html
exec /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.my-dom.xxx -update >/dev/null 2>&1
exit 0


awstats は、統計データを作成するときに、自分がどの時点までのログの統計データを処理したかを覚えていて、古いアクセスログデータを awstats 与えても、無視するようになっている──という機能を利用している。

※ /var/www/html/に/awstats/index.htmlなどがあると、/etc/httpd/conf.d/awstats.confで設定したAliasとケンカして開くことができない。/awstats2/index.htmlなどに変更しておくとOK。

TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
audit2allowを使い問題の解決
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く