AWStats分析Nginx访问日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

    AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。

    它可以统计您站点的如下信息:

  • 访问量(UV),访问次数,页面浏览量(PV),点击数,数据流量等

  • 精确到每月、每日、每小时的数据

  • 访问者国家

  • 访问者IP

  • Robots/Spiders的统计

  • 访客持续时间

  • 对不同Files type的统计信息

  • Pages-URL的统计

  • 访客操作系统浏览器等信息

  • 其它信息(搜索关键字等等)

    下面是AWStats分析Nginx日志的操作步骤:

一、配置nginx日志格式

    修改nginx.conf的日志格式,不然awstats无法分析。

1
2
3
4
     log_format access  '$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 access;

    注意,日志格式里的双引号不能漏了且每个参数之间是一个空格分隔,因为只要有细微的差别,awstats就无法读取日志。

    改好后,使nginx重读配置文件:

1
shell # nginx -t && nginx -s reload

二、自动切割nginx日志

    每天晚上23点59分定时执行一个shell脚本来切割nginx日志。脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
#
# Filename:    nginxCutLog.sh
# Author:      Qicheng
# Website:     http://qicheng0211.blog.51cto.com/
# Description: 切割nginx日志
# Notes:       设置crontab,每天23点59分定时执行
#
ROOT_UID=0
if  "$UID"  - ne  "$ROOT_UID"  ]; then
     echo  "Error: 必须以root用户运行此程序!"
     exit  1
fi
 
nginx_logs_dir= "/var/log/nginx"
nginx_pid_file= "/var/run/nginx.pid"
# 切割后的日志文件名,例如access_20141022.log
nginx_log_today= "$nginx_logs_dir/access_`date +%Y%m%d`.log"
 
while  [ ` date  +%S` - ne  59 ]; do
         sleep  1
done
sleep  1
[ -f  "$nginx_log_today"  ] &&  exit  1
mv  $nginx_logs_dir /access .log $nginx_log_today
# 给nginx发送USR1信号,使重新打开新的access.log日志文件
[ -f $nginx_pid_file ] &&  /bin/kill  -USR1 $( cat  $nginx_pid_file)

    设置crontab:

1
59 23 * * *  /bin/bash  /yourscriptpath/nginxCutLog .sh

三、安装awstats

1
2
3
4
shell # wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz
shell # tar -zxvf awstats-7.0.tar.gz
shell # mv awstats-7.0 /usr/local/awstats
shell # mkdir -p /var/lib/awstats

四、配置awstats

    进入/usr/local/awstats/tools/目录,执行配置脚本awstats_configure.pl:

1
2
shell # cd /usr/local/awstats/tools/
shell # ./awstats_configure.pl

wKiom1RHIZLC7_9AAAb4OHgq8T4716.jpg

    程序执行结束后,会在/etc/awstats/目录下生成你的配置文件。然后编辑配置文件,修改LogFile参数,跟日志切割脚本中的日志路径对应起来:

1
LogFile= "/var/log/nginx/access_%YYYY-24%MM-24%DD-24.log"

    注意,这里日期格式“%YYYY-24%MM-24%DD-24”,是指24小时之前的年月日,也就是昨天的日期。

    测试:

1
shell # /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=yourwebsite

    注意:-config=后面的参数是你在执行awstats_configure.pl时输入的站点域名。

wKiom1RHUo3RAos-AAJFMJnsCX0874.jpg

五、配置awstats生成静态页面

    利用awstats的工具将统计的结果生成静态文件:

1
2
shell # mkdir -p /var/www/awstats
shell # /usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=yourwebsite -lang=cn -dir=/var/www/awstats -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

    注意:-config=后面的参数是你在执行awstats_configure.pl时输入的站点域名;-dir=是统计结果静态文件的输出目录。

    设置crontab,每天凌晨00:01定时更新静态页面:

1
1 0 * * *  /usr/local/awstats/tools/awstats_buildstaticpages .pl -update -config=yourwebsite -lang=cn - dir = /var/www/awstats  -awstatsprog= /usr/local/awstats/wwwroot/cgi-bin/awstats .pl

    一般站长都不愿随便让人知道自己站的真实流量,所以要把awstats统计结果页面进行密码保护,这里需要用到apache自带的工具htpasswd:

1
2
3
4
5
shell # yum -y install httpd-tools
shell # htpasswd -cd admin.pass admin
New password: 
Re- type  new password: 
Adding password  for  user admin

    把生成的密码文件admin.pass放到nginx主配置目录下(/etc/nginx/)。

    在nginx配置扩展目录(/etc/nginx/conf.d/)下新建awstats.conf配置文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
     listen       83;
     server_name  localhost;
     location ~ ^ /awstats/  {      # html 静态页面目录
         root    /var/www ;
         index  index.html;
         access_log off;
         error_log off;
         charset gb2312;
         auth_basic  "admin" ;
         auth_basic_user_file admin.pass;
     }
 
     location ~ ^ /icon/  {         # 图标目录
         root    /usr/local/awstats/wwwroot ;
         index  index.html;
         access_log off;
         error_log off;
     }
 
     location / {
         return  403;
     }
}

最后使nginx重读配置文件,用浏览器查看统计结果 http://yourhostname:83/awstats/awstats.yourwebsite.html

日志分析页面示例:

wKiom1RHSUKylF9SAAWotBFTXts481.jpg


参考资料:

http://baike.baidu.com/view/228748.htm?fr=aladdin

http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/(有些错误,已在本文中纠正)



本文转自 张斌_青岛 51CTO博客,原文链接:http://blog.51cto.com/qicheng0211/1566682

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
|
7月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
7月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
534 117
|
4月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
620 0
|
6月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
694 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
5月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
8月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
337 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
2月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
234 1
|
6月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
691 87
|
6月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。

热门文章

最新文章