常见的java服务器日志分析

有时候在工作中,我们需要对日志进行处理,这里我对我碰到的一些进行总结

  • 提取数据
    首先可以打开日志,查看下结构


    image.png

    这里可以看到日志数据


    image.png

     我们一般需要拿到访问某个接口的uid,time,app版本,登录手机的平台等信息
    首先我们先定位接口的数据:
      格式这样:grep 查询的关键字 查询文件
    grep getArticleInfo ysz-gateway-2018_06_07-1.log 
    
    image.png

     如图,我们拿到了所有这个接口的相关数据,
     我们这里需要提取这里的数据比如,我们要uid,这里我们需要管道处理
      解释下管道:我的理解大意是前边的结果作为参数传给后边处理,实际用多了,你们就体会到了,

    grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid
    

 获取到这个接口包含uid的行


image.png

 如下图,我们要提取[]里的内容,这里处理方法很多,我一般用awk


image.png
grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid|awk -F "data:" '{print $2}'

这里awk -F是截取,这里是以data:为分割,输出第二段内容


image.png

和一般的json还差点啥,应该是去掉[],我们这里还是用awk -F解决

grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid|awk -F "data:" '{print $2}'|awk -F "【" '{print $2}'|awk -F "】" '{print $1}'

然后就推荐使用jq插件了,yum install jq就可以安装了,
我们使用方法,比如要拿到uid,就这么写
继续管道后续

 grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid|awk -F "data:" '{print $2}'|awk -F "【" '{print $2}'|awk -F "】" '{print $1}'|jq '.uid'
image.png

管道继续,有时候我们要去重,我们可以对uid排序,去重

 grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid|awk -F "data:" '{print $2}'|awk -F "【" '{print $2}'|awk -F "】" '{print $1}'|jq '.uid'|wc -l  先看下行数
image.png
grep getArticleInfo ysz-gateway-2018_06_07-1.log | grep uid|awk -F "data:" '{print $2}'|awk -F "【" '{print $2}'|awk -F "】" '{print $1}'|jq '.uid'|sort|uniq|wc -l
image.png

可以看到去重以后由145变成了92,
现在就拿到数据了,至于后边数据分析,我们后边会讲到

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 1,297评论 0 8
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,276评论 2 25
  • 2017年1月25日 雾霾 粉红色笼罩 我的心停不下奔跑 有一秒钟 站在高处想哭想闹 堆起来的美妙 终究落在了这一...
    鲜栗子阅读 152评论 0 4
  • 什么时候我最讨厌的话成了对不起了 是我遇见了你的时候
    姓刘名什么阅读 73评论 0 0