Skywalking的安裝與簡單使用
Skywalking:國産APM系統。
官網位址:http://skywalking.apache.org/
github位址:https://github.com/apache/skywalking/tree/master/docs
功能
服務、執行個體、端點分析;
服務拓撲圖分析;
慢查詢檢測;
告警;
…
核心概念
先來一張官方圖。
Agent(探針):Agent 運作在各個服務執行個體中,負責采集服務執行個體的 Trace 、Metrics 等資料,然後通過 gRPC 方式上報給 SkyWalking 後端。
OAP:SkyWalking 的後端服務,其主要責任有兩個。
一個是負責接收 Agent 上報上來的 Trace、Metrics 等資料,交給 Analysis Core (涉及 SkyWalking OAP 中的多個子產品)進行流式分析,最終将分析得到的結果寫入持久化存儲中。SkyWalking 可以使用 ElasticSearch、H2、MySQL 等作為其持久化存儲,一般線上使用 ElasticSearch 叢集作為其後端存儲。
另一個是負責響應 SkyWalking UI 界面發送來的查詢請求,将前面持久化的資料查詢出來,組成正确的響應結果傳回給 UI 界面進行展示。
UI 界面:SkyWalking 前後端進行分離,該 UI 界面負責将使用者的查詢操作封裝為 GraphQL 請求送出給 OAP 後端觸發後續的查詢操作,待拿到查詢結果之後會在前端負責展示。
搭建
版本關系
Skywalking 6.X需要使用Elasticsearch 6.X,5.X或7.X的Elasticsearch存在相容性問題。
Skywalking官方下載下傳路徑:http://skywalking.apache.org/downloads/。
本機測試版本:
Skywalking:6.5.0
https://archive.apache.org/dist/skywalking/6.5.0/
Elasticsearch:6.8.6
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz
Kibana:6.6.1
https://artifacts.elastic.co/downloads/kibana/kibana-6.6.1-darwin-x86_64.tar.gz(mac版本,其他環境選擇其他版本)
安裝步驟
ES安裝
解壓ES安裝包
tar -zxf elasticsearch-6.8.6.tar.gz
進入bin目錄下,執行elasticsearch。 -d指令可背景執行。
./bin/elasticsearch
根目錄下會生成logs檔案,其中elasticsearch.log為日志檔案。
也可修改config目錄下elasticsearch.yml檔案制定日志、資料存儲位置,ES相關配置不再贅述。
tail -f logs/elasticserach.log
檢視背景日志,若無報錯資訊,則說明啟動成功。
浏覽器輸入:localhost:9200,界面展示如下,說明安裝成功。
{
"name" : "dKPueZZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "yriBScj_QfmnDiUwSkdyQA",
"version" : {
"number" : "6.8.6",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "3d9f765",
"build_date" : "2019-12-13T17:11:52.013738Z",
"build_snapshot" : false,
"lucene_version" : "7.7.2",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Kibana安裝
kibana是為了檢視ES資料,非必要。
加壓kibana安裝包
tar -zxf kibana-6.6.1-darwin-x86_64.tar.gz
修改kibana配置檔案,指定elasticsearch叢集。
配置檔案路徑config/kibana.yml檔案
elasticsearch.hosts: ["http://127.0.0.1:9200"]
啟動kibana
./bin/kibana
啟動後通路localhost:5602,檢視kibana位址。
界面正常表示啟動成功。
skywalking安裝
解壓安裝包
tar -zxf apache-skywalking-apm-6.5.0.tar.gz
修改配置檔案,指定ES位址
配置檔案目錄:config/application.yml
預設使用h2,将storage下h2節點全部注釋,放開storage下elasticsearch,并調整clusterNodes為實際ES位址。若為設定密碼,保留預設配置即可。
skywalking分為OAP、webApp、agent三部分,執行bin目錄下startup.sh (mac、linux系統,windows執行.bat),會啟動OAP和WebApp兩個服務。APP是前端界面,預設端口為8080,若端口沖突,可至webapp目錄下,修改webapp.yml中server.port配置實作修改端口。
12800端口為監聽OAP端口,預設即可,端口沖突情況下也可修改。
webapp、OAP日志在/logs下。
webapp:webapp.log
OAP:skywalking-oap-server.log
若無error日志,則說明啟動成功。通路localhost:8080,可進入webApp UI界面。
至此,Skywalking安裝成功。
使用
下面說一下如何使用。
skywalking是通過agent的方式實作,比較較zipkin和cat來說,skywalking更加友好,對代碼是零侵入性。
隻需要在啟動jar的時候指定agent路徑即可。
如下為idea中配置啟動參數:
-javaagent:/yourpath/apache-skywalking-apm-bin/agent/skywalking-agent.jar
-Dskywalking.collector.backend_service=127.0.0.1:11800
-Dskywalking.agent.service_name=your_app_name
java -jar啟動:
java -javaagent:/yourpath/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar your_app.jar
UI說明
儀表盤
通路localhost:8080,進入ui界面。
1:控制台主菜單,分為儀表盤,拓撲圖,追蹤,告警,名額對比五個界面。儀表盤下有包含Service和DataBase。
2:目前服務可選擇要檢視的服務,目前端點下拉可選擇目前服務下所有端點,目前執行個體下拉可選擇所有執行個體。
3:不同次元的小菜單。
Global:全局視圖;Service:服務詳細視圖;Endpoint:端點詳細視圖;Instance:服務詳細視圖。
4:Global Heatmap:熱力圖,某個時間段内請求熱度,9處為具體時間段,可任意更換時間段。
5:Global Response Time Percentile:時間段p50、p75、p90、p95、p99名額;
6:Global Brief:skywalking所感覺到的具體服務數量;
7:Global Top Throughput:吞吐量排名;
8:Global Top Slow Endpoint:耗時排名的Endpoint。
Service視圖
1:Servoce Avg ResponseTime:指定服務的平均耗時;Service ResponseTime:圖。
2:Service Avg Throughput:指定服務平均吞吐量;Service Throughput:圖。
3:Service Avg SLA:指定服務的平均SLA(服務等級協定);Service SLA:圖。
4:Global Percent Response :全局響應時間的分位數;
5:Service Percent Response :指定服務響應時間的分位數;
6:Service Slow Endpoint :指定服務中耗時比較長的 Endpoint 資訊。
7:Running ServiceInstance :指定服務下的執行個體資訊。
Endpoint視圖
此界面展示指定Endpoint視圖,與Service雷同,不再贅述。
Instance視圖
此界面主要是指定執行個體資訊,平均響應時間、請求次數、SLA名額、JVM資訊、GC使用頻次與耗時、CPU使用率等等。
拓撲圖
此處可以看到具體的調用鍊路。
追蹤
此處展示指定Endpoint的調用資訊,包含DB調用等。
可具體檢視某一階段資訊。
告警需要配置具體政策,此處略。
名額對比是不同服務端點相關對比,此處略。