常见的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,
现在就拿到数据了,至于后边数据分析,我们后边会讲到

你可能感兴趣的:(常见的java服务器日志分析)