1、使用Docker Hub搜索openzipkin/zipkin版本,使用openzipkin/zipkin:latest
docker pull openzipkin/zipkin:latest
2、docker run 运行镜像
docker run -d --restart always -p 9001:9411 --name zipkin openzipkin/zipkin
3、访问浏览器:http://localhost:9001
http://localhost:9001
4、页面展示
说明:Zipkin Server默认会将链路追踪数据保存到内存中,但这种方式不适合生产环境。一旦Zipkin Server重启,数据就丢失了。Zipkin支持将追踪数据持久化到mysql或者elasticsearch中
1、数据库脚本-- 创建数据库zipkin_config create database zipkin_config character set utf8; -- 使用 use zipkin_config; -- MySQL dump 10.13 Distrib 5.7.36, for Win64 (x86_64) -- -- Host: 127.0.0.1 Database: zipkin_config -- ------------------------------------------------------ -- Server version 5.7.37 ; ; ; ; ; ; ; ; ; ; -- -- Table structure for table `zipkin_annotations` -- DROP TABLE IF EXISTS `zipkin_annotations`; ; ; CREATE TABLE `zipkin_annotations` ( `trace_id_high` bigint(20) NOT NULL DEFAULT '0' COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit', `trace_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.trace_id', `span_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.id', `a_key` varchar(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1', `a_value` blob COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB', `a_type` int(11) NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation', `a_timestamp` bigint(20) DEFAULT NULL COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp', `endpoint_ipv4` int(11) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_ipv6` binary(16) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address', `endpoint_port` smallint(6) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', `endpoint_service_name` varchar(255) DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', UNIQUE KEY `trace_id_high` (`trace_id_high`,`trace_id`,`span_id`,`a_key`,`a_timestamp`) COMMENT 'Ignore insert on duplicate', KEY `trace_id_high_2` (`trace_id_high`,`trace_id`,`span_id`) COMMENT 'for joining with zipkin_spans', KEY `trace_id_high_3` (`trace_id_high`,`trace_id`) COMMENT 'for getTraces/ByIds', KEY `endpoint_service_name` (`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames', KEY `a_type` (`a_type`) COMMENT 'for getTraces and autocomplete values', KEY `a_key` (`a_key`) COMMENT 'for getTraces and autocomplete values', KEY `trace_id` (`trace_id`,`span_id`,`a_key`) COMMENT 'for dependencies job' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; ; -- -- Dumping data for table `zipkin_annotations` -- LOCK TABLES `zipkin_annotations` WRITE; ; ; UNLOCK TABLES; -- -- Table structure for table `zipkin_dependencies` -- DROP TABLE IF EXISTS `zipkin_dependencies`; ; ; CREATE TABLE `zipkin_dependencies` ( `day` date NOT NULL, `parent` varchar(255) NOT NULL, `child` varchar(255) NOT NULL, `call_count` bigint(20) DEFAULT NULL, `error_count` bigint(20) DEFAULT NULL, PRIMARY KEY (`day`,`parent`,`child`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; ; -- -- Dumping data for table `zipkin_dependencies` -- LOCK TABLES `zipkin_dependencies` WRITE; ; ; UNLOCK TABLES; -- -- Table structure for table `zipkin_spans` -- DROP TABLE IF EXISTS `zipkin_spans`; ; ; CREATE TABLE `zipkin_spans` ( `trace_id_high` bigint(20) NOT NULL DEFAULT '0' COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit', `trace_id` bigint(20) NOT NULL, `id` bigint(20) NOT NULL, `name` varchar(255) NOT NULL, `remote_service_name` varchar(255) DEFAULT NULL, `parent_id` bigint(20) DEFAULT NULL, `debug` bit(1) DEFAULT NULL, `start_ts` bigint(20) DEFAULT NULL COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL', `duration` bigint(20) DEFAULT NULL COMMENT 'Span.duration(): micros used for minDuration and maxDuration query', PRIMARY KEY (`trace_id_high`,`trace_id`,`id`), KEY `trace_id_high` (`trace_id_high`,`trace_id`) COMMENT 'for getTracesByIds', KEY `name` (`name`) COMMENT 'for getTraces and getSpanNames', KEY `remote_service_name` (`remote_service_name`) COMMENT 'for getTraces and getRemoteServiceNames', KEY `start_ts` (`start_ts`) COMMENT 'for getTraces ordering and range' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; ; -- -- Dumping data for table `zipkin_spans` -- LOCK TABLES `zipkin_spans` WRITE; ; ; UNLOCK TABLES; ; ; ; ; ; ; ; ; -- Dump completed on 2022-03-17 10:44:362、重新启动一个新docker镜像
docker run -d --restart always -p 7004:9411 --name zipkin-mysql openzipkin/zipkin --STORAGE_TYPE=mysql --MYSQL_HOST=172.24.16.1 --MYSQL_TCP_PORT=7000 --MYSQL_DB=zipkin_config --MYSQL_USER=root --MYSQL_PASS=root
注意:
需修改MYSQL_HOST、MYSQL_TCP_PORT、MYSQL_DB、MYSQL_USER、MYSQL_PASS参数,改为与自己数据库对应的配置。MYSQL_HOST需使用本地IP地址



