使用spring cloud sleuth+zipkin+elasticsearch组成服务追踪,其中:
- spring cloud sleuth: 作为zipkin的客户端实现,将监控数据发送到zipkin服务端
- zipkin: 分布式实时数据追踪系统,收集并展示sleuth发送的服务监控数据
- elasticsearch: 搜索引擎,为zipkin提供存储和查询服务追踪数据功能
1. 部署方式
- docker部署
2. 环境搭建
2.1. 部署elasticsearch
这里的
elasticsearch
承担了为zipkin提供存储和查询数据的功能,作为zipkin的外置存储。
2.1.1. 环境要求
- 调整内核参数
vm.max_map_count
为262144
sysctl -w vm.max_map_count=262144
2.1.2. 部署模式
包括单节点模式和集群模式
2.1.3. 客户端工具
- 使用elasticsearch head查看elasticsearch中的数据
2.1.4. 通讯安全
2.2. 部署zipkin
zipkin
收集管理sleuth发送的服务监控数据
2.2.1. 部署安装
- 单机docker部署
docker run -d -p 9411:9411 openzipkin/zipkin
2.2.2. 外接存储elasticsearch
docker run --name zipkin --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=myhost:9200 --env ES_INDEX=zipkin -p 9411:9411 openzipkin/zipkin
2.3. 部署spring cloud sleuth
对接zipkin
- 修改配置文件
application.properties
spring.application.name=application1
server.port=8080
spring.zipkin.baseUrl=http://zipkin_host:9411
spring.zipkin.enabled=true
spring.sleuth.sampler.probability=1
application.yml
spring:
application:
name: application1
zipkin:
baseUrl: http://zipkin_host:9411
enabled: true
sleuth:
sampler:
probability: 1
server:
port: 8080