Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
Kibana 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。
1.elasticsearch+logstash+kibana的下载(注意版本保持一致)
下载中心:https://elasticsearch.cn/download/
2.elasticsearch的配置
windows:bin目录下直接点击elasticsearch.bat启动;
启动之后,访问:http://localhost:9200
3.kibana的配置
进入config目录,编辑kibana.yml
server.port: 5601
server.name: “kibana”
server.host: “0.0.0.0”
elasticsearch.hosts: “http://127.0.0.1:9200”
kibana.index: “.kibana”
启动:bin/kibana.bat
启动之后,访问:http://localhost:5601
4.logstash的配置
解压后输入命令logstash -e “”,可以测试logstash,该命令启动之后,输入hello world!
4.1 在bin中添加logstash.conf文件:
input{
tcp{
mode => "server"
host => "127.0.0.1"
port => 5044
codec => json_lines
}
}
output{
#控制台直接输出
stdout{
codec => rubydebug
}
#可以注释掉elasticsearch部分,查看控制台是否输出,判断logback->logstash是否生效,@zhengkai.blog.csdn.net
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "log-%{+YYYY.MM.dd}"
}
}
4.2 在bin下开启cmd,logstash启动:logstash -f logstash.conf
5.springboot的配置
5.1 pom中引用:
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>7.0</version>
</dependency>
5.2 在resources下添加logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--这里必须和logstash配置文件中input -tcp 中的host 和 port一致-->
<destination>localhost:5044</destination>
<!-- 日志输出编码 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="INFO">
<appender-ref ref="LOGSTASH" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
5.3 application.properties 修改配置
logging.config=classpath:logback-spring.xml
#包名根据个人的工程名而定
logging.level.com.yjxl.demo=debug
5.4 在springboot项目的controller打印日志,访问 http://localhost:8080/elk,可以看到启动 logstash 的控制台输出日志,就可以了。
@RestController
@RequestMapping("/elk")
@Slf4j
public class ELKController {
@GetMapping
public void index() throws Exception {
log.info("测试的elk的info日志收集");
log.error("测试的elk的error日志收集");
log.debug("测试的elk的debug日志收集");
}
}
6.日志查看
6.1 create index patterns
6.2 discover
the end…