这已经不是第一次遇到了,服务器的CPU或IO突然剧增,或者APP响应突然超慢,这个时候需要查看日志,看看接口有木有异常。
利用linux特有的grep、awk了可以快速统计,指定时间段的接口出现次数,可能对这个不是熟悉,只能一个一个查看统计,很不方便(后期专供攻inux)。
顺应而为,我去找python

linux可以利用grep快速统计TOP
sed -n '/30\/Mar\/2020:09:16/, /30\/Mar\/2020:09:16/p' other_vhosts_access.log | grep '你的接口' | wc -lgrep '你的接口' -o access.log | sort | uniq -c | sort -rn
着重分享python方法
  • access.log单行数据结构

x.x.x.x - - [30/Mar/2020:06:25:03 +0800] “POST /test/api HTTP/1.1” 200 525 “-” “python-requests/2.18.4”

第一步,源数据文件处理,log文件数据获取和清洗(清洗原则,字符串转列表,字符截取等)

第二步,df数据统计写入excel留存

第三步,生成图文报表 str接口字符串

# -*- coding: utf-8 -*-import pandas as pd
import numpy as np
from pyecharts import Bar# 源数据文件处理
def dataClean(name):if name=='access.log':return dataCleanAcess(name)elif name=='other_vhosts_access.log':return dataCleanVhosts(name)
# 源数据 access处理
def dataCleanAcess(name):df = pd.read_table(name)list = []for i in df.values:if "POST" in i[0]:li = i[0].split("\"")liz = li[0].split(" ")tempu = li[1].split(" ")tempt = liz[3][13:-3]temp = [tempt, tempu[1]]list.append(temp)df = pd.DataFrame(list)return df# 源数据 other_vhosts_access处理
def dataCleanVhosts(name):df = pd.read_table(name)list = []for i in df.values:if ("POST" in i[0] or "GET" in i[0]) and 'www.weiyuanwl.net' in i[0] and 'upload/admin' not in i[0]:li = i[0].split("\"")liz = li[0].split(" ")tempu = li[1].split(" ")tempt = liz[4][13:-3]  # 时间temp = [tempt, tempu[1]]list.append(temp)df = pd.DataFrame(list)return df# df数据统计写入excel留存
"""按照时间分组,按照接口分组,统计当前时间,接口请求的次数"""
def dataWriteExcel(name,df):gp = df.groupby([0, 1])newdf = gp.size()newdf.to_excel(name)#  生成图文报表 str接口字符串
def dataCreateHtml(df,str,html):xdata = []ydata = []ydatamsg = []for date, group in df.groupby([0]):if date > '08:58':xdata.append(date)  # 时间ydata.append(len(group[1]))  # 接口请求总数result = pd.value_counts(group[1])if str in result:ydatamsg.append(result[str])else:ydatamsg.append(0)bar = Bar("请求统计", "2020-03-30", title_pos='right', title_color='blue', width=2000, height=500,background_color='white')bar.add("请求总数", xdata, ydata, is_label_show=True, mark_line=["average"], legend_text_color='black')bar.add(str+"接口请求总数", xdata, ydatamsg, is_label_show=True, mark_line=["average"],legend_text_color='black')bar.render(html)print("生成HTML:"+html)if __name__ =='__main__':data = dataClean('access.log')dataWriteExcel('access-excel.xls',data)dataCreateHtml(data,'接口','log-1.html')data = dataClean('other_vhosts_access.log')dataWriteExcel('other_vhosts_access-excel.xls', data)dataCreateHtml(data, '接口', 'log-2.html')

效果如图:

