来源:Elasticsearch7.X-dockercompose安装Springboot整合ELK进行日志收集
请扫码关注查看更多Elasticsearch7.X系列文章!
ELK简介
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。从多台服务器上传输和转发日志,并对日志进行丰富和解析,是一个数据管道,提供了大量插件来支持数据的输入和输出处理,并负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,Kibana完全使用HTML和Javascript编写,它利用Elasticsearch 的RESTful API来实现其强大的搜索能力,将结果显示位各种震撼的图形提供给最终的用户。可以帮助汇总、分析和搜索重要数据日志,提供了强大而美观的数据可视化。
环境安装
1、查看镜像
首先在elastic官方提供的地址查看elk镜像
在如下地址可以查看到官方发布的docker镜像
https://www.docker.elastic.co/#
2、docker-compose方式安装
下面以7.11为例,docker-compose.yml文件如下:
version: '2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.1
container_name: elk_es7.11.1
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
volumes:
- $PWD/elasticsearch/data:/home/docker/elk/elasticsearch/data
hostname: elasticsearch
restart: always
ports:
- "9200:9200"
- "9300:9300"
networks:
- elk
kibana:
image: docker.elastic.co/kibana/kibana:7.11.1
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200 #elasticsearch
hostname: kibana
depends_on:
- elasticsearch #
restart: always
ports:
- "5601:5601"
networks:
- elk
logstash:
image: docker.elastic.co/logstash/logstash:7.11.1
environment:
- elasticsearch.hosts=http://elasticsearch:9200
container_name: elk_logstash7.11.1
volumes:
- $PWD/elk/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf - $PWD/logstash/config/logstash.yml:/usr/share/elk/logstash/config/logstash.yml
hostname: logstash
restart: always
depends_on:
- elasticsearch #
ports:
- "4560:4560"
- "9600:9600"
- "5044:5044"
networks:
- elk
networks:
elk:
driver: bridge
启动容器
docker-compose up -d
查看端口
官方安装参考:
https://www.elastic.co/guide/en/logstash/current/docker-config.html
3、浏览器访问kibana是否成功
在浏览器输入http://你的服务器IP:5601/
进行相关端口测试后没问题进行下面的步骤:
springboot-logstash环境搭建
环境说明:springboot2.4.5、ES7.11、logstash7.11、logback6.6
1、添加maven
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version></dependency>
2、logback-spring.xml添加日志打印
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.244.129:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<encoder >
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}
[service:${springAppName:-}]
[traceId:%X{X-B3-TraceId:-},spanId:%X{X-B3-SpanId:-},parentSpanId:%X{X-B3-ParentSpanId:-},exportable:%X{X-Span-Export:-}]
[%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
3、启动springboot项目
4、请求测试接口
5、查看elasticsearch的日志数据
-
新生成的索引名
-
下面为索引保存的数据
如果觉得文章能帮到您,欢迎关注微信公众号:“蓝天Java大数据” ,共同进步!