使用Sleuth收集链路请求的信息,Zipkin 进行日志聚合,并进行可视化展示和全文检索。elasticsearch进行Zipkin 数据的持久化。
1.docker中安装Elasticsearch
## 获取最新的镜像
docker pull elasticsearch:latest
## 查看获取的镜像信息
docker images
运行Elasticsearch docker run -d --name elasticsearch -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 9200:9200 -e "discovery.type=single-node" elasticsearch
如果不加-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
,运行后通过docker ps发现没有启动,于是通过docker ps -a
发现退出了,通过docker logs -f “container_id”
发现问题是给的内存不足。
完成后,通过ip:9200能看见内容,即证明成功。
2.安装Zipkin
## 获取最新的Zipkin
docker pull openzipkin/zipkin
## 运行Zipkin并设置Elasticsearch保存
docker run --name zipkin -d -p 9411:9411 -e STORAGE_TYPE=elasticsearch -e ES_HOSTS=192.168.80.128:9200 openzipkin/zipkin
## 安装查看微服务间关系的组件
docker run -e STORAGE_TYPE=elasticsearch -e ES_HOSTS=192.168.208.134:9200 openzipkin/zipkin-dependencies
完成后通过docker ps查看运行状态
3.项目中使用
引入以下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
配置:
spring:
zipkin:
base-url: http://192.168.80.128:9411/
discovery-client-enabled: false
sender:
type: web
sleuth:
sampler:
probability: 1.0