基於SkyWalking的分散式跟蹤系統 – 環境搭建
- 2019 年 10 月 28 日
- 筆記
前面的幾篇文章我們聊了基於Metrics的監控Prometheus,利用Prometheus和Grafana可以全方位監控你的伺服器及應用的性能指標,在出現異常時利用Alertmanager告警及時通知運維處理。今天我們聊聊基於Trace的分散式跟蹤系統 – SkyWalking
初識SkyWalking
應用場景
隨著微服務架構的流行,一些微服務架構下的問題也會越來越突出,比如一個請求會涉及多個服務,而服務本身可能也會依賴其他服務,整個請求路徑就構成了一個網狀的調用鏈,而在整個調用鏈中一旦某個節點發生異常,整個調用鏈的穩定性就會受到影響,如果沒有及時處理很有可能會造成整個系統崩潰。
面對以上情況,我們就需要一些可以幫助理解系統行為、用於分析性能問題的工具,以便發生故障的時候,能夠快速定位和解決問題。
架構
SkyWalking 邏輯上分為四部分: 探針, 平台後端, 存儲和用戶介面。
-
探針
主要負責從客戶端收集數據,將數據轉換成SkyWalking適用的格式,探針對客戶端程式沒有任何程式碼侵入,使用起來簡單方便,使用如下命令即可完成對應用的監控
java -javaagent:/path/skywalking-agent.jar -jar youApp.jar
-
平台後端(OAP Server)
主要用於數據聚合, 數據分析以及驅動數據流從探針到用戶介面的流程。通過 gRPC/Http 收集客戶端Agent的採集資訊 ,Http默認埠 12800,gRPC默認埠 11800。 -
存儲
SkyWalking支援很多存儲:H2(用作演示環境)、MySQL(當數據量大時檢索性能下降很厲害)、ES(主流生產級別的存儲) -
用戶介面
炫酷的介面,調用請求監控一目了然。
安裝配置
安裝
直接從官網下載最新的安裝包,並上傳到伺服器解壓。解壓後的文件如下:
(需要提前準備好JAVA(1.8)和ES(6.x)的環境。)
關注一下幾個重要的目錄:
- agent:代理模組(探針)
- bin:啟動腳本(包括UI和OAP SERVER)
- config:後端相關配置
- webapp:UI介面
配置
- 存儲相關配置
打開application.yml
,修改storage
相關配置。關閉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
文件夾從伺服器上拷貝出來,放在客戶端伺服器。打開agentconfigagent.config
作如下修改agent.service_name
修改成你應用名稱:blogcollector.backend_service
修改成OAP Server地址:192.168.136.129:11800
- IDEA配置(可選)
配置完成後啟動你的客戶端應用。
效果
環境搭建好了,下一步就是全面監控你的應用了,咱們下期有緣再見。
三維一體立體化監控
-
請關注個人公眾號:JAVA日知錄