• 黄叶
    置顶
    2022-02-04
    window版本搭建 3个软件都可以前往该中心下载,注意es和kibana版本要一样,链接:https://elasticsearch.cn/download/ 1.安装es 下载后,进入bin目录,elasticsearch.bat 测试:localhost:9200 2.安装kibana 下载后,进入bin目录,kibana.bat 测试:localhost:5601 3.安装logstash 需要修改配置,如下 input { tcp { #模式选择为server mode => "server" #ip和端口根据自己情况填写,端口默认4560,对应下文logback.xml里appender中的destination host => "localhost" port => 4560 #格式json codec => json_lines } } output { elasticsearch { action => "index" #这里是es的地址,多个es要写成数组的形式 hosts => "localhost:9200" #用于kibana过滤,可以填项目名称 index => "applog" } } 启动:进入bin,cmd输入logstash -f logstash.conf 测试:localhost:9600
    展开

    作者回复: 满分满分,帮了没有windows电脑的我的大忙,windows的同学可以看过来

    
    13
  • 威威威小哥
    2022-03-19
    老师,请问有了elk还需要集成zipkin吗? Sleuth打的日志都可以被收集到elk,那zipkin还有意义吗

    作者回复: 两者的用途不同,zipkin的主要目的是根据global trace id查询当前请求的调用链路。比如说我通过某个请求的header拿到trace id,接下来我用这个id搜索这次请求都调用了哪些服务,然后发生error的是哪个调用span。初步定位异常之后,再到kibana里搜索更细粒度的日志信息

    
    10
  • peter
    2022-02-04
    老师请教一个问题啊: Q1:docker restart geekbang 这里“geekbang”是笔误吗?前面ELK的名字是“elk”啊。

    作者回复: 还真是的,呼叫编辑大大!看这里看这里,有个笔误

    共 3 条评论
    3
  • zx
    2022-02-28
    请问老师,生产环境 一般创建日志索引有什么规范没 像您文章中说的 通过配置文件表达式动态生成索引 可以大概讲一下这块思路吗

    作者回复: 动态做索引其实就是用类似“参数引用”的方式,把log里的参数配置到这里,就像你在本地log文件中配置动态参数一样,一般做index的话application name肯定是要做进去的,除此之外,server name或者cluster(集群封闭模式)也可以考虑加入index

    
    1
  • 张逃逃
    2022-02-21
    请问老师,我想log request的参数应该怎么写?

    作者回复: 有个简单的方法,直接用lombok的@Data或者@ToString注解加到Request的对应类头上,里面会自动覆盖toString打印漂亮的输出,只要在log里直接输出这个对象就好了

    
    1
  • 郭行知
    2023-03-25 来自北京
    生产环境为什么要先用filebeat读取文件再发送给logstash?既然logstash本身有读文件的功能,为什么不直接用logstash读取文件写到存储里?前者有何优势?

    作者回复: 通常是把filebeat专注于“日志采集”,将汇集后的日志文件中的内容做提取,通过kafka把日志喂给logstash,这里logstash只负责日志清洗过滤。这种方式让每个组件都专注于自己本职最擅长的那一块,专才专用

    
    
  • 牛年榴莲
    2022-04-18
    打本地日志的时候,推荐使用JSON格式还是像本节console那样的日志格式

    作者回复: 就像平时console打印log的方式输出就可以,ELK和splunk之类的系统都可以设置分词策略,根据设置的分词策略打印规范日志(比如重要参数为ab=xx这种格式打印)可以方便问题排查

    
    
  • 罗逸
    2022-03-10
    docker 运行elk Elasticsearch启动,容器也进不去 starting elasticsearch server [fail], Couldn't start Elasticsearch. Exiting. Elasticsearch log follows below. cat: /var/log/elasticsearch/elasticsearch.log: No such file or directory

    作者回复: 文章中的elk镜像很吃内存,尤其是ES这部分,内存不足会导致ES启动失败。建议同学给docker分配5G以上的内存然后再试一下,或者指定一个老版本的elk镜像(占用内存少)

    
    
  • ziky
    2022-02-18
    请问一下老师:docker不是部署在虚拟机上吗,那么这个ip地址就会发生改变,为什么ip还是localhost

    作者回复: logstash和ES放在了同一个容器中,它们之间的连接相当于本地连接,网络环境相同

    
    
  • kimoti
    2022-02-04
    用ELK的目的是为了看日志排错,这样配置可以看到错误信息吗?毕竟仅有TraceID和Span ID还是不知道发生了什么错误?

    作者回复: 可以,在检索出来的日志信息里有具体的日志打印。在logback-spring.xml中,只要在pattern格式中把message和error信息传递给logstash就能够在elk里查到,你可以本地试一下

    共 3 条评论
    