鏈路追蹤之SkyWalking

1.什么是 SkyWalking

目前主要的一些 APM 工具有: Cat友存、Zipkin祷膳、Pinpoint屡立、SkyWalking直晨;Apache SkyWalking 是觀察性分析平臺(tái)和應(yīng)用性能管理系統(tǒng)。提供分布式追蹤膨俐、服務(wù)網(wǎng)格遙測(cè)分析勇皇、度量聚合和可視化一體化解決方案。

image.png

功能特性:

  • 多種監(jiān)控手段吟策,語言探針和服務(wù)網(wǎng)格(Service Mesh)
  • 多語言自動(dòng)探針儒士,Java,.NET Core 和 Node.JS
  • 輕量高效檩坚,不需要大數(shù)據(jù)
  • 模塊化着撩,UI、存儲(chǔ)匾委、集群管理多種機(jī)制可選
  • 支持告警
  • 優(yōu)秀的可視化方案

2. SkyWalking服務(wù)端安裝和配置

2.1. 基于 Docker 安裝 ElasticSearch

SkyWalking 存儲(chǔ)方案有多種拖叙,官方推薦的方案是 ElasticSearch。

2.1.1 docker-compose安裝ElasticSearch

創(chuàng)建docker-compose.yml赂乐,內(nèi)容如下:

version: '3.3'
services:
  elasticsearch:
    image: wutang/elasticsearch-shanghai-zone:6.3.2
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      cluster.name: elasticsearch

其中薯鳍,9200 端口號(hào)為 SkyWalking 配置 ElasticSearch 所需端口號(hào),cluster.name 為 SkyWalking 配置 ElasticSearch 集群的名稱

2.1.2 檢查是否安裝成功

瀏覽器訪問 http://ip:9200/ 挨措,瀏覽器返回如下信息即表示成功啟動(dòng)

image.png

2.2. 下載并啟動(dòng) SkyWalking

官方已經(jīng)為準(zhǔn)備好了編譯過的服務(wù)端版本挖滤,下載地址為 http://skywalking.apache.org/downloads/,這里下載的是6.x releases 版本

2.2.1 配置 SkyWalking

下載完成后解壓縮浅役,進(jìn)入 apache-skywalking-apm-incubating/config 目錄并修改 application.yml 配置文件

image
  • 注釋 H2 存儲(chǔ)方案
  • 啟用 ElasticSearch 存儲(chǔ)方案
  • 修改 ElasticSearch 服務(wù)器地址

2.2.2 啟動(dòng) SkyWalking

修改完配置后斩松,進(jìn)入 apache-skywalking-apm-incubating\bin 目錄,運(yùn)行 startup.bat 啟動(dòng)服務(wù)端觉既,通過瀏覽器訪問 http://ip:8080 出現(xiàn)如下界面即表示啟動(dòng)成功

image

默認(rèn)的用戶名密碼為:admin/admin惧盹,登錄成功后乳幸,效果如下圖

image

3. SkyWalking 客戶端配置

3.1. Java Agent 服務(wù)器探針

探針文件在 apache-skywalking-apm-incubating/agent 目錄下

image.png

3.2. IDEA部署探針

1、將 agent 整個(gè)目錄拷貝到項(xiàng)目中
2钧椰、修改項(xiàng)目的 VM 運(yùn)行參數(shù)粹断,點(diǎn)擊菜單欄中的 Run -> EditConfigurations...,修改參數(shù)如下:

-javaagent:D:\Workspace\Others\hello-spring-cloud-alibaba\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=nacos-provider
-Dskywalking.collector.backend_service=localhost:11800
image.png
  • -javaagent:用于指定探針路徑
  • -Dskywalking.agent.service_name:用于重寫 agent/config/agent.config 配置文件中的服務(wù)名
  • -Dskywalking.collector.backend_service:用于重寫 agent/config/agent.config 配置文件中的服務(wù)地址

3.3. Java方式部署探針

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar

