首页 / 日志 / python脚本分析nginx访问日志
python脚本分析nginx访问日志
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python脚本分析nginx访问日志,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1557字,纯文字阅读大概需要3分钟。
内容图文
日志格式如下:
223.74.135.248 - - [11/May/2017:11:19:47 +0800] "POST /login/getValidateCode HTTP/1.1"40414227"http://www.yidianchina.com/login/getValidateCode""Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"
分别是IP,访问时间,请求方法,请求URI,HTTP协议,响应状态码,响应体大小,referer,客户浏览器。
除了HTTP协议不用截取,其他的都匹配后,存储到数据库,以备后续分析。
# !/usr/bin/python # -*- coding:utf-8 -*- import re import datetime import time import MySQLdb as mdb import json import urllib import sys log = "/root/access_" + (datetime.datetime.now() - datetime.timedelta(days=1)).strftime(‘%Y-%m-%d‘) + ".log" line = open(log,‘r‘) con = mdb.connect(‘localhost‘,‘‘,‘‘,‘database‘,charset="utf8") cur = con.cursor() try: for i in line: matchObj = re.match(r‘(.*) \[(.*)\] \"(.*) (\/.*) (.*)\" (.*) (.*) (.*) \"(.*)\" \"(.*)\"‘, i, re.I) if matchObj != None: ip = matchObj.group(1) API = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip jsondata = json.loads(urllib.urlopen(API).read()) address = jsondata[‘data‘][‘country‘] + jsondata[‘data‘][‘region‘] + jsondata[‘data‘][‘city‘] + jsondata[‘data‘][‘isp‘] time = matchObj.group(2) method = matchObj.group(3) request = matchObj.group(4) status = int(matchObj.group(6)) bytesSent = int(matchObj.group(7)) request_time = float(matchObj.group(8)) refer = matchObj.group(9) agent = matchObj.group(10) cur.execute(‘insert into nginx_access_log values("%s","%s","%s","%s","%s",%d,%d,%f,"%s","%s")‘ % (ip,address,time,method,request,status,bytesSent,request_time,refer,agent)) finally: line.close() cur.close()
原文:http://www.cnblogs.com/t-road/p/6868049.html
内容总结
以上是互联网集市为您收集整理的python脚本分析nginx访问日志全部内容,希望文章能够帮你解决python脚本分析nginx访问日志所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。