1. 程式人生 > >tomcat日誌文件 訪問IP統計

tomcat日誌文件 訪問IP統計

執行 mat python腳本 日誌文件 keys group else con logs

tomcat ?localhost_access_log.2018-09-19.txt日誌文件 訪問IP統計

172.16.8.11 - - [19/Sep/2018:12:35:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613
172.16.8.1 - - [19/Sep/2018:12:43:08 +0800] "GET /images/loading.gif HTTP/1.1" 200 404
172.16.8.1 - - [19/Sep/2018:12:43:08 +0800] "POST /init HTTP/1.1" 200 207

172.16.8.1 - - [19/Sep/2018:12:43:12 +0800] "POST /init HTTP/1.1" 200 207
172.16.8.1 - - [19/Sep/2018:12:43:16 +0800] "GET / HTTP/1.1" 200 7612
172.16.8.1 - - [19/Sep/2018:12:43:16 +0800] "GET /css/default-init.css?1537325099834 HTTP/1.1" 304 -
172.16.8.1 - - [19/Sep/2018:12:43:16 +0800] "GET /js/lib/jquery/jquery.min.js HTTP/1.1" 304 -
172.16.8.1 - - [19/Sep/2018:12:43:16 +0800] "GET /images/logo.png HTTP/1.1" 304 -
172.16.8.11 - - [19/Sep/2018:12:45:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:12:55:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:13:05:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:13:15:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613
172.16.8.11 - - [19/Sep/2018:13:25:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613
172.16.8.11 - - [19/Sep/2018:13:35:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613
172.16.8.11 - - [19/Sep/2018:13:45:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613
172.16.8.11 - - [19/Sep/2018:13:55:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:14:05:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:14:15:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:14:25:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:14:35:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7612
172.16.8.11 - - [19/Sep/2018:14:45:21 +0800] "GET /console/stat/onlineVisitorRefresh HTTP/1.1" 200 7613

SHELL腳本

[root@localhost logs]# awk ‘{aaa[$1]++;} END{for(i in aaa) { printf("%s\t%s\n", aaa[i], i); }}‘ localhost_access_log.2018-09-19.txt | sort -bn
2?? ?127.0.0.1
24?? ?172.16.8.1
26?? ?172.16.8.11
[root@localhost logs]# grep -i -o -E -r -e "([0-9]{1,3}.){3}[0-9]{1,3}" localhost_access_log.2018-09-19.txt | sort -n | uniq -c | sort -n
? ? ? 2 127.0.0.1
? ? ?24 172.16.8.1
? ? ?26 172.16.8.11
[root@localhost logs]# awk ‘{print $1}‘ localhost_access_log.2018-09-19.txt | grep -E "([0-9]{1,3}.){3}[0-9]{1,3}" | sort | uniq -c | sort -g
? ? ? 2 127.0.0.1
? ? ?24 172.16.8.1
? ? ?26 172.16.8.11
PYTHON腳本

cat log.py?
import re
mydict = {}
with open(‘localhost_access_log.2018-09-19.txt‘) as f:
? ? ? ? for line in f:
? ? ? ? ? ? ? ? match = re.match(r‘([0-9]{1,3}.){3}[0-9]{1,3}‘, line)
? ? ? ? ? ? ? ? if match:
? ? ? ? ? ? ? ? ? ? ? ? ip = match.group()
? ? ? ? ? ? ? ? ? ? ? ? if ip in mydict.keys():
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mydict[ip] += 1
? ? ? ? ? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mydict[ip] = 1

print mydict

執行結果
[root@localhost logs]# python log.py?
{‘172.16.8.1‘: 24, ‘172.16.8.11‘: 27, ‘127.0.0.1‘: 2}

tomcat日誌文件 訪問IP統計