[Python/自动化运维] 运用Python进行Nginx日志状态码过滤
来源:互联网 发布:申报数据库免费吗 编辑:程序博客网 时间:2024/05/17 03:15
每个公司的NginxWeb服务器日志格式是不一样的,但是正则改一下就可以用,统计状态码及域名的发生次数,注意:注释部分为同一条url 同一个客户端ip及状态码访问过来的,生产环境这样的也不是很多,所以注释了,代码如下:
#!/usr/bin/env python# -*- coding:utf-8 -*-import reimport sysdef Return(): print('\t-c 指定状态码 (2xx 3xx 4xx 5xx)')class Match(): def __init__(self,code): self.code = code self.List = [] def Find(self): for i in open('/bbd/logs/nginx_user_access.log','r').readlines(): try: # Ip = re.search("[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}",i).group(0) #Url = re.search('request(.*)protocol',i).group(1).split('\"')[2] Domain = 'http://' + re.search('domain:?(.*)request:?',i).group(1).split('\"')[2] #+ Url Code = re.search("http_status((.*)%s+(.*))body_bytes_sent" % self.code,i).group(1).split(':')[1][1:4] self.List.append((Domain,Code)) except Exception as e: pass return self.Listclass Result(): def __init__(self): self.data = Match(str(code)).Find() self.Filter = [] self.Key = {} def GetLengh(self): for i in self.data: if i not in self.Key.keys(): self.Key[self.data.count(i)] = i else: pass return self.Key def GetResult(self): result = Result().GetLengh() result = sorted(result.items(), key=lambda result:result[0], reverse = True) result = result[0:11] for k,v in result: print('个数:%s 域名:%s ' % (k,v))if __name__ == '__main__': try: if sys.argv[1] == '-c': if sys.argv[2] == '2xx': code = '20' value = Result() value.GetResult() elif sys.argv[2] == '3xx': code = '30' value = Result() value.GetResult() elif sys.argv[2] == '4xx': code = '4' value = Result() value.GetResult() elif sys.argv[2] == '5xx': code = '5' value = Result() value.GetResult() else: Return() except Exception as e: Return()
阅读全文
0 0
- [Python/自动化运维] 运用Python进行Nginx日志状态码过滤
- Python运维自动化--nginx配置文件对比
- python自动化运维
- 使用Python进行自动化测试
- 使用Python进行自动化测试
- Python+Unittest+自动化:使用Python进行单元测试
- python自动化运维记录
- 自动化运维(python)
- python+pandas分析nginx日志
- Python——过滤错误日志
- python自动化开发之路-NGINX
- Python写自动化之logging日志写入
- 运用python进行数据分析 -- numpy 1
- 运用python进行数据分析 -- numpy 2
- python来进行UI自动化测试
- 使用python进行windows自动化测试
- Selenium+Python+Pycharm进行自动化测试
- 使用Python进行Android自动化测试
- 流程控制语句——if选择结构语句
- Python装饰器3
- Android——蓝牙错误状态码大全
- XML的解析 DOM解析
- redis-入门命令笔记
- [Python/自动化运维] 运用Python进行Nginx日志状态码过滤
- java 数组默认初始化
- springMVC--HandlerAdapter
- 286. Walls and Gates
- 文章标题
- 使用nexus-3.0.2-02-win64搭建自己的Maven nexus私服
- 内容loading加载后高度变化
- tostring()、size_t
- 让Irrlicht鬼火引擎显示中文