
openzipkin/zipkin-elasticsearch7的测试镜像。
自动构建的镜像可在Quay.io的OpenZipkin组织下获取,并同步到Docker Hub。
OpenZipkin提供的生产环境可用镜像仅包括:
如果使用这些镜像时遇到问题,请提交issue或加入gitter交流。
此处的其他镜像及docker-compose配置仅用于开发和探索目的,例如帮助快速集成完整的Zipkin系统进行测试,无需深入了解其工作原理,也无需下载大量文件。
例如,openzipkin/zipkin-cassandra并非为实际生产使用设计,它无法配置多个节点,也不具备生产环境所需的文件系统处理能力。我们期望生产用户使用官方存储或传输镜像(如Kafka),仅测试或学习Zipkin时使用本仓库提供的镜像。
Zipkin无依赖,例如可运行内存中的Zipkin服务器:
docker run -d -p 9411:9411 openzipkin/zipkin-slim
通过(docker ip):9411访问UI。
在UI中,点击zipkin-server,然后点击“Find Traces”。
配置通过环境变量进行,具体定义见zipkin-server。重要的环境变量包括STORAGE_TYPE,其值可设为“cassandra”“mysql”“elasticsearch”等。
注意:openzipkin/zipkin-slim镜像仅支持“elasticsearch”存储。如需使用其他存储类型,必须使用主镜像openzipkin/zipkin。
在Docker环境中,以下环境变量同样适用:
JAVA_OPTS:用于设置Java参数,如堆大小或信任存储位置。STORAGE_PORT_9042_TCP_ADDR:监听9042端口的Cassandra节点。启动容器时,通常通过链接运行zipkin-cassandra的容器并命名为“storage”来设置此变量。STORAGE_PORT_3306_TCP_ADDR:监听3306端口的MySQL节点。启动容器时,通常通过链接运行zipkin-mysql的容器并命名为“storage”来设置此变量。STORAGE_PORT_9200_TCP_ADDR:监听9200端口的Elasticsearch节点。启动容器时,通常通过链接运行zipkin-elasticsearch的容器并命名为“storage”来设置此变量。当设置ES_HOSTS或ES_AWS_DOMAIN时,此变量将被忽略。KAFKA_PORT_2181_TCP_ADDR:监听2181端口的ZooKeeper节点。启动容器时,通常通过链接运行zipkin-kafka的容器并命名为“kafka”来设置此变量。例如,要添加调试日志,可设置JAVA_OPTS,如docker-compose文件所示:
yaml- JAVA_OPTS=-Dlogging.level.zipkin=DEBUG -Dlogging.level.zipkin2=DEBUG
openzipkin/zipkin和openzipkin/zipkin-slim镜像运行在名为“zipkin”的nologin用户下,主目录为“/zipkin”。由于是无发行版(distroless)镜像,未安装许多工具,但可通过以下方式使用shell浏览内容:
bash$ docker run -it --rm --entrypoint /busybox/sh openzipkin/zipkin /zipkin $ ls BOOT-INF META-INF org run.sh
本项目配置支持使用docker-compose运行容器,默认配置要求docker-compose 1.6.0+和docker-engine 1.10.0+。
启动默认docker-compose配置:
$ docker-compose up
通过$(docker ip):9411访问Web UI。
要在UI中查看特定追踪,从下拉菜单选择“zipkin-server”,然后点击“Find Traces”按钮。
启动更小更快的Zipkin发行版:
bash$ docker-compose -f docker-compose-slim.yml up
此配置使用内存存储。精简版仅支持的其他存储选项是Elasticsearch:
bash$ docker-compose -f docker-compose-slim.yml -f docker-compose-elasticsearch.yml up
默认docker-compose配置(docker-compose.yml)使用MySQL作为后端,启动zipkin、zipkin-mysql和zipkin-dependencies(定时任务)容器。
可通过docker-compose-cassandra.yml文件扩展docker-compose配置,使用Cassandra替代MySQL,该文件通过docker-compose覆盖替换存储容器。
启动Cassandra后端配置:
$ docker-compose -f docker-compose.yml -f docker-compose-cassandra.yml up
可通过docker-compose-elasticsearch.yml文件扩展docker-compose配置,使用Elasticsearch替代MySQL,该文件通过docker-compose覆盖替换存储容器。
启动Elasticsearch后端配置:
$ docker-compose -f docker-compose.yml -f docker-compose-elasticsearch.yml up
zipkin-elasticsearch5和zipkin-elasticsearch6镜像对虚拟内存要求更严格(详情见docker-library/docs),需相应调整(尤其是Elasticsearch崩溃时):
bash# 若Docker运行在主机上,直接调整内核设置 $ sudo sysctl -w vm.max_map_count=262144 # 若使用docker-machine/Docker Toolbox/Boot2Docker,远程调整相同设置 $ docker-machine ssh default "sudo sysctl -w vm.max_map_count=262144"
可通过docker-compose-kafka.yml文件扩展docker-compose配置,启动测试Kafka broker并激活Kafka收集器,该文件通过docker-compose覆盖添加Kafka+ZooKeeper容器及相关设置。
启动MySQL+Kafka配置:
$ docker-compose -f docker-compose.yml -f docker-compose-kafka.yml up
然后配置Kafka发送器,若应用在同一Docker网络中,bootstrapServers设为host.docker.internal:9092;若在同一主机但不在网络中,设为localhost:***。
例如,若在本地运行示例应用,使用localhost:***作为bootstrap server发送span到Docker中的Kafka broker。
可通过docker-compose-ui.yml文件扩展docker-compose配置,使用NGINX容器在80端口托管UI,该文件通过docker-compose覆盖添加NGINX容器及相关设置。
启动NGINX配置:
$ docker-compose -f docker-compose.yml -f docker-compose-ui.yml up
该容器可作为围绕Zipkin创建代理配置的基础,如认证、处理zipkin-js应用的CORS或SSL终止。
Zipkin内置Prometheus指标导出器。主docker-compose.yml启动Prometheus(配置为抓取Zipkin指标,暴露在9090端口),以及禁用认证的Grafana(暴露在3000端口)。启动后,Grafana配置Prometheus为数据源,并导入仪表盘([***]$DOCKER_IP:3000/dashboard/db/zipkin-prometheus访问仪表盘。
若要独立运行zipkin-ui并连接远程Zipkin服务器,需设置ZIPKIN_BASE_URL:
bash$ docker run -d -p 80:80 \ -e ZIPKIN_BASE_URL=[***] \ openzipkin/zipkin-ui
若使用Docker Machine,需调整docker-compose-kafka.yml中的KAFKA_ADVERTISED_HOST_NAME及Kafka发送器的bootstrapServers配置,以匹配Docker主机IP(如192.168.99.100:***)。
若使用外部MySQL服务器或镜像,确保数据库 schema 及其他参数与文档一致。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务