返回顶部
首页 > 资讯 > 后端开发 > Python >python分析nginx日志
  • 201
分享到

python分析nginx日志

日志pythonnginx 2023-01-31 05:01:56 201人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

利用python脚本分析Nginx日志内容,默认统计ip、访问url、状态,可以通过修改脚本统计分析其他字段。一、脚本运行方式Python count_log.py -f med.xxxx.com.access.log二、脚本内容#!/us

利用python脚本分析Nginx日志内容,默认统计ip、访问url、状态,可以通过修改脚本统计分析其他字段。

一、脚本运行方式

Python count_log.py -f med.xxxx.com.access.log

二、脚本内容

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
1.分析日志,每行日志按空格切分,取出需要统计的相应字段,作为字典的key,遍历相加
2.使用到字典的get方法,通过定义默认值,避免miss key的错误
3.使用列表解析表达式
4.使用sorted函数排序列表
5.使用argparse传入参数
6.nginx日志格式:
log_fORMat         access_log
    '$remote_addr - $remote_user [$time_local] $request '
    '"$status" $body_bytes_sent "$Http_referer" '
    '"$http_user_agent"  "$request_time"' '"$upstream_addr"' '"$upstream_response_time"';
7.日志内容:
222.xx.xxx.15 - - [07/Dec/2016:00:03:27 +0800] GET /app/xxx/xxx.apk HTTP/1.0 "304" 0 "-" "Mozilla/5.0 Gecko/20100115 Firefox/3.6"  "0.055""-""-"
8.脚本运行结果:
('106.xx.xx.46', '/gateway/xxx/user/mxxxxx/submitSelfTestOfSingleQuestion', '"200"', 299)
('182.1xx.xx.83', '/', '"200"', 185)
('222.xx.1xx.15', '/', '"200"', 152)
('125.xx.2xx.58', '/', '"200"', 145)
"""
import argparse


def count_log(filename, num):
    try:
        with open(filename) as f:
            dic = {}
            for l in f:
                if not l == '\n':  # 判断空白行
                    arr = l.split(' ')
                    ip = arr[0]
                    url = arr[6]
                    status = arr[8]
                    # 字典的key是有多个元素构成的元组
                    # 字典的get方法,对取的key的值加1,第一次循环时由于字典为空指定的key不存在返回默认值0,因此读第一行日志时,统计结果为1
                    dic[(ip, url, status)] = dic.get((ip, url, status), 0) + 1
        # 从字典中取出key和value,存在列表中,由于字典的key比较特殊是有多个元素构成的元组,通过索引k[#]的方式取出key的每个元素
        dic_list = [(k[0], k[1], k[2], v) for k, v in dic.items()]
        for k in sorted(dic_list, key=lambda x: x[3], reverse=True)[:num]:
            print(k)
    except Exception as e:
        print("open file error:", e)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description="传入日志文件")
    # 定义必须传入日志文件,使用格式-f filename
    parser.add_argument('-f', action='store', dest='filename', required=True)
    # 通过-n传入数值,取出最多的几行,默认取出前10
    parser.add_argument('-n', action='store', dest='num', type=int, required=False, default=10)
    given_args = parser.parse_args()
    filename = given_args.filename
    num = given_args.num
    count_log(filename, num)


--结束END--

本文标题: python分析nginx日志

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

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

猜你喜欢
  • python分析nginx日志
    利用python脚本分析nginx日志内容,默认统计ip、访问url、状态,可以通过修改脚本统计分析其他字段。一、脚本运行方式python count_log.py -f med.xxxx.com.access.log二、脚本内容#!/us...
    99+
    2023-01-31
    日志 python nginx
  • python 正则分析nginx日志
      有个需求要分析nginx日志,也懒得去研究logstach之类的开源工具,干脆直接写一个脚本,自己根据需求来实现:先看日志格式:我们跟别人的不太一样,所以没办法了:12.195.166.35 [10/May/2015:14:38:09 ...
    99+
    2023-01-31
    正则 日志 python
  • python分析nginx访问日志
    Web服务器的各种系统管理工作包括了多Nginx/Apache 日志的统计,python使这个任务变得极其简单,下面分享两个小脚本。一、统计Nginx的客户端缓存的命中率需要检查你的Nginx服务器拒绝客户请求的频率,服务器拒绝的原因是因为...
    99+
    2023-01-31
    日志 python nginx
  • python分析nginx日志的ip(来
    #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import datetime,threading import sys, os, urllib2, json...
    99+
    2023-01-31
    日志 python nginx
  • python分析nginx日志的ip(来源)
    #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import dateti...
    99+
    2024-04-02
  • python分析nginx日志的ip,url,status
    Python 脚本如下:#!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'lvnian' #!/us...
    99+
    2024-04-02
  • python正则分析nginx的访问日志
    前言 本文的脚本是分析nginx的访问日志, 主要为了检查站点uri的访问次数的,检查的结果会提供给研发人员做参考,因为谈到分析嘛,那肯定要用到正则表达式了,所以请没有接触过正则的小伙伴自行补脑,因为涉及正...
    99+
    2022-06-04
    正则 日志 python
  • 如何使用goaccess分析nginx日志
    这篇文章主要介绍了如何使用goaccess分析nginx日志,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近想用goaccess来分析下nginx日志,但是苦于nginx日...
    99+
    2023-06-20
  • Nginx日志及性能排查举例分析
    这篇文章主要讲解了“Nginx日志及性能排查举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx日志及性能排查举例分析”吧!导读最近一直在做性能排查,思路就是根据分析nginx日...
    99+
    2023-06-03
  • Python 关于日志的分析
    项目情况介绍:基于Python 3.6.6 ,实现对nginx访问的日志分析代码,实现了对日志中code的占比统计和浏览器类型和访问情况统计实现的代码段有:1.编写窗户函数,实现在一定的时间内对数据进行分析2.通过正则表达式对日志进行匹配,...
    99+
    2023-01-31
    日志 Python
  • 使用goaccess分析nginx日志的详细方法
    最近想用goaccess来分析下nginx日志,但是苦于nginx日志配置格式不是按照正常格式来的,完全是我们按照自己的需求来写的,所以导致goaccess分析不了,需要自己重新定义...
    99+
    2024-04-02
  • nginx日志格式分析以及修改详解
    目录一. 打开终端,登录服务器并输入服务器密码二. 切换到nginx目录三. 查看nginx日志四. 修改nginx日志格式五. 其他日志参数说明总结修改nginx日志打印格式 一....
    99+
    2024-04-02
  • nginx(二)---Nginx 日志Log
    日志配置日志轮转/切割日志分析 1.日志配置         1.1日志模块 官方文档    http://nginx.org/en/docs/http/ngx_http_log_module.html 日志模块的名称       ...
    99+
    2023-09-02
    nginx 运维 服务器
  • nginx切割日志脚本(python)
    因为以前没有做nginx日志分割,有时候想看日志的时候总是发现有十几G的甚至上百G的日志文件,于是就想使用python写个nginx日志分割(当然你也可以使用shell来完成都是很简单) 需求:1.按照日分割nginx所有日志2.由于日志不...
    99+
    2023-01-31
    脚本 日志 nginx
  • python切割nginx日志脚本
    #!/usr/bin/env python#-*-coding:utf-8-*-#Python nginx cut log 1import subprocessdef mkdir():        subprocess.call('mkd...
    99+
    2023-01-31
    脚本 日志 python
  • mysql日志分析
    由于日志文件是掌握数据库运行状态的重要参考,因此日志文件的维护也有十分重要的意义。 mysql的日志类型有二进制日志,错误日志,通用日志,慢查询日志。 模块中添加日志分析log-bin=mysql_b...
    99+
    2024-04-02
  • python打印日志实例分析
    这篇“python打印日志实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python打印日志实例分析”文章吧。一、必...
    99+
    2023-07-02
  • nginx日志切割脚本分享
    #!/bin/bashLogs_path="/data/Application/nginx/logs"Pid_path="/data/Application/nginx/nginx.pid"Month=`...
    99+
    2022-06-04
    脚本 日志 nginx
  • 怎么用SARG日志分析器来分析Squid日志
    本篇内容介绍了“怎么用SARG日志分析器来分析Squid日志”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  SARG是一款基于网络的工具,...
    99+
    2023-06-13
  • nginx多server日志分割脚本分享
    1,配置多个server日志只要在$website变量增加并用空格分开就行。2,循环创建日志目录3,分割后用xz 压缩,当然没安装可以用gzip bzip2等等。4,注意我配置nginx日志文件名为 "ac...
    99+
    2022-06-04
    脚本 日志 nginx
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作