3.4. 測(cè)試監(jiān)控

任意訪問寫好的接口嫡霞,再次訪問地址http://ip:8080 瓶埋,出現(xiàn)如下界面即表示 SkyWalking 鏈路追蹤配置成功。

image.png

4. 擴(kuò)展知識(shí)

Maven Assembly 插件诊沪,Assembly 插件目的是提供一個(gè)把工程依賴元素悬赏、模塊、網(wǎng)站文檔等其他文件存放到單個(gè)歸檔文件里娄徊。
此處以將 SkyWalking 探針打包為 tar.gz 為例闽颇,為后期持續(xù)集成時(shí)構(gòu)建 Docker 鏡像做好準(zhǔn)備

pom.xml 中增加插件配置

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <!-- 配置執(zhí)行器 -->
                <execution>
                    <id>make-assembly</id>
                    <!-- 綁定到 package 生命周期階段上 -->
                    <phase>package</phase>
                    <goals>
                        <!-- 只運(yùn)行一次 -->
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <finalName>skywalking</finalName>
                        <descriptors>
                            <!-- 配置描述文件路徑 -->
                            <descriptor>src/main/resources/assembly.xml</descriptor>
                        </descriptors>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

創(chuàng)建 src/main/resources/assembly.xml 配置文件

<assembly>
    <id>6.0.0-Beta</id>
    <formats>
        <!-- 打包的文件格式,支持 zip寄锐、tar.gz兵多、tar.bz2、jar橄仆、dir剩膘、war -->
        <format>tar.gz</format>
    </formats>
    <!-- tar.gz 壓縮包下是否生成和項(xiàng)目名相同的根目錄,有需要請(qǐng)?jiān)O(shè)置成 true -->
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <!-- 是否把本項(xiàng)目添加到依賴文件夾下盆顾,有需要請(qǐng)?jiān)O(shè)置成 true -->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <!-- 將 scope 為 runtime 的依賴包打包 -->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <!-- 設(shè)置需要打包的文件路徑 -->
            <directory>agent</directory>
            <!-- 打包后的輸出路徑 -->
            <outputDirectory></outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

打包

mvn clean package
mvn clean install
  • package:會(huì)在 target 目錄下創(chuàng)建名為 skywalking-6.0.0-Beta.tar.gz 的壓縮包
  • install:會(huì)在本地倉庫目錄下創(chuàng)建名為 hello-spring-cloud-external-skywalking-1.0.0-SNAPSHOT-6.0.0-Beta.tar.gz 的壓縮包
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怠褐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子您宪,更是在濱河造成了極大的恐慌奈懒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宪巨,死亡現(xiàn)場(chǎng)離奇詭異磷杏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捏卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門极祸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怠晴,你說我怎么就攤上這事遥金。” “怎么了蒜田?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵稿械,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我物邑,道長(zhǎng)溜哮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任色解,我火速辦了婚禮茂嗓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘科阎。我一直安慰自己述吸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布锣笨。 她就那樣靜靜地躺著蝌矛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪错英。 梳的紋絲不亂的頭發(fā)上入撒,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音椭岩,去河邊找鬼茅逮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛判哥,可吹牛的內(nèi)容都是我干的献雅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼塌计,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼挺身!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锌仅,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤章钾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后热芹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伍玖,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年剿吻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窍箍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丽旅,死狀恐怖椰棘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榄笙,我是刑警寧澤邪狞,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站茅撞,受9級(jí)特大地震影響帆卓,放射性物質(zhì)發(fā)生泄漏巨朦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一剑令、第九天 我趴在偏房一處隱蔽的房頂上張望糊啡。 院中可真熱鬧校仑,春花似錦嚷辅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梭依。三九已至,卻和暖如春典尾,著一層夾襖步出監(jiān)牢的瞬間役拴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工钾埂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扎狱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓勃教,卻偏偏與公主長(zhǎng)得像淤击,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子故源,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348