Nginx+awstats统计web服务器log(延续版)

[ 背景 ]
给公司同事装了个 nginx 的平台,想监控下来自那里的人访问,就想到了 awstats 。可也让我头疼了一会 ,awstats 跑的是 perl cgi ,而我按照张宴的配置是不可以跑 perl cgi 的。就有了现在这篇文章。本文章是借助coolerfeng兄弟的大作 [url]http://coolerfeng.blog.51cto.com/133059/97723[/url] 的延续,也可以说是完整版吧 ! 呵呵 !
[ 过程 ]
Perl cgi 配置按照 coolerfeng 大哥的就可以了。不过有几点注意,在这里要说明下
(1)
    location ~ ^/cgi-bin/.*\.cgi$ {
        gzip off; #gzip makes scripts feel slower since they have to complete before getting gzipped
        fastcgi_pass  unix:/var/run/nginx/cgi.sock;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME /var/www/cgi-bin$fastcgi_script_name;
此处要修改为
 fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name;
        fastcgi_param QUERY_STRING     $query_string;
        fastcgi_param REQUEST_METHOD   $request_method;
        fastcgi_param CONTENT_TYPE     $content_type;
        fastcgi_param CONTENT_LENGTH   $content_length;
        fastcgi_param GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param SERVER_SOFTWARE    nginx;
        fastcgi_param SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param REQUEST_URI        $request_uri;
        fastcgi_param DOCUMENT_URI       $document_uri;
        fastcgi_param DOCUMENT_ROOT      $document_root;
        fastcgi_param SERVER_PROTOCOL    $server_protocol;
        fastcgi_param REMOTE_ADDR        $remote_addr;
        fastcgi_param REMOTE_PORT        $remote_port;
        fastcgi_param SERVER_ADDR        $server_addr;
        fastcgi_param SERVER_PORT        $server_port;
        fastcgi_param SERVER_NAME        $server_name;
(2)
 ./cgiwrap-fcgi.pl >/dev/null 2>&1 & 执行后,需要再执行
Chown �CR www:www /usr/local/webserver/perl/nginx/fcgi/cgi.sock
每次运行一个后台进程后,都要再执行下 chown
 (3)
 /var/log/nginx { # 说真的,我一开始就被这个搞晕了,修改为 /home/wiki/www/logs/wikilogs.log, 这样就可以轮替 wikilogs.log 了。
/home/wiki/www/logs/wikilogs.log {
daily
missingok
rotate 7
compress
delaycompress notifempty #
如果日志为空,延时压缩
create 644 nginx root #
注意,这个要修改与你的 nginx 运行的用户权限一样,如我的是 www,      那么就要改成 create 644 www root
sharedscripts
prerotate
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl --config=www.mysite.com -update #
改成你在执行 awstats_configure.pl 时配置的 website 名称,如我的 wikiob.xxxx.com ,那么就是
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl --config=wikiob.xxxx.com -update
endscript
postrotate
if [ -f /usr/local/nginx/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/nginx.pid` #
要修改成自己的 nginx.pid 的路径,如我的 /usr/local/webserver/nginx/nginx.pid
fi
endscript
}
 
注意 :可以用 logrotate -vf /etc/logrotate.d/nginx 调试,用这个来排除错误 !
(4)
只需要修改 nginx logformat ,不需要更改 awstats logformat ,保留为 1 便可,如果按照 cooler 兄的更改,我这便报这个问题,
Found 6 corrupted records, == 》显示不了数据 .
 
几点注意后,我们来安装 awstats
1 )下载,解压
如: /usr/local/awstats 这个路径很重要,因为 awstats 的配置默认路径就是这个,我曾将 tools 下的工具移到其他目录下,再去执行配置时,会报一些问题给你的,并且告诉你,他的默认路径就是这个。
2 cp -r /usr/local/awstats/wwwroot/* /home/wiki/www/awstats/
这样,就把 css,classes,icon ,js 文件夹移到了 /home/wiki/www/awstats/
3 )修改 / 添加 nginx
原先: location ~ ^ /cgi-bin/.*\.cgi$ {
修改为:
location ~ ^/awstats/cgi-bin/.*\.(cgi|pl)?$ {
追加 :
   location /classes/ {
      alias /home/wiki/www/awstats/classes/;
    }  
   location /css/{
      alias /home/wiki/www/awstats/css/;
   }  
   location /icon/ {
      alias /home/wiki/www/awstats/icon/;
   }
(4) 生成 awstats 配置文件
Cd /usr/local/awstats/tools
Perl  awstats_configure.pl 按照提示做,基本没问题。(配置文件会生成在 /etc/awstats 下)
为什么不将 tools 目录也移走呢?
答案:因为 awstats 的默认目录在 /usr/local/awstats ,如果我移走了这个,在生成配置文件时,需要从 wwwroot 下读取一个默认的配置文件,可惜我改了名字,所以不能移动了。除非我将有这样的一个目录 /usr/local/webserver/awstats/wwwroot/cgi-bin 等在第二步拷过来的目录,可惜我只有 /usr/local/webserver/awstats/ cgi-bin ,这样,我需要修改 nginx.cfg 那样,我访问的时候就要
[url]http://wikiob.xxxx.com/awstats/wwwroot/cgi-bin/awststs.pl[/url] ,这样不容易记忆,也不习惯。曾想用 alias 来实现,
location /awstats/ {
   alias /home/wiki/www/awstats/wwwroot/;
}
Location ~ ^/awstats /cgi-bin/.*\.(cgi|pl)?${
但后面还是出现了很多问题,
所以,只能不移了。
5 )修改 awstats 的配置文件
Vi /etc/awstats/awstats.wikiob.xxxx.com
Logfile=”/home/wiki/www/logs/wikilogs.log”
Mkdir /var/lib/awstats
Chown �CR www:www /var/lib/awstats
(6) 添加 crontab
Crontab �Ce
*/5     *       *       *       *     /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wikiob.xxxx.com
[ 完成 ]
[url]http://wikiob.xxxx.com/awstats/cgi-bin/awstats.pl[/url]
便可以正常访问了。
[ 总结 ]
朋友的力量是无穷的 ……. 天助自助者。嘻嘻。。。。本文仅供参考 .

你可能感兴趣的:(nginx,职场,awstats,休闲)