有什么
  • 有 14 台机器(意味着我们有 14 份日志)
  • 一台可以连到这 14 太机器的机器(有Python 2.6)
要做什么
  • 获取 14 台机器上某时间段内的包含某特征的日志,再取出其中的特定内容
怎么做
  1. 使用 pssh 工具在 14 台机器执行 grep 命令获取包含某特征的日志
  2. 将 14 份日志作为标准输入传给 Python 脚本
  3. Python 解析 stdin(标准输入),将日期转化为 Python 中的日期格式,判断之后将符合条件的特定内容取出并输出到 stdout(标准输出)
开始
一. 使用 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"复制代码
  • -l 的意思是使用哪个用户执行
  • -h 是指定主机列表文件(换行隔开)
  • -o 是指定执行结果保存的文件夹
  • 最后是需要执行的命令
结果:
红色执行失败的的那两台机器未包含符合我们筛选条件的日志
二. 将 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 timeformat = '%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:***:ffd2:f0:9b1c
[2003:da8:2004:1000:****:ffaa:00f0:9b1c]
0.454
0.448
POST
/?Action=SubmitSyncTaskWithData
HTTP/1.1
200
[2003:da8:2004:1000:****:dd8b:00b7:38ae]:8080
f228d3941798f0d92c877a92a265f679复制代码
Python 脚本做了这么几件事:
  • 接受 4 个参数,分别是起始的小时和分钟,备用
  • 读取标准输入 sys.stdin.read(),去掉头尾无用的字符 strip(),循环处理每行日志
  • 拆分每行日志 split()
  • 将时间字符串转为时间对象,根据 4 个参数判断小时和分钟(这里处理的比较粗糙,跨小时就没办法处理了,有兴趣的读者可以做的更精细一点)
  • 时间条件符合,打出需要的部分(这里我需要的是 session_id, request_time, upstream_response_time 所以我们print infos[8], infos[3], infos[4]注:Python 的 print 就是标准输出
最后我们使用 >将 Python 脚本的标准输出重定向到 result_we_want.log 文件
彩蛋,结果有了,发给领导?
???,下回我教大家用统计学知识分析结果,求关注

【临实战】使用 Python 处理 Nginx 日志相关推荐

  1. 基于python的Nginx日志管理分析系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 本项目利用 pandas + sklearn 对 Nginx 的日志数据进行统计分析,并利用 fla ...

  2. 使用Python解析nginx日志文件

    项目的一个需求是解析nginx的日志文件. 简单的整理如下: 日志规则描述 首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式: log_format main '$remote_a ...

  3. python分析nginx日志

    利用python脚本分析nginx日志内容,默认统计ip.访问url.状态,可以通过修改脚本统计分析其他字段. 一.脚本运行方式 python count_log.py -f med.xxxx.com ...

  4. python分析nginx日志_利用python分析nginx日志

    最近在学习python,写了个脚本分析nginx日志,练练手.写得比较粗糙,但基本功能可以实现. 脚本功能:查找出当天访问次数前十位的IP,并获取该IP来源,并将分析结果发送邮件到指定邮箱. 实现前两 ...

  5. Python 分析Nginx 日志并存入MySQL数据库(单线程)

    使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.(参考网上一些文章) Nginx access日志格式如下: #使用的nginx默认日志格式 ...

  6. python分析nginx日志,每分钟nginx请求超过10ms的比例

    代码如下: #!/usr/bin/python # --*-- coding:utf-8 --*-- import time import datetime import sys import os ...

  7. python分析nginx日志的ip(中篇一)

    2019独角兽企业重金招聘Python工程师标准>>> 利用python的数据分析pandas,numpy,matplotlib模块进行可视化分析,画出图表,这几个模块需要独立安装, ...

  8. python 正则分析nginx日志

    有个需求要分析nginx日志,也懒得去研究logstach之类的开源工具,干脆直接写一个脚本,自己根据需求来实现: 先看日志格式:我们跟别人的不太一样,所以没办法了: 12.195.166.35 [1 ...

  9. CentOS 7.2下ELK分析Nginx日志生产实战(高清多图)

    注:本文系原创投稿 本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名 ...

最新文章

  1. IBM发布未来五年五大科技预测
  2. Linux下使用两个线程协作完成一个任务的简易实现
  3. 【转】矩阵的几何解释
  4. 黄金法则之《终身学习》
  5. java中的jsonjar_java中使用json之相关jar包介绍
  6. decimal 类型数据怎么引用_Java基本数据类型和引用类型
  7. opencv中的矩阵拼接
  8. oracle数据库视图有红叉,oracle触发器 前面的红叉是什么意思
  9. 【项目合作】低清老视频转高清,视频超分辨
  10. 计算机适配器有什么作用,例举适配器是什么
  11. txt doc rtf html,JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例.docx
  12. php 修改cache数据,修改ThinkPHP缓存为Memcache的方法
  13. 【滤波器】基于matlab脉冲响应不变法+双线性变换法数字滤波器设计【含Matlab源码 884期】
  14. android 7修改机型,Android 6.0/7.0可升级机型名单出炉
  15. iPhonexs文件连接服务器,iPhonexs黑屏了教你如何快速解决!
  16. win10 u盘 修复计算机,怎么用u盘修复windows10专业版系统
  17. Combo Box Control
  18. 模仿微信九宫格、查看大图
  19. 机器学习之随机森林填补缺失值和众数填补缺失值
  20. EFS】NV65633-LTE搜网能力的NV值、格式、配置

热门文章

  1. 《新一代城市大脑建设与发展》专家研讨会在京举办
  2. 神经网络完成芯片设计仅需几小时
  3. 志澄观察:卫星互联网——太空经济新动力
  4. AI解读医学影像能力超越人类?BMJ综述:此类研究大多存在偏差
  5. 2018AI和机器学习界的12个重大收购案
  6. NASA指定首批9名宇航员,参与波音和马斯克商业载人航天
  7. 盘点丨毕业年薪34万,高校人工智能研究哪家强?
  8. 没有数据也能翻译?一文读懂「无监督」机器翻译
  9. 再见,谷歌!再见,算法!
  10. 鸿蒙内核源码分析:调度机制篇