使用shell脚本分析网站日志统计PV、404、500等数据

下面的脚本能统计出网站的总访问量,以及404,500出现的次数。统计出来后,我们可以结合监控宝来进行记录,进而可以看出网站访问量是否异常,是否存在攻击,一目了然。还可以根据查看500出现的次数,进而判断网站程序是否出现异常。


代码如下:

#!/bin/bash
#purpose:count nginx or apache or other webserver status code using jiankongbao
#how to:run the script every 5 minutes with crontab

log_path="/var/log/nginx/www.jb51.net/access.log"
becur=`date -d "5 minute ago" +%H%M%S`
code=(`tac $log_path  | awk  -v a="$becur" -v total=0 -F [' ':] '{
t=$5$6$7
if (t>=a){
code[$12]++
total++
}
else {
exit;
}
}END{
print code[404]?code[404]:0,code[500]?code[500]:0,total
}'
`)
c404=${code[0]}
c500=${code[1]}
total=${code[2]}
echo -e "<pre>\nc404:${c404}\nc500:${c500}\ntotal:${total}\n</pre>" > /data/www/status/www.jb51.net.html

脚本最后一行是以:


代码如下:

<pre>
c404:1102
c500:545
total:55463
</pre>

的格式写入到一个www.jb51.net html文件,再结合监控宝的自定义监控来收集这些信息。非常的方便,监控宝会自动出图表。

(0)

相关推荐

  • shell脚本实现的网站日志分析统计(可以统计9种数据)

    写了个shell脚本,可以用来统计每天的访问日志,并发送到电子邮箱,方便每天了解网站情况.脚本统计了:1.总访问量2.总带宽3.独立访客量4.访问IP统计5.访问url统计6.来源统计7.404统计8.搜索引擎访问统计(谷歌,百度)9.搜索引擎来源统计(谷歌,百度) 复制代码 代码如下: #!/bin/bashlog_path=/home/www.jb51.net/log/access.log.1domain="jb51.net"email="log@jb51.net&quo

  • 利用shell命令统计日志的方法详解

    前言 大家都知道,通过使用 shell 命令可以很方便地对日志进行统计和分析,当服务有异常的时候,需要去排查日志,那么掌握一种统计日志的技巧就是必不可少的了. 假设有一个包含下面内容的日志文件 access.log.我们以统计这个文件的日志为例. date=2017-09-23 13:32:50 | ip=40.80.31.153 | method=GET | url=/api/foo/bar?params=something | status=200 | time=9.703 | bytes=

  • 使用shell脚本分析网站日志统计PV、404、500等数据

    下面的脚本能统计出网站的总访问量,以及404,500出现的次数.统计出来后,我们可以结合监控宝来进行记录,进而可以看出网站访问量是否异常,是否存在攻击,一目了然.还可以根据查看500出现的次数,进而判断网站程序是否出现异常. 复制代码 代码如下: #!/bin/bash#purpose:count nginx or apache or other webserver status code using jiankongbao#how to:run the script every 5 minut

  • shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在做优化时候,经常用到的一段shell 脚本. 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery . 以下是我的:nginx 配制 复制代码 代码如下: log_format  main  '$remote_addr - $remote_user [$ti

  • 一文教会你使用Nginx访问日志统计PV与UV

    目录 前言 一.方案设计 二.上报访问事件 三.Nginx配置日志格式 四.日志切割 五.Nodejs脚本分析日志,统计PV.UV 六.展望 前言 一个网站当用户量增大时候,不可避免有统计pv和uv的需求. UV(Unique Visitor):独立访客,以cookie为依据区分不同访客,UV计算一天之内(00:00-24:00),访问网站的访客数量. PV(Page View):页面访问量,同一个用户对页面多次访问累计. 本文介绍一种通过分析nginx日志统计pv.uv的方法. 一.方案设计

  • Apache下通过shell脚本提交网站404死链的方法

    网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链(协议死链.404页面)进行提交,可快速删除死链,帮助网站SEO优化.在提交死链的文件中逐个手动填写死链的话太麻烦,工作中我们提倡复杂自动化,所以本文我们一起交流分享Apache服务中通过shell脚本整理网站死链,便于我们提交. . 1.配置Apache记录搜索引擎 Apache是目前网站建设最为主

  • shell脚本实现分日志级别输出的方法

    shell脚本如何优雅的记录日志信息,下面让我们一步一步,让shell脚本的日志也变得高端起来,实现如下功能 ①设定日志级别,实现可以输出不同级别的日志信息,方便调试 ②日志格式类似为:[日志级别] 时间 funcname:函数名 [lineno:行号] 日志信息 ③不同级别,设定不同颜色 ④让其变为函数库文件,重用代码 下面看看我用shell记录日志的进化之路 1.最简单的日志记录方式 对于刚入门的同学,记录日志一般用echo加重定向方式,这应该是最原始的方式了^_^ echo "log me

  • 使用shell脚本对Nginx日志进行切分的示例代码

    本文介绍了使用shell脚本对Nginx日志进行切分的示例代码,分享给大家,具体如下: 1.日志格式 默认的日志格式: main log_format main '$remote_addr - $remote_user [$time_local] "$request" ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_f

  • shell脚本查看k8s日志介绍

    目录 占位符的方式 指定参数 getopts 问题 1.执行 shell 脚本\r问题 2.命令中的grep 查看日志:kubectl logs -f podName --tail 100 比如我们如果想查指定的pod,指定行数,指定的内容,每次都需要输入kubectl logs -f xxx --tail yyy | grep zzz为了方便,可自定义脚本,输入sh .sh xxx yyy zzz即可,并且xxx支持RE; 占位符的方式 #!/bin/bash # kubectl get po

  • Shell脚本监控网站页面正常打开情况

    现在单位为了省钱,我用了shell脚本,简单的写了一个监控.通过curl一个固定页面的200状态码,如果是200,就说网站是正常的,如果不是200就自动重启网站,然后发邮件到QQ邮箱.自己在上QQ的同时,通过微信也可以收到报警,不但可以收到报警,还可以解决问题.基本上也可以解决web的故障. 复制代码 代码如下: #! /bin/bash source /etc/profile A="web is Good !" ip=`ifconfig eth0 | grep "inet

  • Shell脚本实现apache日志中的状态码分析

    一.首先将apache日志按天切割 复制代码 代码如下: vi /etc/httpd/conf/httpd.conf         ErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480"        CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480" combined 二.重启apache服务 复制代码 代码如下

  • shell脚本设置日志格式的方法

    shell脚本设置日志格式 1.封装函数 #!/bin/bash function log() { echo "$@" } //测试: log "this is a test..." log "today is `date '+%Y-%m-%d'` " 2.设置时间日志 #!/bin/bash function log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $@" } log "

随机推荐