天天看點

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

1. 概述

1.1 概念

SkyWalking 是什麼?

FROM http://skywalking.apache.org/

分布式系統的應用程式性能監視工具,專為微服務、雲原生架構和基于容器(Docker、K8s、Mesos)架構而設計。

提供分布式追蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案。

1.2 功能清單

SkyWalking 有哪些功能?

FROM http://skywalking.apache.org/
  • 多種監控手段。可以通過語言探針和 service mesh 獲得監控是資料。
  • 多個語言自動探針。包括 Java,.NET Core 和 Node.JS。
  • 輕量高效。無需大資料平台,和大量的伺服器資源。
  • 子產品化。UI、存儲、叢集管理都有多種機制可選。
  • 支援告警。
  • 優秀的可視化解決方案。

1.3 整體架構

SkyWalking 整體架構如何?

FROM http://skywalking.apache.org/
SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

整個架構,分成上、下、左、右四部分:

考慮到讓描述更簡單,我們舍棄掉 Metric 名額相關,而着重在 Tracing 鍊路相關功能。
  • 上部分 Agent :負責從應用中,收集鍊路資訊,發送給 SkyWalking OAP 伺服器。目前支援 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 資料資訊。而我們目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 資料,傳遞給伺服器。
  • 下部分 SkyWalking OAP :負責接收 Agent 發送的 Tracing 資料資訊,然後進行分析(Analysis Core) ,存儲到外部存儲器( Storage ),最終提供查詢( Query )功能。
  • 右部分 Storage :Tracing 資料存儲。目前支援 ES、MySQL、Sharding Sphere、TiDB、H2 多種存儲器。而我們目前采用的是 ES ,主要考慮是 SkyWalking 開發團隊自己的生産環境采用 ES 為主。
  • 左部分 SkyWalking UI :負責提供控台,檢視鍊路等等。

1.4 官方文檔

在 https://github.com/apache/skywalking/tree/master/docs 位址下,提供了 SkyWalking 的英文文檔。

考慮到大多數胖友的英語水準和艿艿不相伯仲,再加上胖友一開始對 SkyWalking 比較陌生,是以比較推薦先閱讀 https://github.com/SkyAPM/document-cn-translation-of-skywalking 位址,提供了 SkyWalking 的中文文檔。

考慮到胖友使用 SkyWalking 的目的,是實作分布式鍊路追蹤的功能,是以最好去了解下相關的知識。這裡推薦閱讀兩篇文章:

  • 《OpenTracing 官方标準 —— 中文版》
  • Google 論文 《Dapper,大規模分布式系統的跟蹤系統》

2. 搭建 SkyWalking 單機環境

考慮到讓胖友更快的入門,我們來搭建一個 SkyWalking 單機環境,步驟如下:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例
  • 第一步,搭建一個 Elasticsearch 服務。
  • 第二步,下載下傳 SkyWalking 軟體包。
  • 第三步,搭建一個 SkyWalking OAP 服務。
  • 第四步,啟動一個 Spring Boot 應用,并配置 SkyWalking Agent。
  • 第五步,搭建一個 SkyWalking UI 服務。

僅僅五步,按照艿艿标題黨的性格,應該給本文取個《10 分鐘快速搭建 SkyWalking 服務》标題才對,哈哈哈。

2.1 Elasticsearch 搭建

FROM https://www.elastic.co/cn/products/elasticsearch

Elasticsearch 是一個分布式、RESTful 風格的搜尋和資料分析引擎,能夠解決不斷湧現出的各種用例。 作為 Elastic Stack 的核心,它集中存儲您的資料,幫助您發現意料之中以及意料之外的情況。

參考《Elasticsearch 極簡入門》的「1. 單機部署」小節,搭建一個 Elasticsearch 單機服務。

不過要注意,本文使用的是 Elasticsearch 

7.5.1

 版本。因為 SkyWalking 

6.6.0

 版本,增加了對 Elasticsearch 7.X 版本的支援。當然,如果胖友使用 Elasticsearch 6.X 版本也是可以的。

2.2 下載下傳 SkyWalking 軟體包

對于 SkyWalking 的軟體包,有兩種方式擷取:

  • 手動編譯
  • 官方包

一般情況下,我們建議使用官方包。手動編譯,更多是嘗鮮或者等着急修複的 BUG 的版本。

