掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
隨著業(yè)務(wù)發(fā)展壯大,微服務(wù)越來越多,調(diào)用鏈路越來越復(fù)雜,需要快速建立鏈路跟蹤系統(tǒng),以及建立系統(tǒng)的可觀測(cè)性,以便快速了解系統(tǒng)的整體運(yùn)行情況。此時(shí)就非常推薦SkyWalking了,SkyWalking不僅僅是一款鏈路跟蹤工具,還可以作為一個(gè)系統(tǒng)監(jiān)控工具,還具有告警功能。使用簡(jiǎn)便、上手又快。真可謂快、準(zhǔn)、狠。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)饒平免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
本文主要介紹如何快速集成使用SkyWalking,從3個(gè)方面入手:原理、搭建、使用。
SkyWalking整體分為4個(gè)部分:探針采集層、數(shù)據(jù)傳輸和邏輯處理層、數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)展示層。
所謂探針,實(shí)際上是一種動(dòng)態(tài)代理技術(shù),只不過不是我們常用的Java代理類,而是在類加載時(shí),就生成了增強(qiáng)過的代理類的字節(jié)碼,增強(qiáng)了數(shù)據(jù)攔截和采集上報(bào)的功能。
探針技術(shù)是在項(xiàng)目啟動(dòng)時(shí)通過字節(jié)碼技術(shù)(比如JavaAgent、ByteBuddy)進(jìn)行類加載和替換,生成新的增強(qiáng)過的Class文件,對(duì)性能的影響是一次性的。
探針技術(shù),因?yàn)樵陬惣虞d時(shí)進(jìn)行轉(zhuǎn)換,增強(qiáng)了部分功能,所以會(huì)增加項(xiàng)目啟動(dòng)時(shí)間,同時(shí)也會(huì)增加內(nèi)存占用量和線程數(shù)量。但是對(duì)性能影響不大,官方介紹在5% ~ 10%之間。
探針層在類轉(zhuǎn)換時(shí),通過各種插件對(duì)原有的類進(jìn)行增強(qiáng),之后在運(yùn)行時(shí)攔截請(qǐng)求,然后將攔截的數(shù)據(jù)上報(bào)給Skywalking服務(wù)端。同時(shí)再加上一些定時(shí)任務(wù),去采集應(yīng)用服務(wù)器的基礎(chǔ)數(shù)據(jù),比如JVM信息等。
SkyWalking探針層使用了GRPC作為數(shù)據(jù)傳輸框架,將采集的數(shù)據(jù)上報(bào)到SkyWalking服務(wù)端。
SkyWalking服務(wù)端接收數(shù)據(jù)后,利用各種插件來進(jìn)行數(shù)據(jù)的分析和邏輯處理。比如:JVM相關(guān)插件,主要用于處理上報(bào)上來的JVM信息,數(shù)據(jù)庫插件用來分析訪問數(shù)據(jù)庫的信息。然后在將數(shù)據(jù)存入到數(shù)據(jù)存儲(chǔ)層。
SkyWalking的數(shù)據(jù)存儲(chǔ)層支持多種主流數(shù)據(jù)庫,可以自行到配置文件里查閱。我推薦使用ElasticSearch,存儲(chǔ)量大,搜索性能又好。
SkyWalking 通過 Rocketbot 進(jìn)行頁面UI展示。可以在頁面的左上角看到這個(gè)可愛的Rocketbot。
知道了原理,搭建就很輕松了,使用SkyWalking其實(shí)就3個(gè)步驟:
SkyWalking支持多種存儲(chǔ)方式,此處推薦采用Elasticsearch作為存儲(chǔ)組件,存儲(chǔ)的數(shù)據(jù)量較大,搜索響應(yīng)快。
快速搭建Elasticsearch:
{
"name": "node-1",
"cluster_name": "my-application",
"cluster_uuid": "GvK7v9HhS4qgCvfvU6lYCQ",
"version": {
"number": "7.17.1",
"build_flavor": "default",
"build_type": "rpm",
"build_hash": "e5acb99f822233d6ad4sdf44ce45a454xxxaasdfas323ab",
"build_date": "2023-02-23T22:20:54.153567231Z",
"build_snapshot": false,
"lucene_version": "8.11.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}搭建SkyWalking服務(wù)端只需要4步:
1、下載并解壓skywalking:https://archive.apache.org/dist/skywalking/8.9.0/
2、進(jìn)入到安裝目錄下的修改配置文件:config/apllication.yaml。將存儲(chǔ)修改為elasticsearch。
3、進(jìn)入到安裝目錄下的bin目錄,執(zhí)行./startup.sh啟動(dòng)SkyWalking服務(wù)端。
4、此時(shí)使用jps命令,應(yīng)該可以看到如下2個(gè)進(jìn)程。一個(gè)是web頁面進(jìn)程,一個(gè)是接受和處理上報(bào)數(shù)據(jù)的進(jìn)程。如果沒有jps命令,那自行查看下是否配置了Java環(huán)境變量。同時(shí)訪問http://ip:8080應(yīng)該可以看到如下界面。
應(yīng)用采集并且上報(bào)數(shù)據(jù),直接使用agent探針方式。分為以下3步:
1、下載解壓agent:https://archive.apache.org/dist/skywalking/java-agent/8.9.0/,找到skywalking-agent.jar
java -javaagent:/自定義path/skywalking-agent.jar -Dskywalking.collector.backend_service={{agentUrl}} -jar xxxxxx.jar此處的{{agentUrl}}是SkyWalking服務(wù)端安裝的地址,再加上11800端口。比如:10.20.0.55:11800。
3、啟動(dòng)項(xiàng)目后,即可看到監(jiān)控?cái)?shù)據(jù),如下圖:
原理和搭建已經(jīng)介紹完畢,接下來快速介紹UI頁面的功能。下圖標(biāo)紅的部分是重點(diǎn)關(guān)注區(qū)域:
關(guān)于UI界面的使用,還可以參考這個(gè)鏈接:https://juejin.cn/post/7106307197763584030,這里寫的比較詳細(xì)。
本文主要從3個(gè)方面入手:原理、搭建、使用,介紹如何快速集成使用SkyWalking。核心重點(diǎn):

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流