广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python分析nginx日志的ip,url,status
  • 265
分享到

python分析nginx日志的ip,url,status

2024-04-02 19:04:59 265人浏览 薄情痞子

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

摘要

Python 脚本如下:#!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'lvnian' #!/us


Python 脚本如下:

#!/usr/bin/env python
#_*_coding:utf-8 _*_
__author__ = 'lvnian'

#!/usr/bin env Python
# coding: utf-8
import Mysqldb as mysql
import sys, os

db = mysql.connect(user="root",passwd="xxxxx@2015",db="intest",host="192.168.10.12") #数据库连接信息
db.autocommit(True)
cur = db.cursor()
cur.execute('set names utf8')

dict_list = {}
with open('access.log') as logfin:
    for line in logfin:
        arr = line.split(' ')
        # 获取ip url 和status
        ip = arr[0]
        url = arr[6]
        status = arr[8]
        # ip url 和status当key,每次统计+1
        dict_list[(ip,url,status)] = dict_list.get((ip,url,status),0)+1
    # 转换成列表
    ip_list = [(k[0],k[1],k[2],v) for k,v in dict_list.items()]
    # 按照统计数量排序,排序后保存到数据库。
    for insert in sorted(ip_list,key=lambda x:x[3],reverse=True):#如果只想提取前十行的话可以[:10]即可。
        print insert  #测试用的,可以不要。整个功能是输出一行,然后保存到数据库。
        sql = 'insert loginfo values ("%s","%s","%s","%s")' % insert
        print sql
        cur.execute(sql)

创建对应的表(在上一篇的基础之上)

python分析nginx日志的ip(来源)

use intest;
show tables;

 CREATE TABLE `loginfo` (
  `ip` text DEFAULT NULL,
  `url` longtext DEFAULT NULL,
  `status` varchar(200) DEFAULT NULL,
  `count_num` varchar(200) DEFAULT NULL
);


脚本执行后数据库内看到的结果如下:

mysql> select * from loginfo where count_num >3 limit 5 ;
+----------------+-----------------------+--------+-----------+
| ip             | url                   | status | count_num |
+----------------+-----------------------+--------+-----------+
| 121.42.0.85    | /                     | 200    | 39        |
| 121.42.0.37    | /                     | 403    | 34        |
| 121.42.0.39    | /                     | 403    | 34        |
| 222.95.248.220 | Http://www.baidu.com/ | 200    | 26        |
| 23.251.49.10   | www.baidu.com:443     | 400    | 21        |
+----------------+-----------------------+--------+-----------+
5 rows in set (0.00 sec)

mysql>



添加一个时间字段脚本改为如下

#!/usr/bin/env python
#_*_coding:utf-8 _*_
__author__ = 'lvnian'

#!/usr/bin env python
# coding: utf-8
import MySQLdb as mysql
import sys, os,time
import datetime

addtime = datetime.datetime.now()
db = mysql.connect(user="root",passwd="xxxx@2015",db="intest",host="192.168.10.12") #数据库连接信息
db.autocommit(True)
cur = db.cursor()
cur.execute('set names utf8')

dict_list = {}
with open('access.log') as logfin:
    for line in logfin:
        arr = line.split(' ')
        # 获取ip url 和status
        ip = arr[0]
        url = arr[6]
        status = arr[8]
        # ip url 和status当key,每次统计+1
        dict_list[(ip,url,status)] = dict_list.get((ip,url,status),0)+1
    # 转换成列表
    ip_list = [(k[0],k[1],k[2],v,addtime) for k,v in dict_list.items()]
    # 按照统计数量排序,排序后保存到数据库。
    for insert in sorted(ip_list,key=lambda x:x[3],reverse=True):#如果只想提取前十行的话可以[:10]即可。
        print insert  #测试用的,可以不要。整个功能是输出一行,然后保存到数据库。
        sql = 'insert loginfo values ("%s","%s","%s","%s","%s")' % insert
        print sql
        cur.execute(sql)

#到数据库输出查询如下123.125.160.217 这个ip经常乱***别的服务器曝光一下,如见此ip访问log,请直接拨打911


数据库修改

	数据库增加一个字段
	alter table loginfo add time datetime not Null;
	
	or重新建库
	
	CREATE TABLE `loginfo` ( 
	`ip` text, 
	`url` longtext,
	`status` varchar(200) DEFAULT NULL, 
	`count_num` varchar(200) DEFAULT NULL,
	`time` datetime NOT NULL 
	) ENGINE=InnoDB DEFAULT CHARSET=utf8;	


--结束END--

本文标题: python分析nginx日志的ip,url,status

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

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

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

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

