怎么来控制输出的日志的格式。并且从日志里面提取出来我想要的一些信息。
整个的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的日志格式,控制台输出的日志格式还是原来的,
自定义的字段显示出来了,作为新的字段加入到这边的列表内。
这个时候再看到的日志 和我们在控制台看到的就差不多了
把线程着一列也加进来。
结束