2.2.1 官方包

在 http://skywalking.apache.org/downloads/ 下,我們下載下傳作業系統對應的釋出版。

這裡,我們選擇 Binary Distribution for ElasticSearch 7 (Linux) 版本,因為艿艿是 Mac 環境,再加上想使用 Elasticsearch 7.X 版本作為存儲。如果胖友想用 Elasticsearch 6.X 版本作為存儲,記得下載下傳 Binary Distribution (Linux) 版本。

① 下載下傳:

# 建立目錄
$ mkdir -p /Users/yunai/skywalking
$ cd /Users/yunai/skywalking

# 下載下傳
$ wget http://mirror.bit.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz
           

② 解壓: 

# 解壓
$ tar -zxvf apache-skywalking-apm-es7-6.6.0.tar.gz
$ cd  apache-skywalking-apm-bin-es7

$ ls -ls
 4 drwxr-xr-x 8 root root  4096 Sep  9 15:09 agent # SkyWalking Agent
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 bin # 執行腳本
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 config # SkyWalking OAP Server 配置檔案
32 -rwxr-xr-x 1 root root 28903 Sep  9 14:32 LICENSE
 4 drwxr-xr-x 3 root root  4096 Sep  9 15:44 licenses
32 -rwxr-xr-x 1 root root 31850 Sep  9 14:32 NOTICE
16 drwxr-xr-x 2 root root 16384 Sep  9 15:22 oap-libs # SkyWalking OAP Server
 4 -rw-r--r-- 1 root root  1978 Sep  9 14:32 README.txt
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 webapp # SkyWalking UI
           

2.2.2 手動編譯

友情提示:如果胖友沒有編譯 SkyWalking 源碼的訴求,可以跳過本小節。

參考 How to build project 文章。

需要前置安裝如下:

  • GIT
  • JDK 8+
  • Maven

① 克隆代碼:

$ git clone https://github.com/apache/skywalking.git
           

② 初始化子子產品: 

$ cd skywalking
$ git submodule init
$ git submodule update
           

③ 編譯 

$ ./mvnw clean package -DskipTests
           

④ 檢視編譯結果 

$ cd apm-dist # 編譯結果目錄
$ cd target
$ tar -zxvf apache-skywalking-apm-bin.tar.gz # 解壓 Linux 包
$ cd apache-skywalking-apm-bin
$ ls -ls
 4 drwxr-xr-x 8 root root  4096 Sep  9 15:09 agent # SkyWalking Agent
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 bin # 執行腳本
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 config # SkyWalking OAP Server 配置檔案
32 -rwxr-xr-x 1 root root 28903 Sep  9 14:32 LICENSE
 4 drwxr-xr-x 3 root root  4096 Sep  9 15:44 licenses
32 -rwxr-xr-x 1 root root 31850 Sep  9 14:32 NOTICE
16 drwxr-xr-x 2 root root 16384 Sep  9 15:22 oap-libs # SkyWalking OAP Server
 4 -rw-r--r-- 1 root root  1978 Sep  9 14:32 README.txt
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 webapp # SkyWalking UI
           

2.3 SkyWalking OAP 搭建

① 修改 OAP 配置檔案

友情提示:如果配置檔案,适合 SkyWalking 6.X 版本。
$ vi config/application.yml

storage:
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"elasticsearch"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
#    trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
#    trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
    # Those data TTL settings will override the same settings in core module.
    recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
    otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
    monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
    # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
    resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
    segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
#  h2:
#    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
#    url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
#    user: ${SW_STORAGE_H2_USER:sa}
#    metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
           
  • storage.elasticsearch7

     配置項,設定使用 Elasticsearch 7.X 版本作為存儲器。
    • 這裡,我們打開注釋,并記得通過 

      nameSpace

       設定 Elasticsearch 叢集名。
  • storage.elasticsearch

     配置項,設定使用 Elasticsearch 6.X 版本作為存儲器。
    • 這裡,我們無需做任何改動。
    • 如果胖友使用 Elasticsearch 6.X 版本作為存儲器,記得設定這個配置項,而不是 

      storage.elasticsearch7

       配置項。
  • storage.h2

     配置項,設定使用 H2 作為存儲器。
    • 這裡,我們需要手動注釋掉,因為 H2 是預設配置的存儲器。