linux服务器log日志通过python统计生成图表(LOG日志统计一)相关推荐

  1. windows连接linux服务器并后台运行python脚本

    将本地文件上传linux服务器: D:\Program Files\PuTTY>pscp D:\python\pythonwork\jobui\rpxcorp.py root@47.104.10 ...

  2. python批量生成图表_教你用Python自动读取数据生成图表,产生的效益很可观

    厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...

  3. linux服务器 常驻,如何让 Python 代码常驻在服务器进程中

    一.nohup nohup,即 no hangup,nohup 的用途就是让提交的命令忽略 hangup 信号,从而使我们的进程避免中途被中断.它可以让 python 脚本和服务器连接端的 sessi ...

  4. python excel生成图表_python excel 之 按格式生成图表和数据

    python excel 针对python 对excel的操作目前有已经有很多库可以使用, 比如最常用的读写库xlrd,xlwt,xlutils 对xlsx.xlsm读写的openpyxl 针对xls ...

  5. python pyecharts生成图表

    使用pyecharts如同使用前端echarts,这里主要介绍pyecharts的源码内的图表属性不满足使用,应该怎么办? 使用pyecharts生成柱状图 pyecharts开源链接:http:// ...

  6. Linux 服务器程序规范、服务器日志、用户、进程间的关系

    文章目录 服务器程序规范 日志 rsyslogd 守护进程 syslog函数 openlog函数 setlogmask函数 closelog函数 用户 进程间的关系 进程组 会话 系统资源限制 改变工 ...

  7. 如何优雅的部署Python应用到Linux服务器?

    文章目录 1 前言 2 安装Python3环境 2.1 安装所需的编译环境 2.2 下载Python源码包 2.3 解压 python-3.9.5 源码包 2.4 安装 python3 2.5 设置软 ...

  8. linux查询MySQL数据库操作,Linux服务器上查看mysql数据库操作日志

    前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异.好好的数据怎么说丢,就丢了.此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了.经过之前初步的排查,发现数据应该是被人为删 ...

  9. 科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码

    前情提要 如果有人看了我之前发的乱七八糟的博客的话,应该就能了解到,我之前是计算机专业大三的学生,好不容易get到了保研的名额,前段时间就一直在操练LeetCode,到处报夏令营啊,预推免什么的,最后 ...

最新文章

  1. Oracle 添加RAC数据库集群节点(一)
  2. 信令风暴问题根因分析
  3. Qt 工程 pro文件
  4. 百度地图JavascriptApi Marker平滑移动及车头指向行径方向
  5. Create Custom Instruments
  6. 十年WEB技术发展历程
  7. [转载] 【Java】将一个字符串的字符排序,按ASCII表的顺序从小到大
  8. OpenJudge NOI 1.7 30:字符环
  9. win32开发(简单绘图)
  10. linux的python2.7的paramiko_centos7 python2.7下安装paramiko模块
  11. 分布式系统常用思想和技术
  12. 冯乐乐之二 shader的数学
  13. keil中c语言定义数组,如题,KeilC51位变量能不能定义数组
  14. win7计算机系统更新,win7电脑版本低怎么升级?win7电脑版本低的解决方法
  15. Java面向对象系列[v1.0.0][枚举类]
  16. 执业兽医资格考试水生动物类题库
  17. 计算机win7如何连接wifi网络,win7怎么连wifi,win7电脑连不上网
  18. 看甲骨文如何在云端一路高歌猛进!
  19. 如何去掉图片上的水印 图片水印怎么去掉
  20. oracle期初余额录入,用金蝶kis录入数量初始数据的方法

热门文章

  1. flickr搜索_从提示框:DIY笔,将旧光盘回收到游戏中以及在Flickr中搜索Kindle屏幕保护程序...
  2. 大话分布式理论之二——共识算法与一致性的区别
  3. 大家的初级日语一“动词ない型”
  4. 数据链路层(2层 DataLink Layer)
  5. Java入门 - Java初体验
  6. Android 后台进行长图的生成并分享(非长截图)
  7. CMMI, 6 Sigma
  8. Andriod Studio实现保存QQ密码
  9. 取代李嘉诚成香港新首富,宁德时代曾毓群将面对的是什么?
  10. 基于intel低功耗平台边缘计算解决方案助力半导体设备升级