## 1 拉取鏡像 指定版本,在git查看相應版本,參考: https://github.com/openzipkin/zipkin 如2.21.7 ```bash docker pull openzipkin/zipkin:2.21.7 ``` ## 2 啟動 Zipkin預設埠為9411。啟動 ...
1 拉取鏡像
指定版本,在git查看相應版本,參考: https://github.com/openzipkin/zipkin
如2.21.7
docker pull openzipkin/zipkin:2.21.7
2 啟動
Zipkin預設埠為9411。啟動時通過-e server.port=xxxx設置指定埠
docker run --name zipkin-server -d --restart=always -p 9411:9411 openzipkin/zipkin:2.21.7
--restart=always
可以讓容器在退出後自動重啟,保證可用性-p 9411:9411
是埠映射,將容器內部預設的 9411 埠映射到宿主機的 9411 埠,方便訪問- 指定鏡像版本號
openzipkin/zipkin:2.21.7
是個好習慣,避免使用預設 latest 標簽導致不可控的問題 - 如果需要調整配置,可以使用
-e
參數設置環境變數,例如:-e JAVA_OPTS="-Xms512m -Xmx512m"
來控制 Zipkin 的記憶體 - 數據預設存放在記憶體中,建議通過
-v
參數映射捲持久化數據,避免重啟後丟失
3 訪問測試
訪問鏈接:http://localhost:9411/zipkin/
4 Web UI
請求列表:
點擊第一項,看看詳情頁。
AUTH-SERVICE: get /error 入庫服務名稱及請求方式
5 持久化
Zipkin Server預設將追蹤數據信息保存到記憶體,重啟服務後追蹤數據將不存在,Zipkin支持將追蹤數據持久化到MySQL或ES。
持久化需註意MySQL/ES版本,在https://github.com/openzipkin/zipkin,可查看:
ES組件使用Elasticsearch 5+的功能,但已測試過與Elasticsearch 6-7.x的相容性。
它將spans存儲為Zipkin v2 json,以便與其他工具集成。為擴展,它使用自定義和手動實現的索引組合。
註意:這個存儲需要一個Spark job來聚合依賴鏈接。
5.1 MySQL持久化
① 建資料庫
如zipkin
② 建表
③ 修改啟動命令
Zipkin預設埠9411。
啟動時通過-e server.port=xxxx設置指定埠
docker run \
--name zipkin-server -d \
--restart=always \
-p 9411:9411 \
-e MYSQL_USER=root \
-e MYSQL_PASS=lhzlx \
-e MYSQL_HOST=111.229.160.175 \
-e STORAGE_TYPE=mysql \
-e MYSQL_DB=zipkin \
-e MYSQL_TCP_PORT=3316 \
openzipkin/zipkin:2.21.7
④ 驗證
啟動zipkin-server並請求,再次重啟zipkin-server,可見依然存在請求鏈路錄記錄,並且MySQL表中存在記錄。
5.2 ES持久化
無需建立啥配置信息,只需啟動jar時指定ES地址。
將腳本中的啟動命令修改為:
docker run \
--name zipkin-server -d \
-p 9411:9411 \
--restart=always \
-e STORAGE_TYPE=elasticsearch \
-e ES_HOSTS=localhost:9200
openzipkin/zipkin:2.21.7
若連接ES集群,--ES_HOSTS通過逗號分割,如:--ES_HOSTS=http://1.1.1.1:9200,http://2.2.2.2:9200
連接ES參數
環境變數 | 描述 |
---|---|
ES_HOSTS | 連接ES地址,多個由逗號分隔。預設為http://localhost:9200 |
ES_PIPELINE | 指定span被索引之前的pipeline |
ES_TIMEOUT | 連接ES的超時時間,單位ms。預設為10000(10S) |
ES_INDEX | Zipkin持久化所使用的索引。預設為zipkin |
ES_DATE_SEPARATOR | Zipkin建立索引的日期分隔符。預設為- |
ES_INDEX_SHARDS | 分片(shard)個數,預設為5個 |
ES_INDEX_REPLICAS | 副本(replica)個數,預設為1個 |
ES_HTTP_LOGGING | ES的日誌級別,可選值為BASIC, HEADERS, BODY |
ES_USERNAME/ES_PASSWORD | 登錄ES的用戶名和密碼 |
本文由博客一文多發平臺 OpenWrite 發佈!