广告
返回顶部
首页 > 资讯 > 服务器 >怎么使用Python工具分析Web服务器日志文件
  • 144
分享到

怎么使用Python工具分析Web服务器日志文件

2023-06-16 07:06:28 144人浏览 泡泡鱼
摘要

这篇文章主要讲解了“怎么使用python工具分析WEB服务器日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python工具分析Web服务器日志文件”吧!Lars 是 

这篇文章主要讲解了“怎么使用python工具分析WEB服务器日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python工具分析Web服务器日志文件”吧!

Lars 是 Python 写的 Web 服务器日志工具包。这意味着你可以使用 Python 通过简单的代码来回溯(或实时)解析日志,并对数据做任何你想做的事:将它存储在数据库中、另存为 CSV 文件,或者立即使用 Python 进行更多分析。

Lars 是 Dave Jones 写的另一个隐藏的宝石。我最初是在本地 Python 用户组中看到 Dave 演示 lars。几年后,我们开始在 piwheels 项目中使用它来读取 Apache 日志并将行插入到我们的 Postgres 数据库中。当树莓派用户从 piwheels.org下载 Python 包时,我们会记录文件名、时间戳、系统架构(Arm 版本)、发行版名称/版本,Python 版本等。由于它是一个关系数据库,因此我们可以将这些结果加入其他表中以获得有关文件的更多上下文信息。

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

$ 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 。

首先,日志是什么样的?

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

这是一个显示了请求源 IP 地址、时间戳、请求文件路径(在本例中是主页 /)、HTTP 状态代码,用户代理(Ubuntu 上的 Firefox)等的请求。

你的日志文件将充满这样的条目,不仅是每个打开的页面,还包括返回的每个文件和资源:每个 CSS 样式表、javascript  文件和图像,每个 404 请求、每个重定向、每个爬虫。要从日志中获取有意义的数据,你需要对条目进行解析、过滤和排序。这就是 Lars  的用处。本示例将打开一个日志文件并打印每一行的内容:

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

它会为每条日志显示如下结果:

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 访问路径:

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 请求,可以执行以下操作:

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)

你可能要对这些数据去重,并打印独立的 404 页面数量:

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 一直在努力扩展 piwheel 的日志记录器,使其包含网页点击量、软件包搜索等内容,归功于  lars,这些并不难。它不会告诉我们有关用户的任何答案。我们仍然需要进行数据分析,但它去掉了复杂不便的文件格式,并以我们可以利用的方式将它放入我们的数据库。

感谢各位的阅读,以上就是“怎么使用Python工具分析Web服务器日志文件”的内容了,经过本文的学习后,相信大家对怎么使用Python工具分析Web服务器日志文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么使用Python工具分析Web服务器日志文件

本文链接: https://www.lsjlt.com/news/282720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Python工具分析Web服务器日志文件
    这篇文章主要讲解了“怎么使用Python工具分析Web服务器日志文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python工具分析Web服务器日志文件”吧!Lars 是 ...
    99+
    2023-06-16
  • java dump文件分析工具怎么使用
    Java dump文件是Java虚拟机在运行过程中生成的一种文件,用于记录Java虚拟机的内存使用情况、线程状态等信息。分析Java...
    99+
    2023-09-13
    java dump
  • 怎么在Linux中使用cronolog切割服务器日志文件
    这篇文章给大家介绍怎么在Linux中使用cronolog切割服务器日志文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。下载(最新版本)代码如下:#  wget http://cronolog.org/dow...
    99+
    2023-06-12
  • 怎么使用Docker镜像搭建分布式文件服务器
    本篇内容介绍了“怎么使用Docker镜像搭建分布式文件服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作