SkyWalking 安裝部署操作指引

授客發表於2024-11-18

環境

CentOS-7-x86_64-DVD-2009.iso

https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

apache-skywalking-apm-10.0.1.tar.gz

https://dlcdn.apache.org/skywalking/10.0.1/apache-skywalking-apm-10.0.1.tar.gz

jdk-11.0.23_linux-x64_bin.tar.gz

https://www.oracle.com/java/technologies/downloads/#java11

https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/11.0.23%2B7/9bd8d305c900ee4fa3e613b59e6f42de/jdk-11.0.23_linux-x64_bin.tar.gz

elasticsearch-7.10.0-linux-x86_64.tar.gz

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-10-0

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz

安裝部署操作

部署JAVA JDK

# mkdir -p /usr/local/java
# mv jdk-11.0.23_linux-x64_bin.tar.gz /usr/local/java
# cd /usr/local/java/
# tar -xvzf jdk-11.0.23_linux-x64_bin.tar.gz
# rm -f jdk-11.0.23_linux-x64_bin.tar.gz

編輯/etc/profile,新增環境變數配置

export JAVA_HOME=/usr/local/java/jdk1.8.0_65
export JRE_HOME=/usr/local/java/jdk1.8.0_65/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

讓配置立馬生效

# source /etc/profile

檢視是否安裝成功

# java -version
java version "11.0.23" 2024-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.23+7-LTS-222)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.23+7-LTS-222, mixed mode)
# javac -version
javac 11.0.23

部署Elasticsearch

參考文件 Elasticsearch 在Linux下的安裝部署和配置.md

部署skywalking

# mkdir -p /usr/local/skywalking
# mv apache-skywalking-apm-10.0.1.tar.gz /usr/local/skywalking/
# cd /usr/local/skywalking/
# tar -xvzf apache-skywalking-apm-10.0.1.tar.gz
# rm -f apache-skywalking-apm-10.0.1.tar.gz
# cd apache-skywalking-apm-bin
# vi config/application.yml 

修改 config/application.yml中儲存為ES,並設定ES主機地址和埠。

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.88.135:9200}

啟動

# cd bin
# sh oapServiceInit.sh 
# sh startup.sh

說明:執行 bin/startup.sh(.bat) 會啟動後端和UI:

  • 後端儲存預設採用H2

  • 後端為gRPC介面監聽 0.0.0.0/11800,為HTTP REST API監聽 0.0.0.0/12800/

    在Java、DotNetCore、Node.js和Istio代理/探針,應該將gRPC服務地址設定為 ip/host:11800ip/host應為後端所在的伺服器。

  • UI監聽8080埠並請求127.0.0.1/12800執行GraphQL查詢。

開放埠

# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
# firewall-cmd --reload
success

訪問UI介面

skywalking啟動模式說明

預設模式

預設模式根據需要執行初始化任務,開始監聽並提供服務。

執行/bin/oapService.sh(.bat)以按預設模式啟動,此外,也可以使用startup.sh(.bat)啟動。

初始化模式

在此模式下,OAP伺服器啟動進行初始化,然後退出。可以使用此模式初始化儲存(如ElasticSearch索引、MySQL和TiDB表)以及資料。

執行/bin/oapServiceInit.sh(.bat)以按此模式啟動。

無初始化模式

在此模式下,OAP伺服器在不進行初始化的情況下啟動。取而代之,它會監視ElasticSearch索引、MySQL、TiDB和其他儲存表,開始監聽並提供服務。換句話說,OAP伺服器將預期有另一個OAP伺服器執行初始化

執行/bin/oapServiceNoInit.sh(.bat)以按此模式啟動。

參考連結

https://skywalking.apache.org/docs/main/v10.0.1/en/setup/backend/backend-start-up-mode/#start-up-mode

Agent下載和安裝

連結:https://skywalking.apache.org/downloads/#Agents

application.yml配置檔案簡介

In application.yml, there are three levels.SkyWalking後端啟動行為由config/application.yml驅動。此設定檔案背後的核心概念是SkyWalking收集器基於純模組化設計。終端使用者可以根據自己的獨特要求切換或組裝收集器功能。
application.yml中,有三個級別。

  1. Level 1: 模組名稱。意味著此模組在執行模式下處於活動狀態。
  2. Level 2: 提供選項列表和選擇器(selector)。此處列出了可用的提供者,並附有一個選擇器,以指示哪個提供者將實際生效。如果只列出了一個提供者,則selector是可選的,可以省略
  3. Level 3. 所選提供者的配置。

示例:

storage:
  selector: mysql # mysql儲存將被啟用,而h2儲存將不起作用
  h2:
    properties:
      jdbcUrl: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=FALSE}
      dataSource.user: ${SW_STORAGE_H2_USER:sa}
    metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest?allowMultiQueries=true"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
  default:
      # ...略
  # other configurations
  1. storage 為模組。
  2. selector 從下面列出的所有提供者中選擇一個。未選中的提供者不會生效,就像被刪除一樣.
  3. default 是核心模組的預設實現者。
  4. driver, url, … metadataQueryMaxSize 都是實現者的設定項.

同時,有兩種型別的模組:必備模組和可選模組。必備模組提供了後端的骨架。儘管它們的模組化設計支援可插拔性,但刪除這些模組沒有任何意義。對於可選模組,其中一些模組有一個名為none的提供者實現,這意味著它只提供一個沒有實際邏輯的shell,通常是遙測。將selector設定為-,意味著整個模組將在執行時被排除。建議不要更改這些模組的API,除非非常瞭解SkyWalking專案及其程式碼。

此處列出了必備模組:

  1. Core 提供所有資料分析和流排程的基本和主要框架
  2. Cluster 管理叢集中的多個後端例項,這可以提供高吞吐量的處理功能。請參見叢集管理瞭解更多詳情。
  3. Storage 持久化分析結果。檢視儲存選取 獲取更多詳情
  4. Query 提供查詢介面給UI
  5. ReceiverFetcher 將服務暴露給代理和探針,或從通道讀取遙測資料

參考連結:https://skywalking.apache.org/docs/main/v10.0.1/en/setup/backend/backend-setup/#applicationyml

參考連結

https://skywalking.apache.org/docs/main/v10.0.1/en/setup/backend/backend-setup

相關文章