成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用這個Python工具分析你的Web服務器日志文件

開發 后端
這個 Python 模塊可以以多種格式收集網站使用日志并輸出良好結構化數據以進行分析。

[[337718]]

這個 Python 模塊可以以多種格式收集網站使用日志并輸出良好結構化數據以進行分析。

是否想知道有多少訪問者訪問過你的網站?或哪個頁面、文章或下載最受歡迎?如果你是自托管的博客或網站,那么無論你使用的是 Apache、Nginx 還是 Microsoft IIS(是的,沒錯),lars都可以為你提供幫助。

Lars 是 Python 寫的 Web 服務器日志工具包。這意味著你可以使用 Python 通過簡單的代碼來回溯(或實時)解析日志,并對數據做任何你想做的事:將它存儲在數據庫中、另存為 CSV 文件,或者立即使用 Python 進行更多分析。

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

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

  1. $ pip install lars

在某些系統上,正確的方式是 sudo pip3 install lars

首先,找到一個 Web 訪問日志并制作一個副本。你需要將日志文件下載到計算機上進行操作。我在示例中使用的是 Apache 日志,但是經過一些小(且直觀)的更改,你可以使用 Nginx 或 IIS。在典型的 Web 服務器上,你會在 /var/log/apache2/ 中找到 Apache 日志,通常是 access.logssl_access.log(對于 HTTPS)或 gzip 壓縮后的輪轉日志文件,如 access-20200101.gz 或者 ssl_access-20200101.gz 。

首先,日志是什么樣的?

  1. 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"

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

你的日志文件將充滿這樣的條目,不僅是每個打開的頁面,還包括返回的每個文件和資源:每個 CSS 樣式表、JavaScript 文件和圖像,每個 404 請求、每個重定向、每個爬蟲。要從日志中獲取有意義的數據,你需要對條目進行解析、過濾和排序。這就是 Lars 的用處。本示例將打開一個日志文件并打印每一行的內容:

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

它會為每條日志顯示如下結果:

  1. 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)

它解析了日志條目,并將數據放入結構化格式中。該條目已成為具有與條目數據相關屬性的命名元組namedtuple,因此,例如,你可以使用 row.status 訪問狀態代碼,并使用 row.request.url.path_str 訪問路徑:

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

如果你只想顯示 404 請求,可以執行以下操作:

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

你可能要對這些數據去重,并打印獨立的 404 頁面數量:

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

我和 Dave 一直在努力擴展 piwheel 的日志記錄器,使其包含網頁點擊量、軟件包搜索等內容,歸功于 lars,這些并不難。它不會告訴我們有關用戶的任何答案。我們仍然需要進行數據分析,但它去掉了復雜不便的文件格式,并以我們可以利用的方式將它放入我們的數據庫。

查閱 lars 的文檔,以了解如何讀取 Apache、Nginx 和 IIS 日志,并了解你還可以使用它做什么。再次感謝 Dave 提供的出色工具! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2009-02-27 15:15:00

2011-11-22 11:13:34

2018-08-02 10:33:42

2022-01-12 08:49:33

CaddyWeb服務器Go語言

2019-05-08 14:54:16

PythonWeb服務器

2011-11-21 16:45:26

2011-06-24 09:34:40

文件服務器容量工具 FSCT

2020-08-04 10:07:47

Web日志安全分析工具漏洞

2018-04-23 14:05:06

LinuxUbuntu 17.1AWFFull

2010-07-14 09:55:12

2011-07-07 15:43:51

服務器安裝

2009-07-09 10:25:05

Servlet的Web

2017-12-29 09:47:11

Web服務器萬維網

2017-11-10 08:58:49

Web服務器應用程序

2021-03-29 13:06:25

開源工具開源

2011-03-22 14:43:53

Linux服務器日志文件

2019-02-26 16:20:52

FTP服務器

2010-05-13 18:32:52

2011-03-18 13:41:50

2018-03-15 08:25:53

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人免费视频网站高清观看视频 | 亚洲一区二区三区在线播放 | 欧美日韩中文字幕在线 | 日韩欧美成人一区二区三区 | 天天插日日操 | 伊人网在线综合 | 亚洲一区二区在线视频 | 午夜影院操 | 欧美精品一区三区 | 国产男女视频 | 一区二区中文字幕 | 国产中文| 欧美日韩三级 | 国产精品观看 | 超碰97人人人人人蜜桃 | 日韩精品一区二区三区 | 久久成人精品一区二区三区 | 精品久久久久久国产 | 亚洲不卡视频 | 日韩一区二区在线视频 | 久久成人一区 | 视频1区 | 日韩视频区 | 手机av在线 | 久久99久久99精品免视看婷婷 | 日韩一区二区三区视频 | 亚洲精品久久久久久国产精华液 | 午夜精品一区二区三区三上悠亚 | 久久久久久久久久久久久久国产 | 亚洲欧洲中文日韩 | 精品久久久久久久久久久久久久 | 羞羞视频网站免费观看 | 免费国产黄| 91免费福利在线 | 亚洲伊人精品酒店 | 久久99精品久久久久久 | 日日操网站 | 久久一二区 | 国产精品久久久久久久久免费相片 | 成人性生交大免费 | 久久福利网站 |