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

当遇到服务器性能问题时,通过Linux的grep和awk可以快速统计接口出现次数,但不够便捷。本文主要介绍如何用Python进行日志文件处理、数据清洗,将access.log数据转化为列表并截取关键信息,进一步统计写入Excel并生成图表报表,以方便分析接口请求情况。
摘要由CSDN通过智能技术生成

这已经不是第一次遇到了,服务器的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 -l

grep '你的接口' -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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值