使用zipkin kafka elasticsearch收集链路日志
默认三台虚拟机机器bigdata111、bigdata112、bigdata113环境: 已经安装jdk8,并配置环境变量、已设置相互免密、登录免密,设置hosts映射(好习惯)1.安装kafka集群三个节点 3个broker bigdata111、bigdata112、bigdata113. 主题topic:zipkin参考 kafka 安装教程,需要安装zookeeper。 建议手动建topi
默认三台虚拟机机器 bigdata111、bigdata112、bigdata113
环境: 已经安装jdk8,并配置环境变量、已设置相互免密、登录免密,设置hosts映射(好习惯)
1.安装kafka集群
三个节点 3个broker bigdata111、bigdata112、bigdata113. 主题topic:zipkin
参考 kafka 安装教程,需要安装zookeeper。 建议手动建topic,3个副本,3个分区。
2.安装es单节点
单节点在机器bigdata113
下载软件包解压 修改配置文件即可启动。
3.安装zipkin2.23.2-exec.jar
单节点安装到机器bigdata113
下载jar包,即可启动,注意这里的启动参数:存储类型不是java变量,是环境变量。
STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 java -DKAFKA_BOOTSTRAP_SERVERS=bigdata111:9092,bigdata112:9092,bigdata113:9092 -DKAFKA_TOPIC=zipkin -Xms256M -Xmx256M -jar zipkin-server-2.23.2-exec.jar
STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 java -DKAFKA_BOOTSTRAP_SERVERS=bigdata111:9092,bigdata112:9092,bigdata113:9092 -DKAFKA_TOPIC=zipkin -Xms256M -Xmx256M -jar zipkin-server-2.23.2-exec.jar
4.微服务引入依赖
4.1 zipkin的三种发送类型
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.springframework.cloud.sleuth.zipkin2.sender;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("spring.zipkin.sender")
public class ZipkinSenderProperties {
private ZipkinSenderProperties.SenderType type;
public ZipkinSenderProperties() {
}
public ZipkinSenderProperties.SenderType getType() {
return this.type;
}
public void setType(ZipkinSenderProperties.SenderType type) {
this.type = type;
}
public static enum SenderType {
RABBIT,
KAFKA,
WEB;
private SenderType() {
}
}
}
4.2 微服务应用引入jar包
注意是sring boot 2.12版本
<!--zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
4.3 修改配置文件
配置文件application.yml,添加如下配置:
zipkin:
base-url: http://bigdata111:9411
sender:
type: kafka
sleuth:
sampler:
probability: 1.0
kafka:
bootstrap-servers: bigdata111:9092,bigdata112:9092,bigdata113:9092
zipkin端口 9411, kafka 9092, es 9200, 应用接口9999
5.测试步骤
5.1启动应用 请求接口
swagger接口。 http://localhost:9999/xxxxxx/swagger-ui.html,试用测试接口。
5.2 通过kafka tools
查看kafka偏移量,查看kafka的数据。
生产者投递的消息的偏移量,副本同步的偏移量。
消费者消费的偏移量,剩余消费lag数量
5.3 通过kibana
通过kibana查看es数据或者es-head查看es数据
5.3.1通过stackManager管理索引,添加索引规则进行分组。
5.3.2查看Es数据
通过 es-discover选在zipkin-* 索引
5.3.4 zipkin的数据字段
通过 es-discover选择zipkin-* 索引,zipkin的数据字段有trackId,标签tags,请求方法 post 应用名称,接口地址,请求时长等参数。
5.4 通过zipkin查看链路日志 系统拓扑图
5.4.1 查看链路收集结果
访问 http://bigdata111:9411/zipkin/
5.4.2链路数据详细
本例子暂时没有经过网关,依赖暂时没有数据。后续补充拓扑图。
扩展问题:高可用测试运维方向,需求方向 定制开发。
运维方向:
1.kafka 故障测试 broker挂了一台可以继续使用,挂了两台集群可以使用不?
2.es集群故障测试 故障一半的es,集群能否可以使用?
3.zipkin可以做集群不?多台zipkin如何实现高可用?
组件监控保障:
1.kafka性能检查 ,集群规划,多少台主机。
2.es性能监控,集群规划 数据量规划,多少台机器,多大的存储,网卡多大。
需求方向:
1.扩展开发使用zipkin接口定制开发?
2.自定查询es数据,定制看板报表的需求?
运维监控分析:
1.根据链路日志定位故障,请求次数 耗时 请求数量,请求错误数量。
2.画出拓扑图,勾勒出系统调用的依赖图。
更多推荐
所有评论(0)