Webalizerの日本語化(UTF8化)する では、OSのバージョンにあわせたWebalizerのSRPMをダウンロードしたので、Webalizerのバージョンは多少古いものになってしまいました。
ここでは、最新版のWebalizerのSRPMをダウンロードし、日本語化(UTF8化)してみます。
- 目次
- 履歴
2011年11月16日 初版
コンパイルの前準備
- rpm-buildをインストールする。
$ yum -y install rpm-build
- fedora の最新版からwebalizer のSRPMをダウンロードする。
$ wget http://dl.fedoraproject.org/pub/fedora/linux/releases/16/Everything/source/SRPMS/webalizer-2.23_05-1.src.rpm
現在(2011.11.15)では、Fedora 16 が最新版で、webalizerも最新版 2.23 があります。
コンパイルの前準備
上記までの準備ができたら、実際に、UTF8を有効にして、ビルド(コンパイル)してみましょう。
- webalizerのビルド環境パッケージをインストールする。
$ mkdir /usr/src/redhat/ $ mkdir /usr/src/redhat/SOURCES $ mkdir /usr/src/redhat/BUILD $ mkdir /usr/src/redhat/RPMS $ mkdir /usr/src/redhat/SPECS $ mkdir /usr/src/redhat/SRPMS $ rpm -ivh --nomd5 webalizer-2.23_05-1.src.rpm 警告: webalizer-2.23_05-1.src.rpm: ヘッダ V3 RSA/SHA256 signature: NOKEY, key ID a82ba4b7 1:webalizer 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します ########################################### [100%] 警告: ユーザ mockbuild は存在しません - root を使用します 警告: グループ mockbuild は存在しません - root を使用します
/usr/src/redhat/ 配下に以下のディレクトリを作成しておきます。
- SOURCES
- BUILD
- RPMS
- SPECS
- SRPMS
また、–nomd5オプションを使っているのは、指定しない場合に以下のようなエラーが発生するためです。
rpm実行時の警告に関しては、エラー: アーカイブの伸長に失敗: ファイル /usr/src/redhat/SOURCES/webalizer-2.01-10-groupvisit.patch;4ec1f864: cpio: MD5 チェックサムが適合しません。
ユーザ、グループ名がパッケージに含まれている名前がないと、上記のような警告がでます。
ここでは、それほど気にすることはありません。
- webalizer.specファイルが出来ていることを確認する。
$ cd /usr/src/redhat/SPECS/ $ ll 合計 12K -rw-r--r-- 1 root root 11348 11月 15 14:35 webalizer.spec
- webalizer.spec ( /usr/src/redhat/SPECS/webalizer.spec )ファイルを編集する。
... %patch9 -p1 -b .groupvisit # ↓追加!! UTF8への対応を追加します。 iconv -f euc-jp -t utf-8 lang/webalizer_lang.japanese > lang/webalizer_lang.japanese.utf8 mv -f lang/webalizer_lang.japanese.utf8 lang/webalizer_lang.japanese # ↑追加!! %build CPPFLAGS="-I%{_includedir}/db4" ; export CPPFLAGS CFLAGS="$RPM_OPT_FLAGS $CPPFLAGS -D_LARGEFILE64_SOURCE" ; export CFLAGS # ↓変更!! 日本語に対応するようにします。 # オリジナルをコメントアウト %configure --enable-dns --with-dblib=/lib %configure --enable-dns --with-dblib=/lib --enable-bz2 --with-language=japanese # ↑変更!! make ...
- ビルド(コンパイル)する。
$ cd /usr/src/redhat/SPECS/ $ rpmbuild -ba webalizer.spec
ここで、依存しているパッケージが存在しない場合、以下のようなエラーが表記されます。 その場合は、落ち付いて、エラー出力されたパッケージを一つ一つインストールして、再度、ビルドすると良いです。
エラー: ビルド依存性の失敗: bzip2-devel は webalizer-2.23_05-1.x86_64 に必要とされています
上記の場合であれば、
として、このあと、再度、rpmbuildを実行してみてください。$ yum -y install bzip2-devel
- インストールする。
ちゃんとrpmファイルが作成できているか確認します。
64ビット版は、以下のように指定します。$ ls -l /usr/src/redhat/RPMS/i386/webalizer* -rw-r--r-- 1 root root 144747 11月 15 14:39 /usr/src/redhat/RPMS/i386/webalizer-2.23_05-1.x86_64.rpm -rw-r--r-- 1 root root 219665 11月 15 14:39 /usr/src/redhat/RPMS/i386/webalizer-debuginfo-2.23_05-1.x86_64.rpm
$ ls -l /usr/src/redhat/RPMS/x86_64/webalizer* -rw-r--r-- 1 root root 144747 11月 15 14:39 /usr/src/redhat/RPMS/x86_64/webalizer-2.23_05-1.x86_64.rpm -rw-r--r-- 1 root root 219665 11月 15 14:39 /usr/src/redhat/RPMS/x86_64/webalizer-debuginfo-2.23_05-1.x86_64.rpm
既にインストールされているwebalizerがないか確認します。
$ rpm -qa | grep webalizer webalizer-2.01_10-30.1
ここで、上記のように出力されたら、webalizerがインストールされていますから、まず、先に古いwebalizerを削除します。
$ rpm -e webalizer
最後にインストールします。
先に確認したrpmファイルを指定します。
$ rpm -Uvh /usr/src/redhat/RPMS/i386/webalizer-2.23_05-1.x86_64.rpm
インストールを終えたら、webalizerチェックをしておきましょう。
$ webalizer -V Webalizer V2.23-05 (Linux 2.6.18-274.7.1.el5 x86_64) Japanese Copyright 1997-2011 by Bradford L. Barrett
Webalizerでログを解析
作成したWebalizerで実際のhttpd(apache)ログファイルを解析してみましょう。
- Webalizerでロギング情報を解析するためのパラメータファイルを作成します。
オリジナルの/etc/webalizer.conf をコピーして編集します。
ここでは、
/etc/webalizer.conf → /etc/webalizer_hoge.conf へコピーして、 webalizer_hoge.conf を編集してみます。
... #LogFile /var/log/httpd-access_log LogFile /var/log/httpd/hoge_user-access.log ... #HostName localhost HostName hoge.com ... #HTMLHead HTMLHead ... #Quiet yes Quiet no
上記設定は、必要最小限です。他にたくさんのパラメータがありますので、カスタマイズを行ってください。
ここで指定しているログファイルは、httpd(apache)の初期設定ファイル(/etc/httpd/conf/httpd.conf)に指定したものです。
デフォルトでは、/var/www/usage へ出力されます。
編集を終えたら、保存します。
- Webalizerでロギング情報を解析します。
実際にWebalizerを起動してみましょう。
$ webalizer -c /etc/webalizer_hoge.conf Webalizer V2.23-05 (Linux 2.6.18-274.7.1.el5 x86_64) Japanese ... Saving current run data... [08/31/2011 03:57:48] Generating report for August 2011 Saving history information... Generating summary report 1189 records (1 bad) in 1 seconds, 1189/sec
レコード情報があれば、上記ように出力された由のメッセージが表示されます。
デフォルトでは、/var/www/usage へ出力されますから、そこへWEBブラウザからアクセスしてみてください。
こんな画面が表示されてばOKです。
- Webalizerを毎日起動するようにします。
上記の確認ができたら、Webalizerをログローテーションの直前に実施するようにします。
$ vi /etc/crontab ... ## webalizer 0 4 * * * root /usr/bin/webalizer -c /etc/webalizer_hoge.conf
上記のように追記します。
これで、毎日4時に実行されます。
ログローテーションは、毎日に設定していれば、デフォルトで4時2分に実行されますから、ちょうど良いですかね。
/etc/webalizer_hoge.conf 内の Quiet パラメータについては、cron設定する際、
Quiet yes
として情報の出力を停止するのも良いでしょう。この場合でも、警告、エラーメッセージは、出力されます。あくまで上記の出力例のようにバージョン情報や処理時間などの情報出力が停止することができるようになります。
1度やってしまうと簡単ではありますが、rpmを再構築するのって、ちょっと二の足をふみがちですよね。そんな方に、参考になればうれしく思います。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :