首頁 >後端開發 >php教程 >python基於nginx訪問日誌統計客戶端ip訪問量

python基於nginx訪問日誌統計客戶端ip訪問量

WBOY
WBOY原創
2016-08-08 09:22:211249瀏覽

專業的統計網站,例如百度統計,Google Analytics,cnzz等統計後台提供的都是站長常用的統計指標,比如uv,pv,在線時長,ip等,另外由於網絡原因,我發現Google Analytics會比百度統計多幾百的ip,所以想自己寫腳本來了解下真正的訪問量有多少,不過基於nginx的訪問日誌會比統計後台多不少,因為有不少蜘蛛的訪問也會被統計進來,還有靜態文件的統計,其實如果演算法改進的話完全可以過濾掉那些無用的統計數據,今天給牛牛們分享下最基礎的統計,另外也是為了學習和回顧python語言。

例如,伺服器上有nginx的log如下:

221.221.155.54 - - [02/Aug/2014:15:16:11 +0800] "GET / HTTP/1.1" 200 8482 "http zuidaima.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" "-" "0.020"2157 Safari/537.36" "-" "0.020"21251. /2014:15:16:11 +0800] "GET / HTTP/1.1" 200 8482 "http://www.zuidaima.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" "-" "0.020"
221.221.155.54 - - [02/Aug/2014:15:16:11 +0800] "GET //2014:15:16:11 +0800] "GET //18485:18482:18484820 //www.zuidaima.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36" "-" "0.020"
腳本

stat_ip.py

#encoding=utf8

import re

zuidaima_nginx_log_path="/usr/local/nginx/logs/www.zuidaima.com.access.log"
pattern = re.compile(r'^dess. 3}.d{1,3}.d{1,3}.d{1,3}')
def stat_ip_views(log_path):
    ret={}
    f = open(log_path, "r")ret={}
    f = open(log_path, "r"))={}
    f = open(log_path, "r")
for
for🎠 for line in f:
        match = pattern.match(line)
        if match:
       ip in ret:
                views=ret[ip]
                      views=views +1
            ret[ip]=views
    return ret
def run():
     for ip in ip_views:
        views=ip_views[ip]
        if len(max_ip_view)= =0:
            max_ip_view[ip]=views
        else:
          _views=max_ip_view[_ip]
            if views>_views:
              max_ip_view.pop(_ip )
        print "ip:", ip, ",views:", views
    #總共有多少ip
    print " ", len(ip_views)
    print " 
run ()
運行結果如下:


ip: 221.221.155.53 ,views: 1
ip: 221.221.155.54 ,views: 2
total: 2
max_yview:25.了所有ip的訪問量及其最大ip的訪問。


以上就介紹了python基於nginx存取日誌統計客戶端ip訪問量,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn