« 仮想サーバ用の logwatch 設定 | メイン | スマホページビルダー »

UNIX

仮想サーバのログ解析 webalizer

●webalizer がインストールされているか確認
[root@www ~]# yum list installed | grep webalizer
●なければ webalizer をインストール
[root@www ~]# yum info webalizer
[root@www ~]# yum -y install webalizer
●デフォルトのままでも webalizer コマンドで、ログファイル
/var/log/httpd/access_log
を解析し
/var/www/usage
へ結果ページが生成。
http://www.mydomainA/usage/

仮想サーバ毎のログ解析設定手順▼
●一般ユーザ権限で実行。
[root@www ~]# exit
logout
[taro@www ~]$ which webalizer
/usr/bin/webalizer
[taro@www ~]$ webalizer -v
Webalizer V2.01-10 (Linux 2.6.18-308.el5) English
Copyright 1997-2001 by Bradford L. Barrett
●仮想サーバ毎にデフォルトの設定ファイルを複製・編集
[taro@www ~]$ vi ~/web/www/document/blog/webalizer/webalizer.conf
[taro@www ~]$ diff /etc/webalizer.conf ~/web/www/document/blog/webalizer/webalizer.conf
28c28
< LogFile        /var/log/httpd/access_log
---
> LogFile        /home/taro/web/www/logs/access_log
42c42
< OutputDir      /var/www/usage
---
> OutputDir      /home/taro/web/www/document/webalizer
52c52
< HistoryName    /var/lib/webalizer/webalizer.hist
---
> HistoryName    /home/taro/web/www/document/blog/webalizer/webalizer.hist
76c76
< IncrementalName   /var/lib/webalizer/webalizer.current
---
> IncrementalName   /home/taro/web/www/document/blog/webalizer/webalizer.current
94c94
< #HostName      localhost
---
> HostName       MyDomain
131c131
< DNSCache      /var/lib/webalizer/dns_cache.db
---
> DNSCache      /home/taro/web/www/document/blog/webalizer/dns_cache.db
157c157
< #HTMLHead <META NAME="author" CONTENT="The Webalizer">
---
> HTMLHead <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
182c182,186
< #HTMLTail <IMG SRC="msfree.png" ALT="100% Micro$oft free!">
---
> HTMLTail <form method="POST" action="./webalizer.php">
> HTMLTail <input type="hidden" name="href" value="/blog/webalizer/" />
> HTMLTail <input type="submit" value="analyze" />
> HTMLTail <button onclick="location.reload()">location.reload()</button>
> HTMLTail </form>
329c333
< #AllSites     no
---
> AllSites      yes
331,333c335,337
< #AllReferrers no
< #AllAgents    no
< #AllSearchStr no
---
> AllReferrers  yes
> AllAgents     yes
> AllSearchStr  yes
393a398,399
> HideURL               *.css
> HideURL               *.CSS
473c479,482
< #IgnoreSite   bad.site.net
---
> IgnoreSite  localhost
> IgnoreSite  127.0.0.1
> IgnoreSite  192.168.0.*
> IgnoreSite  192.168.1.*
516a526,538
> SearchEngine    .google.        q=
> SearchEngine    .msn.           q=
> SearchEngine    .goo.ne.jp      MT=
> SearchEngine    .yahoo.co.jp    p=
> SearchEngine    .infoseek.co.jp qt=
> SearchEngine    .nifty.com      Text=
> SearchEngine    .biglobe.ne.jp  q=
> SearchEngine    .live.com       q=
> SearchEngine    .ceek.jp        q=
> SearchEngine    ask.jp                q=
> SearchEngine    .fresheye.com   kw=
> SearchEngine    .aol.com        query=
>

●「LogFile」解析対象ログファイル。
●「OutputDir」結果ページの生成パス。
●「HistoryName」「IncrementalName」「DNSCache」差分解析時に生成されるファイルパス。
簡単にするため結果ページと同じパス。
●「HostName」ページのサイトタイトル。
●「HTMLHead」結果ページに charset=UTF-8 指定。
●「HTMLTail」結果ページの下部に任意の HTML 追加。ここでは任意に解析実行するボタンとリロードボタン。

●「AllSites」全明細ページ生成。
●「AllReferrers」全明細ページ生成。
●「AllAgents」全明細ページ生成。
●「AllSearchStr」全明細ページ生成。
●「HideURL」解析除外するURL。
●「IgnoreSite」解析除外するクライアント。
●「SearchEngine」検索URL・パラメータを追加。

★行の文字数に上限あり。
★アクセスログの形式は combined 前提。

●結果ページで解析実行する webalizer.php ▼
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta HTTP-EQUIV="REFRESH" CONTENT="10;URL=<?php echo $_POST['href'];?>">
<title>webalizer</title>
</head>
<body>
<?php
    $cmd='/usr/bin/webalizer -c /home/taro/web/www/document/blog/webalizer/webalizer.conf >> /home/taro/web/www/logs/webalizer_log 2>&1 &';
    $s=exec( $cmd, $a, $l );
?>
<a href="<?php echo $_POST['href'];?>">analyze</a> ... <?php if($l){echo 'NG '.$s.'/'.var_dump($a).'/'.$l;}else{echo 'ok.';}?>
</body>
</html>
●毎日朝5時に解析実行。
[taro@www ~]$ crontab -e
0 5 * * * /usr/bin/webalizer -c /home/taro/web/www/document/blog/webalizer/webalizer.conf /home/taro/web/www/logs/access_log.1 > /dev/null 2>&1
こちらの設定』で、4時にローテートされ24時間後に圧縮される「access_log.1」を5時に解析する。

●ここまでの仮想サーバ設定の場合次のURLで閲覧可能となるので、必要に応じて制限。
http://www.mydomainA/webalizer/

トラックバック

このエントリーのトラックバックURL:
https://www.remix.asia/cgi/mt/mt-tb.cgi/6855

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)