簡介
SkyWalking 創建與2015年,提供分布式追蹤功能。從5.x開始,項目進化為一個完成功能的Application Performance Management系統。
他被用於追蹤、監控和診斷分布式系統,特別是使用微服務架構,雲原生或容積技術。提供以下主要功能:
- 分布式追蹤和上下文傳輸
- 應用、實例、服務性能指標分析
- 根源分析
- 應用拓撲分析
- 應用和服務依賴分析
- 慢服務檢測
- 性能優化
特性
多語言探針或類庫
Java自動探針,追蹤和監控程序時,不需要修改源碼。
社區提供的其他多語言探針
- .NET Core
- Node.js
多種后端存儲: ElasticSearch, H2
支持OpenTracing
Java自動探針支持和OpenTracing API協同工作
輕量級、完善功能的后端聚合和分析
現代化Web UI
日志集成
應用、實例和服務的告警
文檔
gitlib中文文檔地址:https://github.com/apache/incubator-skywalking/blob/v5.0.0-alpha/docs/README_ZH.md
官方網站:
http://skywalking.apache.org/
http://incubator.apache.org/projects/skywalking.html
github項目地址:
https://github.com/OpenSkywalking/skywalking-netcore
下載
http://skywalking.apache.org/downloads/
可以從上述地址下載,也可以直接到github上下載,選擇最新版本,運行環境:jdk7,jdk8,tomcat7,tomcat8(tomcat針對web項目),建議安裝使用過程,多看github上的doc文檔;
安裝
在使用skywalking之前必須先安裝后端存儲,ES(Elasticsearch)或者 H2,此處以 ES為例。
1、安裝es
新版本的skywalking使用ES作為存儲,所以先安裝es,注意6.X版本不行,安裝5.6.8:
1.1、官網下載es的zip安裝包,並解壓
windows:下載以后放到D盤 https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-8
linux:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz
tar zxvf elasticsearch-5.6.8.tar.gz
cd elasticsearch-5.6.8/
1.2、修改config/elasticsearch.yml文件:
linux命令:vim config/elasticsearch.yml
設置 cluster.name: CollectorDBCluster。此名稱需要和collector配置文件一致。
設置 node.name: CollectorDBCluster1,可以設置為任意名字,如Elasticsearch為集群模式,則每個節點名稱需要不同。
增加如下配置:
# ES監聽的ip地址
network.host: 172.16.105.93
thread_pool.bulk.queue_size: 1000
文件最下頭添加:
http.cors.enabled:true
http.cors.allow-origin:"*"
1.3、啟動
進入bin目錄 雙擊 elasticsearch.bat 啟動。
linux啟動:sh elasticsearch -d
1.4、測試驗證,在瀏覽器打開地址,如下圖所示即安裝啟動成功:
2、安裝skywalking
2.1、官網下載安裝包
windows下載:
http://mirrors.hust.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.zip
wget http://mirrors.tuna.tsinghua.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz
tar zxvf apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz
cd apache-skywalking-apm-incubating/
然后部署,注意skywalking會使用(8080, 10800, 11800, 12800)端口,因此先排除端口占用情況。
2.2、配置agent
在agent\config目錄中的agent.config內修改如下:
#對應elasticsearch中的clusterName,表示數據存儲的集合名稱
agent.application_code=CollectorDBCluster
collector.servers=172.16.105.93:10800 #對應collector配置中的 naming
2.3、collector安裝和配置
collector連接配置的5種類型方式
naming:agent使用HTTP協議連接collectors
agent_gRPC :agent使用gRPC協議連接collectors
remote :Collector使用gRPC協議連接collector
ui:使用HTTP協議連接collector,(大多數情況不需要修改)
agent_jetty:agent使用HTTP協議連接collectors(可選連接)
cluster:zookeeper地址
在config目錄中的application.yml內修改如下:localhost 全部換成 IP 地址


2.4、配置 UI
UI的配置項保存在webapp/webapp.yml中,只需修改 IP 即可。

server.port 默認監聽8080端口,修改該端口不能生效,則在skywalking-webapp.jar包application.yml中更改
collector.ribbon.listOfServers collector的訪問服務名稱(與config/application.yml中naming.jetty配置保持相同) 且若是多個 collector 服務名稱用','分隔
collector.path Collector 查詢uri地址. 默認是/graphql
collector.ribbon.ReadTimeout 查詢超時時間,默認是10秒
security.user.* 登錄用戶名/密碼. 默認是 admin/admin
2.5、啟動
使用 bin/startup.sh同時啟動collector和UI,若不使用1啟動,需要單獨啟動,參考2,3
單獨啟動collector,運行 bin/collectorService.sh
單獨啟動UI,運行 bin/webappService.sh
windows用戶為.bat文件。一切正常的話,訪問172.16.105.93:8080就能看到頁面了。
效果入圖

至此 elasticsearch 和 skywalking 安裝配置完成,親測好用。但是,我們的目的是自動探針功能,實現日志鏈路追蹤,怎么實現呢? 請繼續往下看。
應用
1、tomcat 的 bin 目錄的 catalina.sh 文件開頭添加配置:
linux
CATALINA_OPTS="$CATALINA_OPTS -Dskywalking.agent.application_code=tomcat_ydd_9239 -javaagent:/opt/lifl/skywalking-apm/agent/skywalking-agent.jar";export CATALINA_OPTS
windows 的eclipse tomcat啟動參數中添加:
-Dskywalking.agent.application_code=tomcat_ydd -javaagent:E:\software\apache-skywalking-apm-incubating-5.0.0-RC2\apache-skywalking-apm-incubating\agent\skywalking-agent.jar
如圖:

2、修改conf目錄下的server.xml
修改端口號,skywalking會使用(8080, 10800, 11800, 12800)端口,因此先排除端口占用情況。
然后啟動 tomcat 項目,啟動 並 登錄skywalking UI頁面。如圖:

