php日志数据统计,awk 进行php日志累计报错统计
问题
线上服务器一百多台
通过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日志累计报错统计相关推荐
- vue渲染时数据对象里面的子对象的属性报错undefined,但页面正常渲染
vue渲染时数据对象里面的子对象的属性报错undefined,但页面正常渲染. 报如图所示错误 页面中报错的位置 原因是在data中申明了空对象,页面在渲染的时候,数据还没获取到的时候,首先渲染的是初 ...
- phpexcel列数太多,【PHPEXECL】关于使用phpExecl导出数据时,列数超过26个报错问题
今天遇到一个关于导出excel表的问题,原因是因为导出的数据列数超过26列,为什么超过26列就会报错呢,因为execl表的抬头标示是从A-Z的,所以超过26位之后,会用[/^等等标识符进行标示.其实这 ...
- Netapp日志出现auth.dc.trace.DCConnection.errorMsg:error报错
netapp/etc/messages日志报错: auth.dc.trace.DCConnection.errorMsg:error]: AUTH:Domain Controller error: N ...
- mysql无法插入行_在mysql中数据才插入20多行就报错,求救啊!!!
mysql的建表语句如下:CREATETABLE`auth_function`(`id`varchar(255)NOTNULL,`name`varchar(255)DEFAULTNULL,`descr ...
- 关于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 ...
- 后台返回数据打印是[object object]的,报错:SyntaxError: JSON.parse: expected property name or ‘}‘ at line 1 column
今天基于这个问题纠结了一下午,导致这个问题的坑也是挺深的,查找问题最好是从这条数据的存储开始查找 问题1:先确定后台接收数据后存储到数据库里有没有自动转义特殊字符,比如 原始数据是:[{"u ...
- 微信小程序绑定数据页面不显示并且页面没有报错
<!--index.wxml--> <view> {{ message }} </view> js Page({ data: { message: 'Hello M ...
- tp5:为什么find()出来的数据有时候可以用toArray() 有时候会报错?
如图 find()出来的肯定是个对象,那为什么有时候会报这个错,有时候又可以正常使用呢? 原因在于 里面有个空元素,空元素肯定不能toArray转化成数组,所以报错.所以我们要把空元素去掉就可 ...
- ViewState 数据太大影响性能导致页面报错
案件背景: 工作中的一个报表之前一直工作正常,但是有一天突然用户打开报错,提示view state 无效.检查代码发现没有问题,检查前台页面后发现报表显示后的viewstate大小居然达到40M以上. ...
最新文章
- 做为一名IT新人,必了解程序员与产品经理的恩怨情仇
- Linux C动态链接库实现一个插件例子
- linux内核启动配置,启动linux内核配置
- 一步步编写操作系统 47 elf格式文件分析实验
- mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
- 有趣的灵魂百里挑一,Linux同学你低下头干嘛,起来说下这个问题。
- Behavior Designer
- 电子工程专业评副高总结_微电子科学与工程专业怎么样?
- Flex4_操作XML
- 开关灯问题 BulbSwitch
- Vue 双向数据绑定原理分析
- 微pe工具箱怎么安装系统?
- 完美数及寻找完美数的算法(Perfect number‘s algorithm)
- 理想费米气体的量子统计推导
- 全国海选第三期:广州赛区节目视频
- SequoiaDB巨杉数据库成为唯一入选 “硅谷2016 大数据地形图”中国厂商, 企业级市场超越MongoDB等海外产品
- 计算机考研abc区划分,考研abc区有什么区别
- 爬虫中常见的反爬手段和解决方法
- 我的世界正版服务器开服,MC服务器开服方法
- Python中级 —— 01面向对象进阶
热门文章
- 谷歌Chrome浏览器添加新技术 可防止广告主追踪用户
- 利用RTMP或RTSP实现跨平台一对一互动功能
- zygoteinit.java_源码跟踪之启动流程:从ZygoteInit到onCreate
- c++ 查找文件夹下最新创建的文件_云计算开发总结:搜索Linux文件和文件夹的方法...
- 从java多态到策略模式_设计模式中的多态——策略模式详解
- MySQL日期类型的处理总结
- 异常解析————Parameter metadata not available for the given statement
- spring源码分析第三天------spring核心IOC容器和依赖注入原理
- angular html页面嵌套,使用AngularJS来实现HTML页面嵌套的方法
- 长沙医学院学位计算机考试内容,湖南长沙医学院2017年9月计算机等级考试报名时间...