1、启动Elasticsearch和kibana
Elasticsearch按照教程正常启动了,但是kibana启动后访问http://localhost:5601,返回 Kibana server is not ready yet,百度查询,基本上都是说Elasticsearch和kibana版本不一致的,但是我的版本都是7.2.0,确定是一致的,然后各种查,后来看了下面的报错,原来是没有设置集群协调配置,没有按步骤设置的坑。
2、执行调用后再zipkin页面上有调用记录,但是在Elasticsearch上无法查到数据,而且也都不报错
(1)一开始查到的zipkin-server启动命令如下:
java -jar zipkin-server-2.10.1-exec.jar --STORAGE_TYPE=elasticsearch --DES_HOSTS=http://172.16.101.193:9200 > 1.log
zipkin报错如下:
ERROR: cannot load span names: Request processing failed; nested exception is java.io.UncheckedIOException: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:9200
有时候也会报下面错误:
Failed to connect to localhost/0:0:0:0:0:0:0:1:9200
(2)然后尝试着把两个短横改为一个短横,命令如下:
java -jar zipkin-server-2.10.1-exec.jar -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=http://172.16.101.111:9200 > publish.log &
这样没有任何报错,但是相关数据无法上传到Elasticsearch上。
(3)后来看有的博客上是这样写:
nohup java -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=http://172.16.101.111:9200 -jar zipkin-server-2.10.1-exec.jar > publish.log &
报错如下:
ERROR: cannot load service names: Request processing failed; nested exception is java.lang.IllegalStateException: response for update-template failed: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Setting index.mapper.dynamic was removed after version 6.0.0"}],"type":"illegal_argument_exception","reason":"Setting index.mapper.dynamic was removed after version 6.0.0"},"status":400}
看这个意思是在6.0.0版本之后删除了自动设置索引,那就是Elasticsearch版本太高了,需要换低版本的,于是换成5.6.8版本,终于能正常访问了。
3、zipkin调用链不显示
解决了一系列问题之后,在Elasticsearch-head上终于能看到数据了,激动的内牛满面,数据如下图。
但是又产生了一个新问题,zipkin调用链的依赖关系不显示了,经过查询得知,基本都有这个问题,而且必须要下载一个zipkin-dependencies-XXX.jar然后单独运行才能把依赖关系生成出来,于是去下载了一个运行试试,还真行,而且在Elasticsearch-head也有了依赖关系的数据。如下
4、zipkin:dependency在kibana上查不到
所有数据终于都有了,这个时候就要去kibana查看数据了,添加了一个索引模式zipkin*,按理说应该能把zipkin:span-和zipkin:dependency-都匹配查询出来,但是没有,只能查到zipkin:span-的数据,zipkin:dependency-的数据死活都查不出来,然后在各种查找方法,也没查出个所以然,最后查实将索引模式设置为:zipkin:dependency*,数据竟然出来了,出来了,来了,了。无比的震惊,这个到底是个什么情况,具体原因我还没有查出来,但是结果是好了。
至此整个流程终于通了,简直是各种奇葩问题都有,还需要继续修炼。