问题

线上服务器一百多台

通过tail -f /var/log/error_web* 方式来查看,速度滚动刷新太快,而且不方便定位问题

按照前辈的『观察法』,作为新人实在是有难度,所以使用awk命令对输出格式格式化了一下。

思路

将每一行tail得到的日志通过awk命令进行处理,利用awk的BEGIN全局的特性来累计报错数量。

方案

我们将从执行tail命令开始的所有报错的接口地址进行了累计,每一次报错,都将累计的报错数量输出在前,这样可以快速看出到底哪个接口数据量报错比较大。

效果如下

错误次数:33 链接:[REQUEST_URI:xxxxxxxxxxxxxx

[04-Jul-2017 18:32:20 PRC] 95169011-595b6eb3b12291.18851925 PHP Warning:

我们来看下log.sh文件的代码

tail -f /var/log/error_web* | grep . | grep -v '==>' |

awk '

# 定义全局变量,是awk命令的BEGIN用法,还有一个END可以搜下

BEGIN{

# 每隔接口报错的次数

errorTimes[0] = 0;

# 错误详情

errorDetails[0] = 0;

# 总的错误次数

errorCount = 0;

}

{

# 格式化当前行的内容,得到URL

# 获取最后的一个字段,这里可以搜下awk命令的NF内置变量

url = $NF;

# 将得到的url之后的参数拆掉

split(url, urlFields, "?");

url = urlFields[1];

# 报错数量+1

errorTimes[url] = errorTimes[url] + 1;

print("错误次数:"errorTimes[url]" 链接:"url);

# 这里是为了打印错误的详情

print($0);

print("");

# 增加总次数

errorCount = errorCount + 1;

}

'

php日志数据统计,awk 进行php日志累计报错统计相关推荐

  1. vue渲染时数据对象里面的子对象的属性报错undefined,但页面正常渲染

    vue渲染时数据对象里面的子对象的属性报错undefined,但页面正常渲染. 报如图所示错误 页面中报错的位置 原因是在data中申明了空对象,页面在渲染的时候,数据还没获取到的时候,首先渲染的是初 ...

  2. phpexcel列数太多,【PHPEXECL】关于使用phpExecl导出数据时,列数超过26个报错问题

    今天遇到一个关于导出excel表的问题,原因是因为导出的数据列数超过26列,为什么超过26列就会报错呢,因为execl表的抬头标示是从A-Z的,所以超过26位之后,会用[/^等等标识符进行标示.其实这 ...

  3. Netapp日志出现auth.dc.trace.DCConnection.errorMsg:error报错

    netapp/etc/messages日志报错: auth.dc.trace.DCConnection.errorMsg:error]: AUTH:Domain Controller error: N ...

  4. mysql无法插入行_在mysql中数据才插入20多行就报错,求救啊!!!

    mysql的建表语句如下:CREATETABLE`auth_function`(`id`varchar(255)NOTNULL,`name`varchar(255)DEFAULTNULL,`descr ...

  5. 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别

    报错信息: Type Status Report Message HTTP method GET is not supported by this URL Description The method ...

  6. 后台返回数据打印是[object object]的,报错:SyntaxError: JSON.parse: expected property name or ‘}‘ at line 1 column

    今天基于这个问题纠结了一下午,导致这个问题的坑也是挺深的,查找问题最好是从这条数据的存储开始查找 问题1:先确定后台接收数据后存储到数据库里有没有自动转义特殊字符,比如 原始数据是:[{"u ...

  7. 微信小程序绑定数据页面不显示并且页面没有报错

    <!--index.wxml--> <view> {{ message }} </view> js Page({ data: { message: 'Hello M ...

  8. tp5:为什么find()出来的数据有时候可以用toArray() 有时候会报错?

    如图     find()出来的肯定是个对象,那为什么有时候会报这个错,有时候又可以正常使用呢? 原因在于 里面有个空元素,空元素肯定不能toArray转化成数组,所以报错.所以我们要把空元素去掉就可 ...

  9. ViewState 数据太大影响性能导致页面报错

    案件背景: 工作中的一个报表之前一直工作正常,但是有一天突然用户打开报错,提示view state 无效.检查代码发现没有问题,检查前台页面后发现报表显示后的viewstate大小居然达到40M以上. ...

最新文章

  1. 做为一名IT新人,必了解程序员与产品经理的恩怨情仇
  2. Linux C动态链接库实现一个插件例子
  3. linux内核启动配置,启动linux内核配置
  4. 一步步编写操作系统 47 elf格式文件分析实验
  5. mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
  6. 有趣的灵魂百里挑一,Linux同学你低下头干嘛,起来说下这个问题。
  7. Behavior Designer
  8. 电子工程专业评副高总结_微电子科学与工程专业怎么样?
  9. Flex4_操作XML
  10. 开关灯问题 BulbSwitch
  11. Vue 双向数据绑定原理分析
  12. 微pe工具箱怎么安装系统?
  13. 完美数及寻找完美数的算法(Perfect number‘s algorithm)
  14. 理想费米气体的量子统计推导
  15. 全国海选第三期:广州赛区节目视频
  16. SequoiaDB巨杉数据库成为唯一入选 “硅谷2016 大数据地形图”中国厂商, 企业级市场超越MongoDB等海外产品
  17. 计算机考研abc区划分,考研abc区有什么区别
  18. 爬虫中常见的反爬手段和解决方法
  19. 我的世界正版服务器开服,MC服务器开服方法
  20. Python中级 —— 01面向对象进阶

热门文章

  1. 谷歌Chrome浏览器添加新技术 可防止广告主追踪用户
  2. 利用RTMP或RTSP实现跨平台一对一互动功能
  3. zygoteinit.java_源码跟踪之启动流程:从ZygoteInit到onCreate
  4. c++ 查找文件夹下最新创建的文件_云计算开发总结:搜索Linux文件和文件夹的方法...
  5. 从java多态到策略模式_设计模式中的多态——策略模式详解
  6. MySQL日期类型的处理总结
  7. 异常解析————Parameter metadata not available for the given statement
  8. spring源码分析第三天------spring核心IOC容器和依赖注入原理
  9. angular html页面嵌套,使用AngularJS来实现HTML页面嵌套的方法
  10. 长沙医学院学位计算机考试内容,湖南长沙医学院2017年9月计算机等级考试报名时间...