日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
通過(guò)Lars分析Web服務(wù)器日志

Lars 是 Python 寫的 Web 服務(wù)器日志工具包。這意味著你可以使用 Python 通過(guò)簡(jiǎn)單的代碼來(lái)回溯(或?qū)崟r(shí))解析日志,并對(duì)數(shù)據(jù)做任何你想做的事:將它存儲(chǔ)在數(shù)據(jù)庫(kù)中、另存為 CSV 文件,或者立即使用 Python 進(jìn)行更多分析。

創(chuàng)新互聯(lián)公司是一家以重慶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站推廣、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為PE包裝袋等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。

Lars 是 Dave Jones 寫的另一個(gè)隱藏的寶石。我最初是在本地 Python 用戶組中看到 Dave 演示 lars。幾年后,我們開(kāi)始在 piwheels 項(xiàng)目中使用它來(lái)讀取 Apache 日志并將行插入到我們的 Postgres 數(shù)據(jù)庫(kù)中。當(dāng)樹(shù)莓派用戶從 piwheels.org下載 Python 包時(shí),我們會(huì)記錄文件名、時(shí)間戳、系統(tǒng)架構(gòu)(Arm 版本)、發(fā)行版名稱/版本,Python 版本等。由于它是一個(gè)關(guān)系數(shù)據(jù)庫(kù),因此我們可以將這些結(jié)果加入其他表中以獲得有關(guān)文件的更多上下文信息。

你可以使用以下方法安裝lars:

$ pip install lars

在某些系統(tǒng)上,正確的方式是 sudo pip3 install lars。

首先,找到一個(gè) Web 訪問(wèn)日志并制作一個(gè)副本。你需要將日志文件下載到計(jì)算機(jī)上進(jìn)行操作。我在示例中使用的是 Apache 日志,但是經(jīng)過(guò)一些?。ㄇ抑庇^)的更改,你可以使用 Nginx 或 IIS。在典型的 Web 服務(wù)器上,你會(huì)在 /var/log/apache2/ 中找到 Apache 日志,通常是 access.log、ssl_access.log(對(duì)于 HTTPS)或 gzip 壓縮后的輪轉(zhuǎn)日志文件,如 access-20200101.gz 或者 ssl_access-20200101.gz 。

首先,日志是什么樣的?

81.174.152.222 - - [30/Jun/2020:23:38:03 +0000] "GET / HTTP/1.1" 200 6763 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0 

這是一個(gè)顯示了請(qǐng)求源 IP 地址、時(shí)間戳、請(qǐng)求文件路徑(在本例中是主頁(yè) /)、HTTP 狀態(tài)代碼,用戶代理(Ubuntu 上的 Firefox)等的請(qǐng)求。

你的日志文件將充滿這樣的條目,不僅是每個(gè)打開(kāi)的頁(yè)面,還包括返回的每個(gè)文件和資源:每個(gè) CSS 樣式表、JavaScript 文件和圖像,每個(gè) 404 請(qǐng)求、每個(gè)重定向、每個(gè)爬蟲(chóng)。要從日志中獲取有意義的數(shù)據(jù),你需要對(duì)條目進(jìn)行解析、過(guò)濾和排序。這就是 Lars 的用處。本示例將打開(kāi)一個(gè)日志文件并打印每一行的內(nèi)容:

with open('ssl_access.log') as f:
   with ApacheSource(f) as source:
       for row in source:
           print(row)

它會(huì)為每條日志顯示如下結(jié)果:

Row(remote_host=IPv4Address('81.174.152.222'), ident=None, remote_user=None, time=DateTime(2020, 6, 30, 23, 38, 3), request=Request(method='GET', url=Url(scheme='', netloc='', path_str='/', params='', query_str='', fragment=''), protocol='HTTP/1.1'), status=200, size=6763)

它解析了日志條目,并將數(shù)據(jù)放入結(jié)構(gòu)化格式中。該條目已成為具有與條目數(shù)據(jù)相關(guān)屬性的命名元組namedtuple,因此,例如,你可以使用 row.status 訪問(wèn)狀態(tài)代碼,并使用 row.request.url.path_str 訪問(wèn)路徑:

with open('ssl_access.log') as f:
   with ApacheSource(f) as source:
       for row in source:
           print(f'hit {row.request.url.path_str} with status code {row.status}')

如果你只想顯示 404 請(qǐng)求,可以執(zhí)行以下操作:

with open('ssl_access.log') as f:
   with ApacheSource(f) as source:
       for row in source:
           if row.status == 404:
               print(row.request.url.path_str)

你可能要對(duì)這些數(shù)據(jù)去重,并打印獨(dú)立的 404 頁(yè)面數(shù)量:

s = set()
with open('ssl_access.log') as f:
   with ApacheSource(f) as source:
       for row in source:
           if row.status == 404:
               s.add(row.request.url.path_str)
print(len(s))

我和 Dave 一直在努力擴(kuò)展 piwheel 的日志記錄器,使其包含網(wǎng)頁(yè)點(diǎn)擊量、軟件包搜索等內(nèi)容,歸功于 lars,這些并不難。它不會(huì)告訴我們有關(guān)用戶的任何答案。我們?nèi)匀恍枰M(jìn)行數(shù)據(jù)分析,但它去掉了復(fù)雜不便的文件格式,并以我們可以利用的方式將它放入我們的數(shù)據(jù)庫(kù)。


分享題目:通過(guò)Lars分析Web服務(wù)器日志
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/dhidgop.html