nginx日志分为access、error,默认nginx未对日志进行拆分,在进行日志分析时需要用到快速分析命令。
一、使用linux命令进行快速查找分析
1、grep
快速查找关键字并输出
2、wc
可使用wc -l管道输出日志行数,可很快分析出异常
比如,cat access.log | grep " 500 "|wc -l,可很快输出状态码为500的访问请求行数,联合时间检索,可迅速输出某段时间内访问状态异常的请求数量
3、tail
tail -n 10 输出最新的10行日志,同样可以联合grep查询特定请求的最新结果
注:网上很多用Goaccess工具的,发现不是很方便查询,解决实际问题用不上,虽然分析效率很高,但是生成的统计图美丽而无用。
二、使用python进行日志分析
使用python进行方便进行综合分析统计
import re #200-299 valid = 0 #300-399 redirect = 0 #400-499 exception400 = 0 #500-599 exception500 = 0 others = 0 with open(r"access.log") as logfile: #使用正则表达式解析日志文件 pattern = ( #与日志文件内容一一对应,最后需要提取出来的内容都放到一个分组里面去,一个括号里面去 r'(\d+.\d+.\d+.\d+)\s-\s-\s' #IP地址,这里只能过滤IPV4地址 r'\[(.+)\]\s' #时间,把内容放到中括号里面