斜风细雨忽如归
最新可真是清闲了,清闲之余感谢这份时间能够整理自己,走好下一步
ELK老话题了,不论怎么说还是比较好用的,由于刚刚组装完毕,有图有说明
ELK简介
ELK是Elasticsearch+Logstash+Kibana简称
- Elasticsearch:是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
- Logstash: 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
- Kibana: 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。
ELK实现的日志采集的核心是,通过 logstash 将应用系统的日志通过 input 收集,然后通过内部整理,通过 output 输出到 Elasticsearch 中,其实就是建立了一个 index,然后 kibana作为可视化平台,将 ES 的index进行输出到平台,通过图表的方式进行展示。
下面基于SpringBoot来做详细集成
JDK8
Elasticsear+Kibana搭建
Elasticsearch
下载安装包然后解压
cd elasticsearch-7.2.0
启动:bin/elasticsearch
启动成功访问http://localhost:9200/ 结果如下
Kibana
下载安装包,解压,进入目录
编辑配置文件:vim config/kibana.yml
#端口
server.port: 5601
#服务Ip
server.host: "127.0.0.1"
#服务名
server.name: "kibana"
#ES地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]
wq!保存退出
启动Kibana:kibana-7.2.0-linux-x86_64/bin/kibana
启动成功后访问:http://localhost:5601/
在项目中使用打印日志后就能够在kibana中看见了,需要设置索引,具体如下
管理-索引模式-查找logstash中设置的索引名,下一步,设置成功即可,然后在大板中就可以看到了
这时Kibana和Elasticsearch就搭好了
logstash
下载,解压,我是直接去CSDN的下载中去找的,有需要的朋友可以去找找,实在费事可以找我
在config目录中创建logstash-test.conf文件,加入配置如下
input{
tcp {
mode => "server"
host => "0.0.0.0" #我这里是本地
port => 9061 #开放这个端口进行采集
codec => json_lines # 编解码器 有的版本需要肚子安装
}
}
output{
elasticsearch{ #es地址
hosts=>["127.0.0.1:9200"]
# 在es里产生的index的名称
index => "laoxiang-logstash"
}
stdout{codec => rubydebug}
}
保存退出
启动命令在bin目录中:./logstash -f …/config/logstash-test.conf
结果如图
这样就实现了logstash连到es,然后kibana可视化
SpringBoot集成logstash
引入maven
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version>
</dependency>
配置logback的xml
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>127.0.0.1:9061</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
然后在root级别设置即可
<appender-ref ref="LOGSTASH"/>
启动后写一个API测试一下
@GetMapping("/t2")
public Object t2(){
UserDto userDto = new UserDto();
userDto.setAge(RandomUtil.randomInt());
userDto.setName(RandomUtil.randomString(5));
log.info(JSON.toJSONString(userDto));
return userDto;
}
logstash的控制台输出如下
然后去kibana看一下,哦?有了
好了,收,感谢你们
我一直在回忆,仿佛是上一个世纪的别人
参考:[https://www.cnblogs.com/wuzhenzhao/p/12911579.html](