本サイト/記事は移転しました。

約10秒後にリダイレクトします。

ログ解析ツール導入

 今まで目視でログを見ていたけど、ツールを入れようとしてawstatsをインストールするが、うまく動かない。もうphpしか使えない体になってしまったのか。

 で、代わるものはないかと探していてVisitorsを発見、インストールしてみる。ubuntuリポジトリにも入っているのでapt-getでインストールできる。さっそく試してみるといい感じ。商売やっているわけでもなし、これで十分。
 日時と月次で処理するようにしてみた。

 まずは毎日0時10分にcron動くスクリプト

<?php
#昨日のログ
$logdir = "/var/log/apache2/";
$outdir = "/var/www/lance/docs/visitors/daily/";

$yesterday = date("Ymd",time() - 3600*24);
system("visitors -A -m 30 $logdir${yesterday}.access.log -o html > $outdir${yesterday}.html");
$files = glob("$outdir/201*.html");	#2020年問題
rsort($files);
$html="<html><head><title>Visitors Daily</title></head><body><h1>Vistors Daily</h1>\n";
foreach($files as $file){
	$file = basename($file);
	$html .= "<P><a href='$file'>$file</a></P>\n";
}
$html .= "</body></html>\n";

file_put_contents("${outdir}index.html",$html);


#今月のログ
$logdir = "/var/log/apache2/";
$outdir = "/var/www/lance/docs/visitors/monthly/";

$thismonth = date("Ym",time());
system("cat $logdir$thismonth*.access.log > /tmp/tmp.log");
system("visitors -A -m 30 /tmp/tmp.log -o html > $outdir${thismonth}.html");
$files = glob("$outdir/201*.html");	#2020年問題
rsort($files);
$html="<html><head><title>Visitors Monthly</title></head><body><h1>Vistors Monthly</h1>\n";
foreach($files as $file){
	$file = basename($file);
	$html .= "<P><a href='$file'>$file</a></P>\n";
}
$html .= "</body></html>\n";

file_put_contents("${outdir}index.html",$html);

?>

 ついで、毎月1日の0時15分に動かすスクリプト

<?php
$logdir = "/var/log/apache2/";
$outdir = "/var/www/lance/docs/visitors/monthly/";

$lastmonth = date("Ym",time() - 3600*24);
system("cat $logdir$lastmonth*.access.log > /tmp/tmp.log");
system("visitors -A -m 30 /tmp/tmp.log -o html > $outdir${lastmonth}.html");
$files = glob("$outdir/201*.html");	#2020年問題
rsort($files);
$html="<html><head><title>Visitors Monthly</title></head><body><h1>Vistors Monthly</h1>\n";
foreach($files as $file){
	$file = basename($file);
	$html .= "<P><a href='$file'>$file</a></P>\n";
}
$html .= "</body></html>\n";

file_put_contents("${outdir}index.html",$html);
?>

 いずれもローカルからしかアクセスできないサーバ名、ディレクトリ名。

 Google AnalyticsとかGoogle Webmaster's Toolも導入はしているが、全部にスクリプトを埋め込めているわけではないし、商用向けの機能が中心なのでそれだけでは不足するところもあるので、こちらで補完するような位置づけ。