SpringCloud微服務實戰——搭建企業級開發框架(三十三):整合Skywalking實現鏈路追蹤

  Skywalking是由國內開源愛好者吳晟(原OneAPM工程師)開源並提交到Apache孵化器的產品,它同時吸收了Zipkin/Pinpoint/CAT的設計思路,支持非侵入式埋點。是一款基於分佈式跟蹤的應用程序性能監控系統。另外社區還發展出了一個叫OpenTracing的組織,旨在推進調用鏈監控的一些規範和標準工作。

1、下載Skywalking,下載地址://skywalking.apache.org/downloads/#download-the-latest-versions ,根據需求選擇發佈的版本,這裡我們選擇最新發佈版v8.4.0 for H2/MySQL/TiDB/InfluxDB/ElasticSearch 7
v8.4.0 for H2/MySQL/TiDB/InfluxDB/ElasticSearch 7
2、下載Elasticsearch,下載地址://www.elastic.co/cn/downloads/elasticsearch ,因為上面我們選擇下載的Skywalking用到的是ElasticSearch 7,所以這裡下載Elasticsearch 7.12.0
Elasticsearch 7.12.0
3、將下載後的apache-skywalking-apm-es7-8.4.0.tar.gz和elasticsearch-7.12.0-linux-x86_64.tar.gz上傳到Linux服務器並分別解壓

tar -zxvf apache-skywalking-apm-es7-8.4.0.tar.gz

tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz

4、修改/elasticsearch-7.12.0/config下的elasticsearch.yml

# 修改
clusteri.name: CollectorDBCluster
node.name: CollectorDBCluster-1
# 這裡設置為實際的ip地址
network.host: 127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["CollectorDBCluster-1"]

5、為了系統安全考慮,Elasticsearch默認不能使用root用戶啟動,這裡新建一個es用戶用於啟動Elasticsearch

#創建es用戶組及es用戶
groupadd es

useradd es -g es

# 修改登錄用戶的密碼,這裡設置為Skywalking
passwd es

#將elasticsearch-7.12.0文件夾權限賦予es用戶
chown -R es:es elasticsearch-7.12.0

#切換到es用戶
su es

#進入到elasticsearch-7.12.0/bin目錄,執行啟動命令, 後面-d為後台啟動
./elasticsearch -d

6、訪問//127.0.0.1:9200即可查看elasticsearch是否啟動成功

{
  "name" : "CollectorDBCluster-1",
  "cluster_name" : "CollectorDBCluster",
  "cluster_uuid" : "J2LyQWfdTeeBN0dcdWpgqw",
  "version" : {
    "number" : "7.12.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
    "build_date" : "2021-03-18T06:17:15.410153305Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

7、修改apache-skywalking-apm-bin-es7\config\application.yml

storage:
  # 默認存儲是h2,這裡改為elasticsearch7
  selector: ${SW_STORAGE:elasticsearch7}
  


  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"CollectorDBCluster"}
    #這裡localhost改為elasticsearch7的安裝地址
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}

8、切換到apache-skywalking-apm-bin-es7\bin目錄,並執行啟動命令

 ./startup.sh

9、訪問//127.0.0.1:8080/查看是否啟動成功
skywalking

10、Skywalking搭建好之後,我們這裡說明在開發環境中,把agent通過IDEA配置到每個微服務中,配置-Dskywalking.agent.service_name為微服務的名稱
image.png
image.png

-javaagent:D:\DevTools\Skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=gitegg-gateway -Dskywalking.collector.backend_service=127.0.0.1:11800

11、配置好之後啟動微服務,打開//127.0.0.1:8080 ,點擊拓撲圖可以看到整個微服務的關係
拓撲圖
追蹤

源碼地址:

Gitee: //gitee.com/wmz1930/GitEgg

GitHub: //github.com/wmz1930/GitEgg