使用Python解析nginx日志文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python解析nginx日志文件相关的知识,希望对你有一定的参考价值。

参考技术A 本文使用Python2.7解析nginx日志文件,并把nginx的时间转化为时间戳(1970纪元后经过的浮点秒数),并存放到特定文件中。

Nginx的http日志格式:

示例如下:

这里使用Python的glob模块来获取所有日志文件。日志文件每天0时进行备份,命名为nginx.log.YYMMDD。

模块linecache允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。

使用python的re模块解析每一条日志。

其中body_bytes捕获非空字符串,而不是数字,因为日志里可能存在该字段值为“-”,即没有请求体。

date、method、request等参数可以采用以下方式进行提取。

使用python的time模块把时间转为时间戳。

产生文件time.log,内容如下:

python获取nginx子请求

参考技术A 您是想问python如何实时获取任务请求对应的nginx日志吧?有以下几种方法:
1、使用tail命令实时读取日志文件;
2、在Nginx配置文件中使用access_log指令,将日志实时写入到文件中;
3、使用Nginx的HttpStubStatusModule模块,获取实时请求信息;
4、使用第三方工具,如Fluentd,Logstash,实时解析并传送Nginx日志。
项目需求测试过程中,需要向Nginx服务器发送一些用例请求,然后查看对应的Nginx日志,判断是否存在特征内容,来判断任务是否执行成功。为了提升效率,需要将这一过程实现自动化。

以上是关于使用Python解析nginx日志文件的主要内容,如果未能解决你的问题,请参考以下文章

python [解析python中的nginx访问日志]解析python #log中的nginx访问日志

使用 Python 解析日志文件

LNMP 静态文件不记录日志和过期时间Nginx防盗链Nginx访问控制解析php

解析 nginx 日志并导出到 BigQuery

python分析apache和nginx日志文件输出访客ip列表的代码

nginx切割日志脚本(python)