友情提示:如果配置檔案,适合 SkyWalking 7.X 版本。
SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例
  • 重點修改 

    storage

     配置項,通過 

    storage.selector

     配置項來設定具體使用的存儲器。
  • storage.elasticsearch

     配置項,設定使用 Elasticsearch 6.X 版本作為存儲器。胖友可以主要修改 

    nameSpace

    clusterNodes

     兩個配置項即可,設定使用的 Elasticsearch 的叢集和命名空間。
  • storage.elasticsearch7

     配置項,設定使用 Elasticsearch 7.X 版本作為存儲器。
  • 還有 MySQL、H2、InfluxDB 等等存儲器的配置可以選擇,胖友自己根據需要去選擇哈~

② 啟動 SkyWalking OAP 服務

$ bin/oapService.sh

SkyWalking OAP started successfully!
           

是否真正啟動成功,胖友打開 

logs/skywalking-oap-server.log

 日志檔案,檢視是否有錯誤日志。首次啟動時,因為 SkyWalking OAP 會建立 Elasticsearch 的索引,是以會“瘋狂”的列印日志。最終,我們看到如下日志,基本可以代表 SkyWalking OAP 服務啟動成功:

友情提示:因為首次啟動會建立 Elasticsearch 索引,是以可能會比較慢。
2020-01-02 18:22:53,635 - org.eclipse.jetty.server.Server - 444 [main] INFO  [] - Started @35249ms
           

2.4 SkyWalking UI 搭建

① 啟動 SkyWalking UI 服務

$ bin/webappService.sh

SkyWalking Web Application started successfully!
           

是否真正啟動成功,胖友打開 

logs/logs/webapp.log

 日志檔案,檢視是否有錯誤日志。最終,我們看到如下日志,基本可以代表 SkyWalking UI 服務啟動成功: 

2020-01-02 18:27:02.824  INFO 48250 --- [main] o.a.s.apm.webapp.ApplicationStartUp      : Started ApplicationStartUp in 7.774 seconds (JVM running for 8.316)
           

如果想要修改 SkyWalking UI 服務的參數,可以編輯 

webapp/webapp.yml

 配置檔案。例如說:

  • server.port

     :SkyWalking UI 服務端口。
  • collector.ribbon.listOfServers

     :SkyWalking OAP 服務位址數組。因為 SkyWalking UI 界面的資料,是通過請求 SkyWalking OAP 服務來獲得的。

② 通路 UI 界面:

浏覽器打開 

http://127.0.0.1:8080

 。界面如下圖:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

2.5 SkyWalking Agent

大多數情況下,我們在啟動項目的 Shell 腳本上,通過 

-javaagent

 參數進行配置 SkyWalking Agent 。我們在 「2.3.1 Shell」 小節來看。

考慮到偶爾我們需要在 IDE 中,也希望使用 SkyWalking Agent ,是以我們在 「2.3.2 IDEA」 小節來看。

2.3.1 Shell

① Agent 軟體包

我們需要将 

apache-skywalking-apm-bin/agent

 目錄,拷貝到 Java 應用所在的伺服器上。這樣,Java 應用才可以配置使用該 SkyWalking Agent。我們來看看 Agent 目錄下有哪些:

$ ls -ls

total 35176
    0 [email protected]  7 yunai  staff       224 Dec 24 14:20 activations
    0 [email protected]  4 yunai  staff       128 Dec 24 14:21 bootstrap-plugins
    0 [email protected]  3 yunai  staff        96 Dec 24 14:12 config # SkyWalking Agent 配置
    0 [email protected]  3 yunai  staff        96 Jan  2 19:29 logs # SkyWalking Agent 日志
    0 [email protected] 13 yunai  staff       416 Dec 24 14:22 optional-plugins # 可選插件
    0 [email protected] 68 yunai  staff      2176 Dec 24 14:20 plugins # 插件
35176 [email protected]  1 yunai  staff  18006420 Dec 24 14:12 skywalking-agent.jar # SkyWalking Agent
           
  • 關于 SkyWalking Agent 提供的插件清單,可以看看《SkyWalking 文檔 —— 插件支援清單》。

因為艿艿是在本機測試,是以無需拷貝,SkyWalking Agent 目錄是 

/Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/

