• 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的日志格式,控制台输出的日志格式还是原来的,





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

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

    把线程着一列也加进来。


    结束
     

  • 相关阅读:
    PyQt5基础应用一
    常用SQL
    常用vim命令
    原生Ajax XMLHttpRequest对象
    跨域两种解决方案CORS以及JSONP
    Django生命周期 URL ----> CBV 源码解析-------------- 及rest_framework APIView 源码流程解析
    Django缓存机制--rest_framework中节流源码使用的就是django提供的缓存api
    Django2.0 models中的on_delete参数
    【开发工具IDE】Eclipse 安装 Maven 的 m2eclipse 插件
    【Java】CSVUtils
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12013834.html
Copyright © 2020-2023  润新知