基於SkyWalking的分散式跟蹤系統 – 環境搭建

  • 2019 年 10 月 28 日
  • 筆記

前面的幾篇文章我們聊了基於Metrics的監控Prometheus,利用Prometheus和Grafana可以全方位監控你的伺服器及應用的性能指標,在出現異常時利用Alertmanager告警及時通知運維處理。今天我們聊聊基於Trace的分散式跟蹤系統 – SkyWalking

初識SkyWalking

應用場景

隨著微服務架構的流行,一些微服務架構下的問題也會越來越突出,比如一個請求會涉及多個服務,而服務本身可能也會依賴其他服務,整個請求路徑就構成了一個網狀的調用鏈,而在整個調用鏈中一旦某個節點發生異常,整個調用鏈的穩定性就會受到影響,如果沒有及時處理很有可能會造成整個系統崩潰。
file
面對以上情況,我們就需要一些可以幫助理解系統行為、用於分析性能問題的工具,以便發生故障的時候,能夠快速定位和解決問題。

架構

file

SkyWalking 邏輯上分為四部分: 探針, 平台後端, 存儲和用戶介面。

  • 探針
    主要負責從客戶端收集數據,將數據轉換成SkyWalking適用的格式,探針對客戶端程式沒有任何程式碼侵入,使用起來簡單方便,使用如下命令即可完成對應用的監控
    java -javaagent:/path/skywalking-agent.jar -jar youApp.jar

  • 平台後端(OAP Server)
    主要用於數據聚合, 數據分析以及驅動數據流從探針到用戶介面的流程。通過 gRPC/Http 收集客戶端Agent的採集資訊 ,Http默認埠 12800,gRPC默認埠 11800。

  • 存儲
    SkyWalking支援很多存儲:H2(用作演示環境)、MySQL(當數據量大時檢索性能下降很厲害)、ES(主流生產級別的存儲)

  • 用戶介面
    炫酷的介面,調用請求監控一目了然。

安裝配置

安裝

直接從官網下載最新的安裝包,並上傳到伺服器解壓。解壓後的文件如下:
file

(需要提前準備好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修改成你應用名稱:blog
    • collector.backend_service修改成OAP Server地址:192.168.136.129:11800
  • IDEA配置(可選)
    file

配置完成後啟動你的客戶端應用。

效果

file

file

file

環境搭建好了,下一步就是全面監控你的應用了,咱們下期有緣再見。


三維一體立體化監控

avatar