「CentOS 7」へのwebalizerインストール方法です。
CentOS7へのwebalizerインストールについて
CentOS7はbaseのリポジトリにwebailzerが含まれていないため、yumでwebalizerをインストールすることが出来ません。(2015.11.22現在)
ですので、今回はソースからインストールする方法をまとめていきます。
※CentOS6ならばyum install webalizerでインストールできます。
ちなみに公式ではないですが、CentOS7用のrpmは下記の場所からダウンロードで出来ます…
http://li.nux.ro/download/nux/misc/el7/x86_64/
事前準備
webalizerをインストールするにあたり、必要になるものを事前にインストールしておきます。(すでにインストールされている場合は、この作業は必要ありません。)
事前にインストールするソフト一覧
zlib-develインストール
データの圧縮・解凍を行うためのライブラリである、「zlib-devel」を「yum」を使ってインストールします。
# yum install zlib-devel
libpng-develインストール
PNGのエンコード・デコードを行うライブラリである「libpng-devel」を「yum」を使ってインストールします。
# yum install libpng-devel
libgd-develインストール
画像イメージを動的に操作するためのライブラリである「gd」と「gd-devel」をインストールします。
# yum install gd gd-devel
libbz2-develインストール
bzip2の暗号アルゴリズムライブリである「bzip2-devel」をインストールします。
# yum install bzip2-devel
libdb-develインストール
libdbライブラリである「libdb-devel」をインストールします。
# yum install libdb-devel
GeoDBインストール
webalizer用のGeoDBデータベースをインストールします。これは「yum」ではインストール出来ないので配布もとからダウンロードしてくる必要があります。
これは、Webalizerのが提供するネイティブのジオロケーションサービスを使用する場合に必要となります。
ダウンロード
# wget ftp://ftp.mrunix.net/pub/webalizer/geodb/geodb-latest.tgz
解凍・格納
# tar xzfv geodb-latest.tgz
解凍すると「GEODB.README」「GeoDB.dat」が抽出されてきますので、「GEODB.README」に記述されているように、「/usr/share/GeoDB」に「GeoDB.dat」を格納します。
「/usr/share/GeoDB」ディレクトリは、新規に作成する必要があります。
# mkdir /usr/share/GeoDB # cp -p GeoDB.dat /usr/share/GeoDB
GeoIPインストール
IPによる国情報解析に使用する「GeoIP」「GeoIP-devel」をインストールします。
# yum install GeoIP GeoIP-devel
webalizerインストール
事前に必要なソフトのインストールが完了しましたら、いよいよ「webalizer」のインストールを行っていきます。
webalizerのソースダウンロード
下記のURLにアクセスし、最新のソースのURLを確認してください。
http://www.webalizer.org/download.html
今回は「Tar/Gzip archive」からダウンロードします。
# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-08-src.tgz
解凍
ダウンロードしてきた「webalizer-2.23-08-src.tgz」を解凍します。
# tar xzfv webalizer-2.23-08-src.tgz
webalizerの日本語化
webalizerの日本語データは「euc」なので、これを「UTF-8」へ変更します。
解凍した「webalizer」のディレクトリ内に「lang」というディレクトリがありますので、そこに移動し「iconv」で文字コードを「euc-jp」から「utf-8」に変更していきます。
# cd webalizer-2.23-08/lang # iconv -f euc-jp -t utf-8 webalizer_lang.japanese > webalizer_lang.utf8 # mv webalizer_lang.japanese webalizer_lang.japanese_euc # mv webalizer_lang.utf8 webalizer_lang.japanese
検索エンジンの検索クエリはUTF-8を使用していることが多いため、「euc」のままにしておくと、何で検索してきたかの値が文字化けしてしまうから変更が必要となります。
2013年9月頃からgoogleは検索をSSLで行ってうように仕様を変更しました。そのため、検索クエリ(キーワード)がリファラーに含まれなくなっています。その結果、webalizerでは検索クエリが解析できず、googleからのユーザ検索クエリは表示されません。
ちなみに、2015年11月現在「yahoo」等は検索にhttpを使用しているので、そこからのユーザ検索クエリは解析可能となっています。
インストール
今回の手順では「configure」のオプションとして下記の指定し、「make」「make install」を行なっていきます。
- インストール場所を「/usr/local/webalizer」
- 言語を日本語
- DNSによる逆引きを使用
- GeoIP使用
- ログがbz2で圧縮されていても解析対応
# cd ../ # ./configure --prefix=/usr/local/webalizer \ --with-language=japanese \ --enable-dns \ --enable-geoip \ --enable-bz2 # make # make install
上記の手順では、「webalizer」の日本語化を行った際に、「lang」ディレクトリに移動していますので、ひとつ上のディレクトリに移動して「configure」を行っていきます。
もし、別のディレクトリにいる場合は、解凍した「webalizer」のディレクトリに移動してから「configure」からの作業を行ってください。
これで、「webalizer」が「/usr/loca/webalizer」にインストールされます。
「webalizer」のインストールディレクトリを変更したい場合は、「--prefix」の値を変更することでインストールするディレクトリを変更できます。
初期設定
設定ファイル「webalizer.conf.sample 」が「configure」の際に「prefiex」オプションで指定したディレクトリ内の「etc」に作成されるので、それを元に設定を行っていきます。
# cd /usr/local/webalizer/etc/ # cp -p webalizer.conf.sample webalizer.conf # vi webalizer.conf
設定ファイル名について
今回は設定ファイル名を「webalizer.conf」としていますが、バーチャルホスト等で複数のアクセスログを解析する場合は、解析するログの分だけ設定ファイルを作成する必要があります。
その際は、それぞれどのログを解析するための設定ファイルか一目でわかるような名前で、設定ファイルを作成しましょう。
設定内容
「webalizer」の設定は非常に多くの項目がありますが、動作確認のためにとりあえず動作させるだけならば「LogFile」と「OutputDir」の設定だけ行えばログの解析レポートを作成させることが出来ます。
その他の詳しい設定は別のページでまとめます。
LogFile | 解析を行うログファイルを指定 |
OutputDir | webalizerが作成したログ解析レポートデータを保管するディレクトリを指定 |
LogFile設定
下記は「/var/log/httpd/access_log」を指定した例です。
変更前
LogFile /var/lib/httpd/logs/access_log
変更後
LogFile /var/log/httpd/access_log
OutputDir設定
下記は「var/www/html/usage」を指定した例となります。
変更前
OutputDir /var/lib/httpd/htdocs/usage
変更後
OutputDir /var/www/html/usage
レポート保管用ディレクトリの作成
「OutputDir」で指定したディレクトリを作成します。
# mkdir /var/www/html/usage
レポート作成
「webalizer」は常駐型のデーモンではないので、手動で実行しアクセスを解析させる必要があります。
書式
# /usr/local/webalizer/bin/webalizer -c [webalizer設定ファイル]
「webalizer」のパスは、configureで設定したprefixの値によって変わりますので、適宜読み替えてください。
レポート作成例
# /usr/local/webalizer/bin/webalizer -c /usr/local/webalizer/etc/webalizer.conf
レポートの出力確認
「webalizer」によって作成レポートは、「OutputDir」で設定したディレクトリに作成されるので確認してみます。
# cd /var/www/html/usage/ <--OutputDirで設定されたディレクトリに移動 # ls -la 合計 80 drwxr-xr-x 2 root root 4096 11月 26 03:08 . drwxr-xr-x 5 root root 47 11月 23 17:16 .. -rw-r--r-- 1 root root 2303 11月 26 03:08 ctry_usage_201511.png -rw-r--r-- 1 root root 2764 11月 26 03:08 daily_usage_201511.png -rw-r--r-- 1 root root 1786 11月 26 03:08 hourly_usage_201511.png -rw-r--r-- 1 root root 3663 11月 26 03:08 index.html -rw-r--r-- 1 root root 2205 11月 26 03:08 usage.png -rw-r--r-- 1 root root 49618 11月 26 03:08 usage_201511.html -rw-r--r-- 1 root root 2870 11月 26 03:08 webalizer.hist
無事レポートが作成されていることが確認できました。
apache設定
「OutputDir」で設定したディレクトリを、閲覧できるように必要ならばapacheの設定を変更してください。
動作確認
apacheの設定が完了しましたら、実際にwebブラウザで接続しレポートが作成されていることを確認してみてください。
下記のような画面が表示されるはずです。
webalizerをcronへ登録
正常にレポートが作成されることが確認できましたら、今度は「cron」に登録し「webalizer」で定期的にレポートを作成させるようにしていきましょう。
今回は、rootユーザの「crontab」に登録する方法と、「/etc/cron.d」に登録する方法の2通りを説明します。
rootのcrontabに登録
rootユーザのcrontabに登録する方法です。
rootユーザで「crontab -e」コマンドを実行することで、rootユーザのcrontabの設定を行うことが出来ます。
crontab設定
# crontab -e
設定例
毎日0:00分にログ解析を行う場合のcron設定例です。
00 0 * * * /usr/local/webalizer/bin/webalizer -c usr/local/webalizer/etc/webalizer.conf
ちなみにcrontabの設定方法こちらのページにまとめてあります。
/etc/cron.dに登録
「/etc/cron.d」ディレクトリの中に、設定ファイルを作成することで登録できます。
設定ファイル作成
今回は、「webalizer」という名前のファイルを作成しています。
# vi /etc/cron.d/webalizer
設定例
下記の例は、毎日0:00にwebalizerでレポートを解析させるための設定例となります。
# # cron-jobs for webalizer # MAILTO=root WEBALIZER=/usr/local/webalizer/bin/webalizer CONF=/usr/local/webalizer/etc/webalizer.conf 00 0 * * * root $WEBALIZER -c $CONF
パーミッションの設定
作成したファイルのパーミッションは644にし、ファイル所有者は「root」ユーザである必要があります。
# chmod 644 webalizer
これで登録作業は完了です。
とても見やすいページで、参考になりました。
ありがとうございます。
ただ、”「configer」”をどうにかしていただくと助かります。