作者回复: 满分满分,帮了没有windows电脑的我的大忙,windows的同学可以看过来
作者回复: 两者的用途不同,zipkin的主要目的是根据global trace id查询当前请求的调用链路。比如说我通过某个请求的header拿到trace id,接下来我用这个id搜索这次请求都调用了哪些服务,然后发生error的是哪个调用span。初步定位异常之后,再到kibana里搜索更细粒度的日志信息
作者回复: 还真是的,呼叫编辑大大!看这里看这里,有个笔误
作者回复: 动态做索引其实就是用类似“参数引用”的方式,把log里的参数配置到这里,就像你在本地log文件中配置动态参数一样,一般做index的话application name肯定是要做进去的,除此之外,server name或者cluster(集群封闭模式)也可以考虑加入index
作者回复: 有个简单的方法,直接用lombok的@Data或者@ToString注解加到Request的对应类头上,里面会自动覆盖toString打印漂亮的输出,只要在log里直接输出这个对象就好了
作者回复: 通常是把filebeat专注于“日志采集”,将汇集后的日志文件中的内容做提取,通过kafka把日志喂给logstash,这里logstash只负责日志清洗过滤。这种方式让每个组件都专注于自己本职最擅长的那一块,专才专用
作者回复: 就像平时console打印log的方式输出就可以,ELK和splunk之类的系统都可以设置分词策略,根据设置的分词策略打印规范日志(比如重要参数为ab=xx这种格式打印)可以方便问题排查
作者回复: 文章中的elk镜像很吃内存,尤其是ES这部分,内存不足会导致ES启动失败。建议同学给docker分配5G以上的内存然后再试一下,或者指定一个老版本的elk镜像(占用内存少)
作者回复: logstash和ES放在了同一个容器中,它们之间的连接相当于本地连接,网络环境相同
作者回复: 可以,在检索出来的日志信息里有具体的日志打印。在logback-spring.xml中,只要在pattern格式中把message和error信息传递给logstash就能够在elk里查到,你可以本地试一下