2004-07-31 ひさびさにサーバいじくりっ
webalizerインストールしてみた( ´∀`)
比較的便利?
◆ [日記] webalizerインストール&設定
apacheのログをmultilogで取っているので色々小細工が必要(笑)
webalizerは/usr/ports/japanese/webalizerから入れた。オプションは特に無く、make install(ぉ
で、設定ファイルのサンプルが/usr/local/etc/ja-webalizer.conf-distに作られるので、ja-webalizer.confにコピーしていじる。
いじった項目は、LogFileを読み込み元ログファイルにすることと、OutputDirを結果出力先にする事、あとはIncrementalをyesに。それくらいで適当終了(笑)
んで、根本的に保存していたログ形式が特殊なので、色々小細工した。
とりあえず、
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" webalizer
という行を追加して、ログを保存したいVirtualHost宣言の中で
CustomLog /var/log/httpd/access/webalizer.log webalizer
を追加(当然今までのログも取っていたいので、そのCustomLog宣言は消さない)
ここで一回試してみたが…複数のVirtualHostをまとめて扱ってるのでわけわからん!
ちょっと小細工をしてみる。
LogFormat "%h %l %u %t \"%m http://%{Host}i%U %H\"
%>s %b \"%{Referer}i\" \"%{User-Agent}i\"" webalizer
(実際は1行)
にしてみた(80ポートオンリーでwebサーバ立ち上がっててhttpsは扱ってないから)
ちなみにこれをやっておくとサーバー単位っぽく見えるようになる。結構便利?
んでもって次はmultilogとの連携。
どうも!processorってコマンドを使うとうまくいくっぽい、ということでやってみる。
multilog.sh
/usr/bin/tee /tmp/access_log
exec multilog_sub.sh
multilog_sub.sh
exec 2> error_log.txt
exec > output_log.txt
/usr/local/bin/ja-webalizer
exit 0
こんな感じのスクリプトをつかってやる。
んで、/service/なんとか/log/runのmultilogを実行しているところで、
exec /usr/local/bin/setuidgid webalizer /usr/local/bin/multilog s102400 n4 \
!'multilog.sh(フルパス)' \
/var/log/httpd/access/analyze
としてやることで、currentからログを変更するときにmultilog.shが呼び出されるようにしてやる。
まー、s102400とかn4とかはサーバの負荷みて考えれば良いと思われます。
一つ、はまったポイントとしては、multilogの実行権限で!processorが実行されるのを見落としやすいかと。
あとは、ログ他でも取ってるからイラネ って時は、teeを抜かす(つか、multilog_sub.shだけ呼び出す)&n1位にしておけばいいのかな?
そんな感じで、程良くwebalizerを利用してサーバ全体のアクセス動向が見れるようになりましたとさ( ´∀`)
ここまでやって気づいたが、webalizerよりanalogの方が良かったかもしれない…(笑)
今度暇なときはanalog入れよう。