使用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_count262144
  1. sysctl -w vm.max_map_count=262144

2.1.2. 部署模式

包括单节点模式和集群模式

2.1.3. 客户端工具

2.1.4. 通讯安全

2.2. 部署zipkin

zipkin收集管理sleuth发送的服务监控数据

2.2.1. 部署安装

  • 单机docker部署
  1. docker run -d -p 9411:9411 openzipkin/zipkin

2.2.2. 外接存储elasticsearch

  1. 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

  1. spring.application.name=application1
  2. server.port=8080
  3. spring.zipkin.baseUrl=http://zipkin_host:9411
  4. spring.zipkin.enabled=true
  5. spring.sleuth.sampler.probability=1

application.yml

  1. spring:
  2. application:
  3. name: application1
  4. zipkin:
  5. baseUrl: http://zipkin_host:9411
  6. enabled: true
  7. sleuth:
  8. sampler:
  9. probability: 1
  10. server:
  11. port: 8080