|
原文地址:https://www.akii.org/use-awstats-automatic-analysis-nginx-log.html
完成配置文件的创建后,我们还要修改一下。因为我们是按天切割的日志,切割完成后交由awstats去分析。并不是让awstats去分时正在时时增长的也就是正在被写入的日志,这样的好处是不至于遗漏数据,并且分析已经切割完成的日志,更不用担心会有冲突。坏处是我一天切割一次日志,你要等第二天才能看昨天的一些详细数据。
修改/etc/awstats/awstats.akii.org.conf,执行:
vi /etc/awstats/awstats.akii.org.conf
找到
LogFile="/var/log/httpd/mylog.log"
修改为:
LogFile="/home/www/logs/%YYYY-24/%MM-24/%DD-24/akii.org_access.log"
如果你的日志路径和我的不一样,请修改成对应的日志文件名。以上的完整路径是切割后保存的nginx日志文件。其中%YYYY-24/%MM-24/%DD-24表示年月日都减去24小时,也就是昨天的日志目录。修改完成后按:wq保存退出。
接下来可以测试一下awstats分析日志了(前提是你已经有了切割过的日志,没有的话可以先退行一下切割日志的脚本/root/cut_log.sh)
首先,还要创建一个awstats用于记录数据的目录
mkdir -p /var/lib/awstats
然后运行awstats的wwwroot目录中的awatsts.pl来测试一下
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=akii.org
你如果看到类似下面的提示就说明配置文件都正确了。
Create/Update database for config "/etc/awstats/awstats.akii.org.conf" by AWStats version 7.0 (build 1.964)
From data in log file "/home/www/logs/2010/07/24/akii.org_access.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 43260)
Jumped lines in file: 43260
Found 43260 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records
统计分析完成后,结果还在 Awstats 的数据库中。在 Apache 上,可以直接打开 Perl 程序的网页查看统计。 但本文开始时已经提到,Nginx 对 Perl 支持并不好,所以我们要换个方法,利用 awstats 的工具将统计的结果生成静态文件,具体的步骤如下:
首先在 webroot 目录下创建一个文件夹。例:/home/www/awstats
写一个脚本,定期执行让 Awstats 把静态页面生成到该目录中
先生成存放awstats生成的静态文件的目录,我这里用的是/home/www/awstats
mkdir -p /home/www/awstats
我们来写一个脚本
vim /root/awstats.sh
然后输入以下内容
#!/bin/bash
mkdir -p /home/www/awstats/akii.org
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update \
-config=akii.org -lang=cn -dir=/home/www/awstats/akii.org \
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
上述命令的具体意思如下: /usr/local/awstats/tools/awstats_buildstaticpages.plAwstats 静态页面生成工具-update -config=akii.org 更新配置项-lang=cn 语言为中文-dir=/home/www/awstats统计结果输出目录-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.plAwstats 日志更新程序路径。然后在你的nginx的配置文件中,在你想要安置awstats或默认的ip或域名的server段中,加入关于awstats和icon的两个目录配置。 如一个完整案例:server {listen 80;server_name localhost;root /home/www;index index.html; location ~ ^/awstats/ { # awstats 静态页面目录 root /home/www/awstats; autoindex on; #可以目录浏览你的多个域名的目录用于分析 index index.html; access_log off;} location ~ ^/icon/ { # 图标目录 root /usr/local/awstats/wwwroot; index index.html; access_log off;}}接下来可以测试一下脚本是否可以正确执行 还是别忘了给它可执行权限chmod +x /root/awstats.sh/root/awstats.sh如果你看到它生成了一堆网页,那就说明成功了。 输出信息部分例如 Launch update process : "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -update -configdir=......Build keywords page: "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -staticlinks -lang=cn -output=keywordsBuild errors404 page: "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -staticlinks -lang=cn -output=errors40420 files built.Main HTML page is 'awstats.akii.org.html'.然后可以把它加入自动运行了。 配置awstats脚本自动运行 1crontab -e加入 100 1 * * * /root/awstats.sh然后保存退出。 这样就可以每天在凌晨自动分割日志,并且开始自动用awstats分析nginx的日志了。 认证访问 如果你想给你的awstats加上访问密码,可以见这里:nginx为目录或网站加上密码认证 原创文章,写的辛苦。如果你要转载,请保留出处及链接。 参考资料:http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/index.html
|
|
|