有什么
要做什么
怎么做
开始
一. 使用 pssh 工具在 14 台机器执行 grep 命令获取包含某特征的日志
- # 安装 pssh 工具
- pip install pssh
- # 使用 pssh 工具
- pssh -l root -h RS_bj_14.txt -o result "grep some_tag /data/logs/api.log"
结果:
红色执行失败的的那两台机器未包含符合我们筛选条件的日志
二. 将 14 份日志作为标准输入传给 Python 脚本
14 份日志作为标准输入传给 Python 脚本:
- cat result/* | ./ab-result-format.py 15 15 00 10 > result_we_want.log
Python 脚本
- #!/usr/bin/python
- import sys
- import time
- format = '%Y-%m-%dT%H:%M:%S+08:00'
- h_start = int(sys.argv[1])
- h_end = int(sys.argv[2])
- m_start = int(sys.argv[3])
- m_end = int(sys.argv[4])
- stdin = sys.stdin.read().strip()
- line_list = stdin.split('\n')
- for item in line_list:
- infos = item.split()
- time_object = time.strptime(infos[0], format)
- if h_start <= time_object.tm_hour <= h_end \
- and m_start <= time_object.tm_min <= m_end:
- print infos[8], infos[3], infos[4]
先交代一下我们分析的日志格式:
Nginx 日志格式(log_format)
为了方便查看,日志格式和日志中的空格都用换行代替
- $time_iso8601
- $remote_addr
- $host
- $request_time
- $upstream_response_time
- $request
- $status
- $upstream_addr
- $session_id;
(实际的一条日志)
- 2017-12-19T00:03:57+08:00
- 2003:da8:2004:1000:a0a:ffd2:f0:9b1c
- [2003:da8:2004:1000:0a13:ffaa:00f0:9b1c]
- 0.454
- 0.448
- POST
- /?Action=SubmitSyncTaskWithData
- HTTP/1.1
- 200
- [2003:da8:2004:1000:****:dd8b:00b7:38ae]:8080
- f228d3941798f0d92c877a92a265f679
Python 脚本做了这么几件事:
***我们使用 >将 Python 脚本的标准输出重定向到 result_we_want.log 文件
Google 为了应对快速增长的数据处理,开发了一套算法。后来有人根据算法的思想,...
前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来...
专注于文本文档的组织在简化业务流程方面有了一个新的盟友。自然语言处理(Natura...
在经历空前的一年后,医疗保健行业CIO们表示,他们将加倍努力为患者和医疗服务提...
无服务器架构(Faas/Serverless),是软件架构领域的热门话题。 AWS,Google Cloud...
前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。s...
在比较服务器托管和云服务之前,有必要先了解下云服务的概念。云服务是现在流行...
什么样的人才会迟到?一种是智商余额不足的,另一种是有底气的人。超融合发展到...
北京忆恒创源科技有限公司(Memblaze)今天宣布推出PBlaze5 920系列企业级NVMeSSD...
很多站长选择业务搭载平台时,会更多地考虑网站服务器租用价格。而趋于平价化的...