考慮到友善胖友,艿艿這裡提供了一個最簡的 Spring Boot 應用 lab-39-demo-2.2.2.RELEASE.jar。對應 Github 倉庫是 lab-39-demo。

② 配置 Java 啟動腳本

# SkyWalking Agent 配置
export SW_AGENT_NAME=demo-application # 配置 Agent 名字。一般來說,我們直接使用 Spring Boot 項目的 `spring.application.name` 。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 # 配置 Collector 位址。
export SW_AGENT_SPAN_LIMIT=2000 # 配置鍊路的最大 Span 數量。一般情況下,不需要配置,預設為 300 。主要考慮,有些新上 SkyWalking Agent 的項目,代碼可能比較糟糕。
export JAVA_AGENT=-javaagent:/Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar # SkyWalking Agent jar 位址。

# Jar 啟動
java -jar $JAVA_AGENT -jar lab-39-demo-2.2.2.RELEASE.jar
           
  • 通過環境變量,進行配置。
  • 更多的變量,可以在 

    /work/programs/skywalking/apache-skywalking-apm-bin/agent/config/agent.config

     檢視。要注意,可能有些變量是被注釋掉的,例如說 

    SW_AGENT_SPAN_LIMIT

     對應的 

    agent.span_limit_per_segment

     。

③ 執行腳本:

直接執行上述的 Shell 腳本,啟動 Java 項目。在啟動日志中,我們可以看到 SkyWalking Agent 被加載的日志。日志示例如下:

DEBUG 2020-01-02 19:29:29:400 main AgentPackagePath : The beacon class location is jar:file:/Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class.
INFO 2020-01-02 19:29:29:402 main SnifferConfigInitializer : Config file found in /Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/config/agent.config.
           

同時,也可以在 

/Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/agent/logs/skywalking-api.log

 檢視對應的 SkyWalking Agent 日志。日志示例如下: 

DEBUG 2020-01-02 19:37:22:539 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
           
  • 這裡,我們看到 

    status:CONNECTED

     ,表示 SkyWalking Agent 連接配接 SkyWalking OAP 服務成功。

④ 簡單測試

完事,可以去 SkyWalking UI 檢視是否鍊路收內建功。

1、首先,使用浏覽器,通路下 http://127.0.0.1:8079/demo/echo 位址,請求下 Spring Boot 應用提供的 API。因為,我們要追蹤下該鍊路。

2、然後,繼續使用浏覽器,打開 http://127.0.0.1:8080/ 位址,進入 SkyWalking UI 界面。如下圖所示:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

這裡,我們會看到 SkyWalking 中非常重要的三個概念:

  • 服務(Service) :表示對請求提供相同行為的一系列或一組工作負載。在使用 Agent 或 SDK 的時候,你可以定義服務的名字。如果不定義的話,SkyWalking 将會使用你在平台(例如說 Istio)上定義的名字。
    這裡,我們可以看到 Spring Boot 應用的服務為 

    "demo-application"

    ,就是我們在環境變量 

    SW_AGENT_NAME

     中所定義的。
  • 服務執行個體(Service Instance) :上述的一組工作負載中的每一個工作負載稱為一個執行個體。就像 Kubernetes 中的 pods 一樣, 服務執行個體未必就是作業系統上的一個程序。但當你在使用 Agent 的時候, 一個服務執行個體實際就是作業系統上的一個真實程序。
    這裡,我們可以看到 Spring Boot 應用的服務為 

    {agent_name}-pid:{pid}@{hostname}

    ,由 Agent 自動生成。關于它,我們在「5.1 hostname」小節中,有進一步的講解,胖友可以瞅瞅。
  • 端點(Endpoint) :對于特定服務所接收的請求路徑, 如 HTTP 的 URI 路徑和 gRPC 服務的類名 + 方法簽名。
    這裡,我們可以看到 Spring Boot 應用的一個端點,為 API 接口 

    /demo/echo

3、之後,點選「拓撲圖」菜單,進入檢視拓撲圖的界面。如下圖所示:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

4、再之後,點選「追蹤」菜單,進入檢視鍊路資料的界面。如下圖所示:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

2.3.2 IDEA

我們統一使用 IDEA 作為開發 IDE ,是以忽略 Eclipse 的配置方式。

具體參考下圖,比較簡單:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

