常用日志统计脚本
常用日志分析脚本,日志样例如下
2022-12-02 17:00:02,580 [reactor-http-epoll-7] O [com.my.gateway.filter.RequestGlobalFilter] RequestGlobalFilter.java:46 - request http://gateway/myapp/graphql remote address 110.242.12.19
统计文件中匹配规则的行数
统计 2022-12-02 日 17 点至 18 点包含 RequestGlobalFilter
关键字的行数
$ cat my-gateway_9999.log | grep '2022-12-02 17.*RequestGlobalFilter' | wc -l
24003
统计 2022-12-02 日 17 点至 18 点包含 RequestGlobalFilter
并且请求路径包含 myapp
关键字的行数
$ cat my-gateway_9999.log | grep '2022-12-02 17.*RequestGlobalFilter.*myapp.*' | wc -l
6369
分组统计
统计 2022-12-02 日 17 点至 18 点包含 RequestGlobalFilter
按照客户端 IP 地址统计每个客户端的请求行数
$ cat my-gateway_9999.log | grep '2022-12-02 17.*RequestGlobalFilter.*' | awk -F ' ' '{count[$14]++;} END {for(i in count) {print i "\t" count[i]}}'
110.242.12.19 6919
110.221.173.234 7003
110.221.172.110 1
110.242.15.91 2
110.219.216.34 1
110.219.216.35 5
110.242.12.20 9113
110.234.255.139 294
110.221.171.81 6
110.221.173.212 241
110.234.255.141 418
统计 2022-12-02 日 17 点至 18 点包含 RequestGlobalFilter
按照请求路径统计每个客户端的请求行数
$ cat my-gateway_9999.log | grep '2022-12-02 17.*RequestGlobalFilter.*' | awk -F ' ' '{count[$11]++;} END {for(i in count) {print i "\t" count[i]}}'
统计 2022-12-02 日 17 点至 18 点包含 RequestGlobalFilter
按照请求路径统计每个客户端的请求行数(并过滤出行数统计大于 500 的)
$ cat my-gateway_9999.log | grep '2022-12-02 17.*RequestGlobalFilter.*' | awk -F ' ' '{count[$11]++;} END {for(i in count) {print i "\t" count[i]}}' | awk -F '\t' '{if($2>500){print $0}}'
http://gateway/app1/graphql 5785
http://110.221.173.236:18005/app2/graphql 845
http://gateway/app3/graphql 875
http://gateway/app4/graphql 943
http://110.221.173.236:18005/myapp/graphql 5758
http://110.221.173.198:8005/myapp/graphql 518
http://gateway/app5/graphql 3274
http://gateway/app6/graphql 1015
http://gateway/app7/graphql 1690