【SkyWalking】Java服務從零接入全鏈路追蹤解決方案
theme: v-green
我正在參加「掘金·啟航計劃」
SkyWalking基本結構
-
探針
-
基於不同的來源可能是不一樣的, 但作用都是收集數據, 將數據格式化為 SkyWalking 適用的格式.
- 基於語言的原生代理
- 服務網格探針
-
第三放打點類庫
-
平台後端
-
支持數據聚合, 數據分析以及驅動數據流從探針到用户界面的流程。
- 分析包括 Skywalking 原生追蹤和性能指標以及第三方來源,包括 Istio 及 Envoy telemetry , Zipkin 追蹤格式化等。
-
甚至可以使用 Observability Analysis Language 對原生度量指標 和 用於擴展度量的計量系統 自定義聚合分析。
-
存儲
-
通過開放的插件化的接口存放 SkyWalking 數據.
-
你可以選擇一個既有的存儲系統, 如 ElasticSearch, H2 或 MySQL 集羣(Sharding-Sphere 管理),也可以選擇自己實現一個存儲系統. 當然, 我們非常歡迎你貢獻新的存儲系統實現。
-
UI
-
一個基於接口高度定製化的Web系統,用户可以可視化查看和管理 SkyWalking 數據。
SkyWalking代碼結構
-
agent
- skwwalking-agent.jar 代理服務jar包
- config: 代理服務啟動時使⽤的配置⽂件
- plugins: 包含多個插件,代理服務啟動時會加載該⽬錄下的所有插件(實際上時各種jar包) optional-plugins:可選插件,當需要⽀持某些功能時,⽐如 Spring Cloud Gateway,則需要把對 應的jar包拷⻉到plugins⽬錄下;
-
webapp: UI前端(web監控⻚⾯)的jar包配置⽂件
- webapp.yml : 默認配置啟動UI時訪問端⼝ 8080,需要更改
- listOfServers表示接收前端請求端⼝12800
-
oap-libs:
- 後台應⽤的jar包,以及它的依賴jar包,⾥⾯有⼀個server-starter-*.jar就時對應的啟動程序
-
config:啟動後台應⽤程序的配置⽂件
- application.yml:可配置存儲數據庫類型、⾼可⽤註冊服務等 ,需要修改存儲方式改為ES存儲
-
bin: 各種啟動腳本,⼀般使⽤腳本startup.*來啟動web⻚⾯和對應的後台應⽤;
- oapServer.*: 默認使⽤的後台程序的啟動腳本;(使⽤的默認模式啟動,還⽀持)
- oapServerInit.*: 使⽤init模式啟動,在此模式下,OAP服務器啟動以執⾏初始化⼯作,然後退出
- oapServerNoInit.*:使⽤no init模式啟動,在此模式下,OAP服務器不進⾏初始化
- webappService.*: UI前端的啟動腳本
- startup.:組合腳本,同時啟動oapServer. ,webappService.*腳本
SkyWalking搭建8.6.0-es版本
- 首先需要修改啟動端口
vi apache-skywalking-apm-bin-es7/webapp/webapp.yml,修改server.port(原8080)
- 修改存儲類型
vi apache-skywalking-apm-bin-es7/config/application.yml
- sh apache-skywalking-apm-bin-es7/bin/startup.sh 啟動
- skywalking服務日誌存儲到apache-skywalking-apm-bin-es7/logs中
- 啟動成功後會啟動兩個服務,⼀個是skywalking-oap-server,⼀個是skywalking-web-ui
- skywalking-oap-server服務啟動後會暴露11800 和 12800 兩個端⼝,分別為收集監控數據的端⼝11800和接受前端請求的端⼝12800
Java服務接入SkyWalking
-
使用Java agent方式監控服務,編寫sheel啟動腳本,直接運行改腳本即可
export SW_AGENT_NAME=sky_service export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #skywalking Collector地址 export SW_AGENT_SPAN_LIMIT=2000 #配置鏈路最大Span數量,默認為300 export JAVA_AGENT=-javaagent:../apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar #agent包地址 nohup java $JAVA_AGENT -jar *.jar &
-
控制枱打印tracid,需要更改日誌格式,配置logback-spring.xml文件 ````
</layout>
</encoder>
````