nginxでvisitorsを使う
nginxが生成したログを、Visitorsで解析/表示するように設定してみました。
サーバとして「さくらのVPS 2G」を利用し、その上で”nginx with FastCGI on Ubuntu”が動いています。
以下、作業ログです。
nginxのログをApache2互換形式に変更する。
$ sudo vi /etc/nginx/nginx.conf
http {
##
# Logging Settings
##
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
解析結果出力用ディレクトリにアクセス制限を掛ける。
$ sudo vi /etc/nginx/sites-available/default
server {
location ^~ /visitors/ {
auth_basic "basic authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
$ sudo service nginx restart
インストールと動作テスト。
$ sudo aptitude install visitors
$ mkdir /home/USER01/www/visitors
$ visitors -GKZURDOBXYS -m 50 /var/log/nginx/access.log -P http://www.hide10.com -f /home/USER01/www/visitors/index.html
logrotateの設定確認。必要なら変更する。
$ cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
cron.dailyに登録する。
$ sudo vi /etc/cron.daily/0_visitor
#!/bin/sh
visitors -GKZURDOBXYS -m 50 /var/log/nginx/access.log -P http://www.hide10.com -f /home/USER01/www/visitors/index.html
$ sudo chmod 755 /etc/cron.daily/0_visitor
以上です。





ディスカッション
コメント一覧
まだ、コメントがありません