下载Word文档
猜你喜欢
  • python分析nginx日志的ip,url,status
    Python 脚本如下:#!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'lvnian' #!/us...
    99+
    2022-10-18
  • 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+
    2022-10-18
  • 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的访问日志
    前言 本文的脚本是分析nginx的访问日志, 主要为了检查站点uri的访问次数的,检查的结果会提供给研发人员做参考,因为谈到分析嘛,那肯定要用到正则表达式了,所以请没有接触过正则的小伙伴自行补脑,因为涉及正...
    99+
    2022-06-04
    正则 日志 python
  • Python 关于日志的分析
    项目情况介绍:基于Python 3.6.6 ,实现对nginx访问的日志分析代码,实现了对日志中code的占比统计和浏览器类型和访问情况统计实现的代码段有:1.编写窗户函数,实现在一定的时间内对数据进行分析2.通过正则表达式对日志进行匹配,...
    99+
    2023-01-31
    日志 Python
  • 使用goaccess分析nginx日志的详细方法
    最近想用goaccess来分析下nginx日志,但是苦于nginx日志配置格式不是按照正常格式来的,完全是我们按照自己的需求来写的,所以导致goaccess分析不了,需要自己重新定义...
    99+
    2022-11-12
  • 网站日志中的不完整url或莫名其妙的url抓取的分析
    本篇文章给大家分享的是有关网站日志中的不完整url或莫名其妙的url抓取的分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在分析日志的过程中,往往会发现404状态下有一些或者...
    99+
    2023-06-12
  • Nginx日志分析及性能排查的方法是什么
    本篇内容介绍了“Nginx日志分析及性能排查的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果需要得到请求处理的时间,需要在ng...
    99+
    2023-06-04
  • 利用python分析access日志的方法
    前言 WAF上线之后,处理最多的是误报消除。 产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。 把误报降低到了可接受的范围后,还要关注漏报。WA...
    99+
    2022-06-04
    方法 日志 python
  • python 3.x 分析日志的模块(正
    #导入正则模块 import re auth="no_shutdown_" ''' 分析日志的模块,查找日志中标志性信息产生的次数 ''' #定义你需要查找的对象的正则表达式wordcheck #需要分析的日志的路径filesource d...
    99+
    2023-01-31
    模块 日志 python
  • Nginx负载均衡方案的日志分析与故障排除
    概述:随着互联网的迅猛发展,对于高可用性和性能的需求越来越高。Nginx作为一种高性能的Web服务器和反向代理服务器,被广泛应用于分布式系统中的负载均衡方案。然而,在实际使用中,Nginx负载均衡方案也会出现一些故障,如服务器负载过高、请求...
    99+
    2023-10-21
    nginx 负载均衡 故障排除
  • Shell脚本实现分析apache日志中ip所在的地区
    查询ip地址所用的组件 wget http://rfyiamcool.googlecode.com/files/nali-0.1.tar.gz tar zxvf nali-0.1.tar.gz ...
    99+
    2022-06-04
    脚本 地区 日志
  • Linux日志分析的最佳工具:Python和numpy。
    Linux日志分析的最佳工具:Python和numpy 在现代科技时代,数据是无处不在的。随着数据的不断增长和复杂性的提高,分析数据的能力变得越来越重要。对于Linux服务器系统管理员来说,日志是非常重要的数据资源,需要对其进行分析以检测问...
    99+
    2023-08-10
    numpy 日志 linux
  • python实时分析日志的一个小脚本分享
    前言 大家都知道Web运维总要关注相关域名的实时2xx/s、4xx/s、5xx/s、响应时间、带宽等这些指标,之前的日志是五分钟一分割,简单的用awk就可以了,现在由于要推送日志到ELK,继续之前五分钟一分...
    99+
    2022-06-04
    脚本 实时 日志
  • Python日志与npm、Linux系统的兼容性分析。
    Python日志与npm、Linux系统的兼容性分析 Python是一种广泛使用的高级编程语言,它的日志系统是Python标准库中的一部分。在Python应用程序中,日志系统是必不可少的。然而,当与npm和Linux系统一起使用时,Pyth...
    99+
    2023-08-23
    日志 npm linux
  • Python 的 NumPy 库如何帮助你分析 Apache 日志?
    Apache 是一个广泛使用的开源 Web 服务器软件,它的日志文件记录了每个请求的详细信息。如果你需要对网站的访问情况进行分析,那么 Apache 日志文件是非常有用的数据源。但是,这些日志文件往往非常庞大,有时候需要处理几百万条记录。...
    99+
    2023-08-18
    numpy 日志 apache
  • Linux下的Python和numpy:如何记录和分析日志?
    在软件开发和系统运维中,日志记录是非常重要的一项工作。通过记录系统和应用程序的运行日志,我们可以及时发现问题并进行调试,从而提高系统的可靠性和稳定性。而在Linux环境下,Python和numpy是非常常用的工具,它们可以帮助我们更加方便...
    99+
    2023-08-10
    numpy 日志 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作