zoukankan      html  css  js  c++  java
  • 利用 awk 统计nginx 中某一个用户的访问次数

      线上总是会遇到攻击,所以就需要分析 access.log 看看那些用户的访问次数不正常,针对这些不正常的用户,要做处理,以 access.log为例说明下怎么统计.

    通过 access.log 日志来统计某个用户的访问次数的方法:(业务场景是登录,然后 access.log 里只有登录的 url,然后我们有一个特定的参数需要客户端传递过来,通过对此参数的过滤来分析行为,因为涉及到用户的数据都是加密的,没办法直接通过用户名直接过滤,access.log 的日志内容我做里处理,为了不泄露线上的数据.下面的 uniqueCode 和我们日志里的某一个字段对应,但是我们日志里是加密的,这里为了简单化,没做加密,统计的方法最重要。)
    1)、access.log 日志内容如下:
    1.2.3.4 - - [04/May/2018:09:26:09 +0800] "POST /XXX/login.htm HTTP/1.1" 200 896 "0.009" "okhttp/3.9.1" "userName=zhuzi&password=z13y14Bao&uniqueCode=88888888"

    2.3.4.5 - - [04/May/2018:09:26:09 +0800] "POST /XXX/login.htm HTTP/1.1" 200 887 "0.010" "okhttp/3.9.1" "userName=zi&password=z13y14Bao&uniqueCode=99999999"

    3.2.3.4 - - [04/May/2018:09:26:09 +0800] "POST /XXX/login.htm HTTP/1.1" 200 896 "0.009" "okhttp/3.9.1" "userName=haiyang&password=21131409oui&uniqueCode=11111111"

    4.3.4.5 - - [04/May/2018:09:26:09 +0800] "POST /XXX/login.htm HTTP/1.1" 200 887 "0.010" "okhttp/3.9.1" "userName=anya&password=213sdfasdf&uniqueCode=44444444"

    4.3.4.5 - - [04/May/2018:09:26:09 +0800] "POST /XXX/login.htm HTTP/1.1" 200 887 "0.010" "okhttp/3.9.1" "userName=anya&password=213sdfasdf&uniqueCode=44444444"

    2)、取出 uniqueCode 

    因为uniqueCode 在最后,有一个 ",所以我们可以添加一个 & 1=1 ,

    sed -i 's/"$/&1=1"/g' access.log

    grep 'uniqueCode' 1_access.log | awk -F '&' '{for(x=1;x<NF;x++)if(index($x, "uniqueCode")>0){print substr($x,12); break}}' >out.log

    3)、统计每个 applicationId 的个数
    cat out.log | awk '{arr[$1]+=1}END{for(i in arr)print i,arr[i]}' | sort -t ' ' -n -k2

    好尴尬,费了好大劲,才写了上面的方法来统计,结果最近发现了一个更简单的方法来统计。哎,还是 linux 不熟呀.

    sort out.log|uniq -c

     

    好了,搞定收工.

  • 相关阅读:
    转:asp.net mvc下的多语言方案 包含Html,Javascript和图片
    转:在ASP.NET MVC中通过URL路由实现对多语言的支持
    转:C# lock用法
    转:SQL 关于apply的两种形式cross apply 和 outer apply
    在ASP.NET MVC 中获取当前URL、controller、action
    转:Newtonsoft.Json高级用法
    转:jQuery插件开发全解析
    转:ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
    转:前端js、jQuery实现日期格式化、字符串格式化
    转:.Net内存泄露原因及解决办法
  • 原文地址:https://www.cnblogs.com/zhuzi91/p/8989598.html
Copyright © 2011-2022 走看看