Spring cloud微服务安全实战-7-9自定义日志采集的格式和内容

怎么来控制输出的日志的格式。并且从日志里面提取出来我想要的一些信息。

整个的message是一个大的json格式字符串。


虽然是可以通过关键字搜索到。但是日志看起来并不舒服。

在我们的控制台,日志实际上是这样的。可以很清楚的看到日志的内容。现在混在了json里面。看起来不舒服,而且有些字段丢失掉了。


进程号就丢失了。

控制日志输出格式




以为内这里配置的是logstashEncoder,它就把我们整个的日志信息转成了json直接发出去了。

我们首先要把这块替换掉。自己定义了一个pattern


但是还是作为一个字符串传出去了。kibana里面看到的可能就是一个字符串。
想让kibana按照格式切分开。每一段作为kibana里面可选的字段。

拆分是由logstash来做的

找到logstash的配置文件

在这里有段注释,添加你自己的过滤器。

我们添加过滤器来做转换。把字符串切成几段。然后告诉kibana每一段代表什么意思
grok是logstash的一个插件。作用就是把我们的日志切开。把一个大的长的字段,切成好多小的字段。

match首先要告诉要切什么字段

我要切的这个字段就是这个message字段。默认情况下是作为message字段输出到kibana里面的


现在要做的就是把message这个长的字段切成很多的小段。再单独作为一个字段 输出出去。



在github上看下grok的表达式有哪些。

每一个partten其实就是一个正则表达式。


我们上面配置的TIMESTAMP_ISO8601对应的就是一个正则表达式。


做time的字段 ,然后重新输出出去。

GREEDYDATA表示什么都可以。






字段都加上log为了区分开

重启测试

重启docker因为配置文件变化了。

orderAPi也重启一下。这样就会以新的格式去logStash去推日志信息。注意这里改的日志LogStash的日志格式,控制台输出的日志格式还是原来的,





自定义的字段显示出来了,作为新的字段加入到这边的列表内。

这个时候再看到的日志 和我们在控制台看到的就差不多了

把线程着一列也加进来。


结束
 

猜你喜欢

转载自www.cnblogs.com/wangjunwei/p/12013834.html