最近在深入系统运维的事情,从服务器配置、调优、维护,到各种脚本编写。实现自动化智能运维的目标还要很远。
从nginx的日志中分析每日有效的pv和各搜索引擎爬虫的请求数。脚本用awk实现。
函数库文件 stat_func.sh
- #!/bin/bash
- stat_log_path=/usr/local/qqsa/result
- stat_nginx_log()
- {
- localbasename=`basename$1`
-
localnewfile="${stat_log_path}/${basename%%.*}.pv.`date+'%Y-%m-%d'`"
- awk-F/"'
- {
-
if($2~/css|txt|ico/)res["static"]++;
-
elseif($6~/Baiduspider/){res["baidu"]++;res["spider"]++;}
-
elseif($6~/Googlebot/){res["google"]++;res["spider"]++;}
-
elseif($6~/Yahoo!Slurp/){res["yahoo"]++;res["spider"]++;}
-
elseif($6~/Sogouwebspider/){res["sogou"]++;res["spider"]++;}
-
elseif($6~/Sosospider/){res["soso"]++;res["spider"]++;}
-
elseif($6~/YodaoBot/){res["youdao"]++;res["spider"]++;}
-
elseif($6~/msnbot/){res["msnbot"]++;res["spider"]++;}
-
elseif($6~/iaskspider/){res["sina"]++;res["spider"]++;}
-
elseres["good"]++;
- }
- END{
-
for(iteminres)printitem":"res[item]
- }'$1>$newfile
- }
执行文件 stat_every_day.sh
- #!/bin/bash
- ../stat_func.sh
-
date=`date+'%Y-%m-%d'`
-
find/data/cs_log_backup/${date}-name"*.access.*"|/
-
whilereadfile
-
do
-
$(stat_nginx_log"$file")
- done
crontab -e
最下面增加一行
00 3 * * * /usr/local/maintain/stat_every_day.sh > /dev/null 2 >& 1
参考文献:
http://tech.foolpig.com/2008/07/09/linux-shell-char/ shell字符串的截取
http://storysky.blog.51cto.com/628458/270671用AWK来过滤nginx日志中的特定值
http://storysky.blog.51cto.com/628458/271560用SED+AWK来分析NGINX日志
http://book.douban.com/subject/1236944/sed与awk
转载http://blog.csdn.net/LongMarch12/archive/2011/02/24/6204550.aspx
最近在深入系统运维的事情,从服务器配置、调优、维护,到各种脚本编写。实现自动化智能运维的目标还要很远。
从nginx的日志中分析每日有效的pv和各搜索引擎爬虫的请求数。脚本用awk实现。
函数库文件 stat_func.sh
- #!/bin/bash
- stat_log_path=/usr/local/qqsa/result
- stat_nginx_log()
- {
- localbasename=`basename$1`
-
localnewfile="${stat_log_path}/${basename%%.*}.pv.`date+'%Y-%m-%d'`"
- awk-F/"'
- {
-
if($2~/css|txt|ico/)res["static"]++;
-
elseif($6~/Baiduspider/){res["baidu"]++;res["spider"]++;}
-
elseif($6~/Googlebot/){res["google"]++;res["spider"]++;}
-
elseif($6~/Yahoo!Slurp/){res["yahoo"]++;res["spider"]++;}
-
elseif($6~/Sogouwebspider/){res["sogou"]++;res["spider"]++;}
-
elseif($6~/Sosospider/){res["soso"]++;res["spider"]++;}
-
elseif($6~/YodaoBot/){res["youdao"]++;res["spider"]++;}
-
elseif($6~/msnbot/){res["msnbot"]++;res["spider"]++;}
-
elseif($6~/iaskspider/){res["sina"]++;res["spider"]++;}
-
elseres["good"]++;
- }
- END{
-
for(iteminres)printitem":"res[item]
- }'$1>$newfile
- }
执行文件 stat_every_day.sh
- #!/bin/bash
- ../stat_func.sh
-
date=`date+'%Y-%m-%d'`
-
find/data/cs_log_backup/${date}-name"*.access.*"|/
-
whilereadfile
-
do
-
$(stat_nginx_log"$file")
- done
crontab -e
最下面增加一行
00 3 * * * /usr/local/maintain/stat_every_day.sh > /dev/null 2 >& 1
参考文献:
http://tech.foolpig.com/2008/07/09/linux-shell-char/ shell字符串的截取
http://storysky.blog.51cto.com/628458/270671用AWK来过滤nginx日志中的特定值
http://storysky.blog.51cto.com/628458/271560用SED+AWK来分析NGINX日志
http://book.douban.com/subject/1236944/sed与awk
转载http://blog.csdn.net/LongMarch12/archive/2011/02/24/6204550.aspx
分享到:
相关推荐
awk测试从nginx查询qps的测试日志
通过分析日志,我们可以找出性能瓶颈,优化服务器配置,提升服务效率。 **蜘蛛抓取统计**对于网站SEO(搜索引擎优化)具有重要意义。记录并分析搜索引擎爬虫的访问频率和行为,可以调整网站内容更新策略,提高搜索...
Nginx作为一款高性能的Web服务器,其日志记录了服务器与客户端交互的详细信息,这些信息对于监控、性能优化、安全分析等至关重要。本话题将围绕“统计Nginx日志里前一个小时的IP数量以及iOS占比”这一主题展开,讲解...
它的日志记录了服务器与客户端之间的交互详情,通过分析这些日志,我们可以获取到宝贵的性能数据、安全信息以及故障排查线索。本篇文章将详细介绍如何利用Linux shell命令来分析Nginx的日志文件。 首先,了解Nginx...
分析日志文件通常使用命令行工具,如`grep`、`awk`、`sort`和`uniq`,或者使用专门的日志分析软件如Logstash、Splunk和ELK(Elasticsearch、Logstash、Kibana)堆栈。对于大型日志,可能需要实时分析,这时可以考虑...
环境:linux 优点:可分析大日志,大量文件,避免java分析大日志的数据量过大导致的内存泄漏问题。 高效,调用linux shell预筛选,不需... 快速,2-3G的文件可在几十秒内完成筛选,相对java代码分析日志速度明显提升。
本文将介绍一个用于分析`nginx`日志的`shell`脚本,该脚本能够帮助我们找出访问次数最多和最耗时的页面,从而针对性地进行优化。这个脚本类似于`MySQL`中的慢查询日志分析,但针对的是Web页面的慢访问情况。 首先,...
总的来说,使用MongoDB分析Nginx日志提供了一种高效且灵活的方法,可以帮助开发者深入了解网站的访问情况,及时发现潜在问题,并为优化性能、提高用户体验提供数据支持。通过结合其他工具和语言,如Python的...
Nginx日志切割脚本主要用于定期处理Nginx产生的日志文件,包括旧日志文件的归档压缩、新日志文件的创建等操作,以减少日志文件占用的空间,同时方便后续的日志分析。 **脚本内容分析:** 1. **变量定义:** - `...
以下是对Nginx日志分析及IP屏蔽配置的详细说明。 首先,分析Nginx日志是识别潜在采集者IP的关键步骤。`nginx.access.log`是Nginx服务器默认的日志文件,记录了所有HTTP请求的信息。通过`awk`命令,我们可以提取出IP...
在IT行业中,日志分析是一项至关重要的任务...总的来说,通过使用Java的多线程能力和自定义规则,我们可以构建一个高效且灵活的Nginx Access Log分析器,超越传统的AWK解决方案,为IT运维人员提供强大的日志处理工具。
1. Nginx日志处理:该文件提到了针对Nginx服务器日志的处理,这是一个对网站管理员十分重要的任务,因为分析服务器日志有助于监控网站运行状况、了解访问者行为、进行安全审计以及优化网站性能。 2. Windows环境下...
本文主要给大家总结了关于Nginx日志统计分析的一些常用命令,分享出来供大家参考学习,下面来一起看看详细的介绍: 一、IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一...
对于独立IP的统计,可以通过分析日志文件,将一天内出现多次的相同IP地址进行去重处理。在日志输出格式中,$remote_addr变量代表了客户端IP地址,通过日志分析工具或者脚本来统计每天独立出现的IP地址数量,即可得到...
#shell脚本处理nginx日志自动生成ip黑名单 ##统计访问量前10名的ip并写入文件 #!/bin/bash data=`date +%Y-%m-%d` #统计访问量最高的前10ip awk '{print $1}' '/PATH/'$data'.log' | sort -n |uniq -c | sort -rn | ...
Shell脚本是Linux/Unix系统中用于自动化任务的编程语言,它可以帮助用户高效地处理文本文件,例如Nginx的日志文件。在这个特定的场景中,我们有一个专门用于查看Nginx日志中搜索引擎蜘蛛爬取活动的shell脚本。Nginx...
tail -f /var/log/nginx/access.log | awk '{print "UTF-8:" $0}' > /var/log/nginx/access_utf8.log ``` 这样,`access_utf8.log`文件将会以UTF-8编码存储日志信息,从而避免中文乱码。 总结来说,安装Nginx并...
该awk脚本处理的日志格式与Apache和Nginx Web服务器经常使用的“组合”日志相匹配。 如果您的日志文件格式不同,请进行相应的修改,但这是此脚本默认期望的组合格式,以供参考: %h %l %u %t "%r" %>s %b "%{...