前面的幾篇文章我們聊了基于Metrics的監(jiān)控Prometheus抡医,利用Prometheus和Grafana可以全方位監(jiān)控你的服務(wù)器及應(yīng)用的性能指標(biāo),在出現(xiàn)異常時利用Alertmanager告警及時通知運(yùn)維處理。今天我們聊聊基于Trace的分布式跟蹤系統(tǒng) - SkyWalking
初識SkyWalking
應(yīng)用場景
隨著微服務(wù)架構(gòu)的流行刻恭,一些微服務(wù)架構(gòu)下的問題也會越來越突出翠订,比如一個請求會涉及多個服務(wù),而服務(wù)本身可能也會依賴其他服務(wù)激才,整個請求路徑就構(gòu)成了一個網(wǎng)狀的調(diào)用鏈拓型,而在整個調(diào)用鏈中一旦某個節(jié)點(diǎn)發(fā)生異常,整個調(diào)用鏈的穩(wěn)定性就會受到影響瘸恼,如果沒有及時處理很有可能會造成整個系統(tǒng)崩潰劣挫。
面對以上情況,我們就需要一些可以幫助理解系統(tǒng)行為东帅、用于分析性能問題的工具压固,以便發(fā)生故障的時候,能夠快速定位和解決問題靠闭。
架構(gòu)
SkyWalking 邏輯上分為四部分: 探針, 平臺后端, 存儲和用戶界面帐我。
探針
主要負(fù)責(zé)從客戶端收集數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換成SkyWalking適用的格式愧膀,探針對客戶端程序沒有任何代碼侵入焚刚,使用起來簡單方便,使用如下命令即可完成對應(yīng)用的監(jiān)控
java -javaagent:/path/skywalking-agent.jar -jar youApp.jar
平臺后端(OAP Server)
主要用于數(shù)據(jù)聚合, 數(shù)據(jù)分析以及驅(qū)動數(shù)據(jù)流從探針到用戶界面的流程扇调。通過 gRPC/Http 收集客戶端Agent的采集信息 矿咕,Http默認(rèn)端口 12800,gRPC默認(rèn)端口 11800狼钮。存儲
SkyWalking支持很多存儲:H2(用作演示環(huán)境)碳柱、MySQL(當(dāng)數(shù)據(jù)量大時檢索性能下降很厲害)、ES(主流生產(chǎn)級別的存儲)用戶界面
炫酷的界面熬芜,調(diào)用請求監(jiān)控一目了然莲镣。
安裝配置
安裝
直接從官網(wǎng)下載最新的安裝包,并上傳到服務(wù)器解壓涎拉。解壓后的文件如下:
(需要提前準(zhǔn)備好JAVA(1.8)和ES(6.x)的環(huán)境瑞侮。)
關(guān)注一下幾個重要的目錄:
- agent:代理模塊(探針)
- bin:啟動腳本(包括UI和OAP SERVER)
- config:后端相關(guān)配置
- webapp:UI界面
配置
- 存儲相關(guān)配置
打開application.yml
,修改storage
相關(guān)配置鼓拧。關(guān)閉H2半火,打開ES,然后啟動./bin/startup.sh
storage:
elasticsearch:
nameSpace: ${SW_NAMESPACE:"elk-online"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.136.129:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
-
agent 配置
將agent
文件夾從服務(wù)器上拷貝出來季俩,放在客戶端服務(wù)器钮糖。打開agent\config\agent.config
作如下修改-
agent.service_name
修改成你應(yīng)用名稱:blog -
collector.backend_service
修改成OAP Server地址:192.168.136.129:11800
-
-
IDEA配置(可選)
file
配置完成后啟動你的客戶端應(yīng)用。
效果
環(huán)境搭建好了酌住,下一步就是全面監(jiān)控你的應(yīng)用了店归,咱們下期有緣再見阎抒。
三維一體立體化監(jiān)控
歡迎關(guān)注我的個人公眾號:JAVA日知錄