天天看點

分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)

簡介

  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 位址      
分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)
分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)

2.4、配置 UI

UI的配置項儲存在webapp/webapp.yml中,隻需修改 IP 即可。

分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)

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就能看到頁面了。

效果入圖

分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)

  至此 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

如圖:

分布式日志鍊路追蹤:skywalking + elasticsearch 部署實踐(5.x)

2、修改conf目錄下的server.xml

修改端口号,skywalking會使用(8080, 10800, 11800, 12800)端口,是以先排除端口占用情況。

繼續閱讀