#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Author:hhbo
import time
import os
import re
import smtplib
from email.mime.text import MIMEText
class StatusPV(object):
def __init__(self):
self.log_path = '/var/log/nginx'
self.log_time = time.strftime("%Y-%m-%d")
# self.bf_name = bf_name
# self.name = name
# self.log_name =self.bf_name + '.'+self.name+'_access.log'
self.log_name = 'access.log'
self.logfile = os.path.join(self.log_path, self.log_name)
def get_filesize(self):
file_size = os.path.getsize(self.logfile)
f = open(self.logfile, 'r')
if file_size > 1000000000:
f.seek(0, 2)
self.seek= f.tell()/5
else:
self.seek=0
f.close()
def send_msg(self,dicip):
#送发方的邮箱
self.dicip=dicip
msg_from="********@189.cn"
#密码,不是邮件的密码,要在自己的邮件里设置
pwd="Si!0Pw$5j$6Pd!8C"
#接收方的邮箱
to="*******@qq.com"
#邮件的题目
subject="5min请求ip情况"
#邮件的内容
content="<h1>"+"5min请求接口大于2000次的接口信息:"+"<br />"+str(dicip)+"</h1>"
print(content)
#构造邮件,按html的方式输出
msg=MIMEText(content,"html","utf-8")
msg["Subject"]=subject
1,1 顶端
#print(time.time())
#print(time_stamp)
# 转换为时间戳
# print(time_stamp)
if time.time() - time_stamp <= 300:
# 观测的时间间隔
if jiekou_url in dic.keys():
dic[jiekou_url] += 1
else:
dic[jiekou_url] = 1
else:
pass
else:
print("log format error")
except:
pass
else:
pass
f.close()
jiekou_numlist=[]
jiekou_urllist = []
jiekou_num=dic[jiekou_url]
for jiekou_url,jiekou_num in dic.items():
if jiekou_num > 10000:
time_file = time.strftime('%Y%m%d%H:%M:%S',ctime)
date_time = time.strftime('%Y-%-M-%d:%H:%M:%S',ctime)
f = open("newrequest" + time_file + ".log", "a+")
f.write(str(date_time) + " " + str(jiekou_num) +" "+ str(jiekou_url) +"\n")
f.close()
jiekou_numlist1=[jiekou_num]
jiekou_numlist.extend(jiekou_numlist1)
jiekou_urllist1=jiekou_url.split('\n')
jiekou_urllist.extend(jiekou_urllist1)
print(jiekou_numlist)
dictjiekou=dict(zip(jiekou_urllist,jiekou_numlist))
print(dictjiekou)
if not bool(dictjiekou):
print("Dictionary is empty")
else:
print(self.send_msg(dictjiekou))
if __name__ == '__main__':
obj_StatusPV = StatusPV()
obj_StatusPV.count_pv()
使用python分析nginx日志
原创
©著作权归作者所有:来自51CTO博客作者mb642e31a7373ff的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:iptables
下一篇:redis 多种模式的搭建与安装
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Nginx使用AWStats日志分析
Nginx使用AWStats日志分析
Nginx AWStats -
nginx日志分析
在nginx.conf中定义的日志格式如下: { ... log_format main '$remote_...
nginx sql safari