SpringCloud微服務實戰——搭建企業級開發框架(三十三):整合Skywalking實現鏈路追蹤
- 2021 年 12 月 17 日
- 筆記
- SpringCloud, 微服務
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
2、下載Elasticsearch,下載地址://www.elastic.co/cn/downloads/elasticsearch ,因為上面我們選擇下載的Skywalking用到的是ElasticSearch 7,所以這裡下載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/查看是否啟動成功
10、Skywalking搭建好之後,我們這裡說明在開發環境中,把agent通過IDEA配置到每個微服務中,配置-Dskywalking.agent.service_name為微服務的名稱
-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