3. 搭建 SkyWalking 叢集環境

在生産環境下,我們一般推薦搭建 SkyWalking 叢集環境。😈 當然,如果公司比較摳門,也可以在生産環境下使用 SkyWalking 單機環境,畢竟 SkyWalking 挂了之後,不影響業務的正常運作。

搭建一個 SkyWalking 叢集環境,步驟如下:

  • 第一步,搭建一個 Elasticsearch 服務的叢集。
  • 第二步,搭建一個注冊中心的叢集。目前 SkyWalking 支援 Zookeeper、Kubernetes、Consul、Nacos 作為注冊中心。
  • 第三步,搭建一個 SkyWalking OAP 服務的叢集,同時參考《SkyWalking 文檔 —— 叢集管理》,将 SkyWalking OAP 服務注冊到注冊中心上。
  • 第四步,啟動一個 Spring Boot 應用,并配置 SkyWalking Agent。另外,在設定 SkyWaling Agent 的 

    SW_AGENT_COLLECTOR_BACKEND_SERVICES

     位址時,需要設定多個 SkyWalking OAP 服務的位址數組。
  • 第五步,搭建一個 SkyWalking UI 服務的叢集,同時使用 Nginx 進行負載均衡。另外,在設定 SkyWalking UI 的 

    collector.ribbon.listOfServers

     位址時,也需要設定多個 SkyWalking OAP 服務的位址數組。

😈 具體的搭建過程,并不複雜,胖友自己去嘗試下。

4. 告警

在 SkyWaling 中,已經提供了告警功能,具體可見《SkyWalking 文檔 —— 告警》。

預設情況下,SkyWalking 已經内置告警規則。同時,我們可以參考告警規則,進行自定義。

在滿足 SkyWalking 告警規則的觸發規則時,我們在 SkyWaling UI 的告警界面,可以看到告警内容。如下圖所示:

SkyWalking 極簡入門1. 概述2. 搭建 SkyWalking 單機環境3. 搭建 SkyWalking 叢集環境4. 告警5. 注意事項6. Spring Boot 使用示例7. Spring Cloud 使用示例

同時,我們自定義 Webhook ,對接 SkyWalking 的告警請求。而具體的郵箱、釘釘等告警方式,需要自己進行開發。至于自定義 WebHook 如何實作,可以參考:

  • Java 語言:
    • 《基于 SkyWalking 的分布式跟蹤系統 - 異常告警》
  • Go 語言:
    • dingding-notify-for-skywalking
    • infra-skywalking-webhook

5. 注意事項

5.1 hostname 配置

在 SkyWalking 中,每個被監控的執行個體的名字,會包含 hostname 。格式為:

{agent_name}-pid:{pid}@{hostname}

 ,例如說:

"scrm-scheduler-pid:[email protected]"

 。

因為有些伺服器未正确設定 

hostname

 ,是以我們一定要去修改,不然都不知道是哪個伺服器上的執行個體(😈 鬼知道 

"iZbp1e2xlyvr7fh67qi59oZ"

 一串是哪個伺服器啊)。

修改方式如下:

1、修改 

/etc/hosts

 的 

hostname

 :

127.0.0.1 localhost
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.80.62.151 pre-app-01 # 就是這個,其中 10.80.62.151 是本機内網 IP ,pre-app-01 是 hostname 。
           

2、修改本機 

hostname

 :

參考 《CentOS7 修改主機名(hostname)》

$ hostname pre-app-01 # 其中 pre-app-01 就是你希望的 hostname 。

$ hostnamectl set-hostname pre-app-01 # 其中 pre-app-01 就是你希望的 hostname 。
           

6. Spring Boot 使用示例

在 《Spring Boot 鍊路追蹤 SkyWalking 入門》 中,我們來詳細學習如何在 Spring Boot 中,整合并使用 SkyWalking 收集鍊路資料。😈 相比「2.5 SkyWaling Agent」來說,我們會提供更加豐富的示例喲。

7. Spring Cloud 使用示例

在 《Spring Cloud 鍊路追蹤 SkyWalking 入門》 中,我們來詳細學習如何在 Spring Cloud 中,整合并使用 SkyWalking 收集鍊路資料。😈 相比「2.5 SkyWaling Agent」來說,我們會提供更加豐富的示例喲。

繼續閱讀