アクセスログ解析ツール「AWStats」導入記

アクセスログ解析ツール「AWStats」導入記
AWStatsのインストール / セットアップ / 利用ページの通りにやれば普通に出来たはずだけど、いろいろミスしたり遠回りしたりして3連休がほぼつぶれたりしてしまった。。。
そんな中で起こったイベントを書いておこうと思う。


◇Jcode.pm-0.87だとエラーが出る
シェルを使わないでいちいちコマンドでやるならJcodeは必要ない設定になってるけど、awstats.cronを使うとJcodeのパスを入れなきゃいけないみたいなので、Jcodeの最新版の0.87を導入してパスを通した。
で、実行してみるとエラーがいくつか出た。
バージョンが新し過ぎるのかわからないけど、Jcode.pmの中のコマンドが理解できないようだった。(Command not Foundと出る)
良くわからないので、awstatsと一緒についてたUTF8のJcode.plを使ったらうまくいった。
◇デフォルトのawstats.cronがうまく動かない
ちゃんと自分の環境に合わせて設定したつもりなのに、ちゃんと動いていないようだ。。。
何をしたかのログを一切出さないのでうまくいったのかエラーが出てるのか分からない・・・
しょうがないので、シェルを自作する事にした。
基本的にうちの環境ではこんなシェルになった。
——————————————————–ここから
#!/bin/sh
/var/www/cgi-bin/AWStats6/awstats.pl -config=awstats.conf -update
perl /var/www/cgi-bin/AWStats6/awstats.pl -config=awstats.conf -output -staticklinks > /var/www/html/accesslog/awstats.html
——————————————————–ここまで
◇すでに読み込ませた最新情報より過去のログは切り捨てられるようだ
apacheのログファイルは、ある程度溜まったら自動でファイルを分割して圧縮する仕組みになっていて、このサーバの場合は16個もファイルが分割されて保存されていた。
とりあえず全部解凍させて一つ読み込ませてみたら、過去ログとして読み込んだみたいだけど、ブラウザにカウントされていない・・・
何度か試してみたけど、こういう仕様らしい。
僕の力じゃどうしようもなかったので、キャッシュをクリアして、コツコツと一番古いログから読み込ませた。
◇apacheの過去ログの連結
16ファイルに分割されてしまったaccess.logファイルを一つにまとめる作業をした。
知恵を振り絞って、catコマンドで表示させた内容を、別ファイルに追記するようにした。
ex)cat access.log.1 >> access.log.2
これを繰り返していって一つのファイルにしたら60MB超えてしまった・・・汗
◇いつの間にかapacheのaccess.logの一部が消えてる・・・
全部のログを読み込ませてみてブラウザで確認してみると、
何故だか10月2日~8日のログのが表示されない・・・汗
どうやらいろいろ作業しているうちに自分で消してしまったらしい・・・
◇過去の月のページが表示できない・・・
読み込ませた月は各詳細ページも含めてリンクがつながったけど、過去のページへのリンクがどうもうまく表示出来なかった・・・
オプションで -month=MM -year=YYYYを加えるだけなんだけどな・・・
AWStats Ver.6.0完全日本語版のページでいろいろ質問して、コマンドのスペルミスに気をつけてというアドバイスを受けて確認してみたら、以下のように「k」が抜けてた・・・
staticlinks(誤)⇒staticklinks(正)
みなさん、コマンドのスペルミスには気をつけましょう・・・(汗)
◇アイコンがロード出来てない
awstats.conf内のiconディレクトリまでのパスをhttp://****の表記にしたら直った。
絶対パスでも相対パスでもいけるかもしれないけど、上記でうまくいったのでそのままにしてしまった。
◇crontabで10分毎に更新設定
crontabで10分毎にシェルを実行する設定をした。
—————————————–ここから
crontab -e
0,10,20,30,40,50 * * * * sh /****/****/awstats.cron
—————————————–ここまで
設定を保存したらしたらcrontab -lでちゃんと設定されているか確認する。
◇自分のアクセスを除外
awstats6.0には、特定のIPからのアクセスを除外する設定が出来る。
でも、それを知らなくって、apacheのaccess.logを何とか加工出来ないかなといろいろ考えた。
特定のファイルの中に特定の文字がある行を削除するコマンドがないか探したけどやっぱなかった・・・
それは諦めて、いろいろ調べてたらawstats.confファイル内に、SkipHostsという項目で設定できた。
ex)SkipHosts=”192.168.*.*”

Similar Posts:

コメントを残す