shell脚本通过日志来统计网站pv 404 500状态码

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

  1. #!/bin/bash
  2. #purpose:count nginx or apache or other webserver status code using jiankongbao
  3. #how to:run the script every 5 minutes with crontab
  4. #write by zhumaohai.
  5. #blog: https://www.centos.bz/
  6.  
  7. log_path="/var/log/nginx/www.centos.bz/access.log"
  8. becur=`date -d "5 minute ago" +%H%M%S`
  9. code=(`tac $log_path  | awk  -v -v total=0 -F [' ':] '{
  10. t=$5$6$7
  11. if (t>=a){
  12. code[$12]++
  13. total++
  14. }
  15. else {
  16. exit;
  17. }
  18. }END{
  19. print code[404]?code[404]:0,code[500]?code[500]:0,total
  20. }'
  21. `)
  22. c404=${code[0]}
  23. c500=${code[1]}
  24. total=${code[2]}
  25. echo -e "<pre>\nc404:${c404}\nc500:${c500}\ntotal:${total}\n</pre>" > /data/www/status/www.centos.bz.html

脚本最后一行是以:

  1. <pre>
  2. c404:1102
  3. c500:545
  4. total:55463
  5. </pre>

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

标签:Shell 发布于:2019-11-22 10:51:46