`

awk分析nginx日志

阅读更多
awk命令格式:
awk 'pattern{action;action} pattern{action;action}' {filenames}


awk完整文档
使用示例
awk内置函数列表
Awk学习笔记
awk脚本在线调试器
日志分析命令
awk 'BEGIN{len=0;tm=0} {len=length($NF);tm=substr($NF,2,len-2)+0} tm>0.5 {print NR " " $0 }' nginx.log


解释:
1、
BEGIN{len=0;tm=0}
在awk开始时,定义变量len和tm
len为字符串长度,tm为响应时间
BEGIN关键字,表示awk命令开时执行一次,不是每行一次,只仅一次。

2、{len=length($NF);tm=substr($NF,2,len-2)+0}

NF为当前行的字段数,awk读入的当前行时,使用空格分隔后的字段数

length()为awk的内置函数,取字符串长度
len=length($NF)表示将最后一个字段的长度,赋值给len

substr()为awk的内置函数,截串
substr($NF,2,len-2)为取字符串"0.0003"中的0.0003,去掉双引号
substr($NF,2,len-2)+0为将字符串0.0003,转为数字0.0003



3、tm>0.5 {print NR " " $0 }
tm>0.5 响应时间超过0.5秒 就打印NR当前行数和$0当前行


 awk  '/responseTime/ { 
 where=match($0,/"responseTime":[[:alnum:]]+/); 
 if(where>0){
 	spend=substr($0,RSTART,RLENGTH); 
 	len=length(spend);
 	where = index(spend,":"); 
 	spend=substr(spend,where+1,len);
 	spend=spend+0;
 	if(spend>10000)
 	print $0;
 	}
 }' \
 somelog.log



引用


5
down vote
favorite


I am trying to match a fixed number of digits using curly braces in awkbut I get no result.

# This outputs nothing
echo "123" | awk '/^[0-9]{3}$/ {print $1;}'

# This outputs 123
echo "123" | awk '/^[0-9]+$/ {print $1;}'

Do I need to do something specific to use curly braces?


Mac OS X awk (BSD awk) works with the first command shown:

$ echo "123" | /usr/bin/awk '/^[0-9]{3}$/ {print $1;}'
123
$

GNU awk does not. Adding backslashes doesn't help GNU awk. Using option --re-interval does, and so does using --posix.

$ echo "123" | /usr/gnu/bin/awk --re-interval '/^[0-9]{3}$/ {print $1;}'
123
$ echo "123" | /usr/gnu/bin/awk --posix '/^[0-9]{3}$/ {print $1;}'
123
$

(I'm not sure where mawk 1.3.3 dated 1996 comes from, but it is probably time to get an updated version of awk for your machine.)




引用

GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

0
0
分享到:
评论

相关推荐

    awk测试从nginx查询qps的测试日志.log

    awk测试从nginx查询qps的测试日志

    统计Nginx日志里前一个小时的IP数量以及IOS占比

    理解这个过程不仅有助于你执行类似的任务,还能让你深入理解shell脚本编程、日志分析以及Nginx日志格式。对于系统管理员和开发者来说,具备这些技能可以更好地监控和优化服务器性能,提高故障排查效率。

    nginx日志分析技巧.zip

    针对“nginx日志分析技巧”,我们可以深入探讨多个方面,这些都与提供的文件名紧密相关。 首先,**IP统计**是基础的数据收集环节。通过分析nginx的日志,我们可以获取到每个访问者的IP地址,进而统计出最频繁的访问...

    nginx-log-analysis:用于分析 nginx 日志文件的很棒的 linux shell 命令的精选列表

    总之,通过熟练运用上述shell命令,我们可以有效地从Nginx日志中挖掘出有价值的信息,从而提升服务器性能,优化用户体验,并确保系统的稳定运行。在实际操作中,应根据具体需求灵活组合和定制这些命令,以满足不同的...

    nginx日志测试使用 access.log.zip

    分析日志文件通常使用命令行工具,如`grep`、`awk`、`sort`和`uniq`,或者使用专门的日志分析软件如Logstash、Splunk和ELK(Elasticsearch、Logstash、Kibana)堆栈。对于大型日志,可能需要实时分析,这时可以考虑...

    使用MongoDB分析Nginx日志的方法详解

    MongoDB是一种强大的非关系型数据库,它在处理大量结构化和半结构化数据时表现出色,因此被广泛用于日志分析。Nginx日志包含了丰富的服务器访问信息,如客户端IP、请求方法、URL、HTTP状态码等,这些数据对于监控...

    shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

    这个脚本类似于`MySQL`中的慢查询日志分析,但针对的是Web页面的慢访问情况。 首先,我们需要了解`nginx`的日志格式。在提供的配置中,`log_format`定义了主要的日志格式,其中包含了IP地址(第一列)和请求耗时...

    分析nginx日志并屏蔽采集者ip(nginx屏蔽ip配置实例)

    以下是对Nginx日志分析及IP屏蔽配置的详细说明。 首先,分析Nginx日志是识别潜在采集者IP的关键步骤。`nginx.access.log`是Nginx服务器默认的日志文件,记录了所有HTTP请求的信息。通过`awk`命令,我们可以提取出IP...

    linux Nginx 日志脚本

    Nginx日志分析脚本用于对Nginx生成的日志文件进行分析,提取有用的信息,帮助管理员了解网站访问情况,如访问量统计、用户行为分析等。 **脚本内容分析:** 1. **获取Nginx进程信息:** - 通过`ps aux | grep ...

    多线程自定义规则 Nginx Access Log 分析器(比AWK快)

    在传统的日志分析中,AWK经常被用作工具来处理和解析这些日志,但当面对大量数据时,AWK的性能可能会成为瓶颈。因此,我们探讨的是如何利用多线程和自定义规则来构建一个比AWK更快的Nginx Access Log分析器。 首先...

    windows下Nginx日志处理脚本

    4. 日志分析细节:脚本中涉及到将特定的日志文件(如***.txt)中的IP地址提取出来,并使用IP查询接口(如***提供的接口)来查询IP信息。 5. 日志处理流程:从提取IP到查询IP地址信息,再到统计结果的汇总和输出到...

    Nginx日志统计分析的常用命令总结

    本文主要给大家总结了关于Nginx日志统计分析的一些常用命令,分享出来供大家参考学习,下面来一起看看详细的介绍: 一、IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一...

    shell版Nginx日志蜘蛛爬取查看脚本

    在这个特定的场景中,我们有一个专门用于查看Nginx日志中搜索引擎蜘蛛爬取活动的shell脚本。Nginx是一个流行的Web服务器,它的日志记录了所有对网站的请求,包括搜索引擎爬虫的访问。 脚本的主要目的是统计不同蜘蛛...

    nginx--centos6.5(日志功能)安装文档以及安装文件

    Nginx日志默认使用ISO-8859-1编码,如果日志中包含中文字符,可能会出现乱码。为了解决这个问题,我们可以在日志文件中指定UTF-8编码。在Linux系统中,可以创建一个软链接,将日志重定向到具有UTF-8编码的cat命令: ...

    linux下shell处理nginx日志自动生成ip黑名单

    #shell脚本处理nginx日志自动生成ip黑名单 ##统计访问量前10名的ip并写入文件 #!/bin/bash data=`date +%Y-%m-%d` #统计访问量最高的前10ip awk '{print $1}' '/PATH/'$data'.log' | sort -n |uniq -c | sort -rn | ...

    awk-for-apache-nginx-logs:适用于Apache Nginx日志的AWK

    该awk脚本处理的日志格式与Apache和Nginx Web服务器经常使用的“组合”日志相匹配。 如果您的日志文件格式不同,请进行相应的修改,但这是此脚本默认期望的组合格式,以供参考: %h %l %u %t "%r" %>s %b "%{...

    Nginx日志实现访问异常报警详解

    Nginx日志是Web服务器记录访问和错误信息的重要工具,尤其在监控和排查问题时起着关键作用。本文将详细介绍如何利用Nginx的日志功能实现访问异常报警,以便及时发现并处理潜在的安全风险。 首先,Nginx的错误日志...

    windows日志分析#linux日志分析#web日志分析#windows入侵排查#linux入侵排查

    在IT安全领域,日志分析和入侵排查是至关重要的任务,尤其对于系统管理员和网络安全专家而言。本篇文章将深入探讨Windows、Linux以及Web日志分析和相关入侵排查的知识点。 首先,我们来看Windows日志分析。Windows...

Global site tag (gtag.js) - Google Analytics