skywalking 架構(gòu)部署

概述

Skywalking是一個(gè)可觀測(cè)性分析平臺(tái)(Observability Analysis Platform簡(jiǎn)稱OAP)和應(yīng)用性能管理系統(tǒng)(Application Performance Management簡(jiǎn)稱APM)。
提供分布式鏈路追蹤、服務(wù)網(wǎng)格(Service Mesh)遙測(cè)分析、度量(Metric)聚合和可視化一體化解決方案。

架構(gòu)

架構(gòu)

Skywalking提供Tracing和Metrics數(shù)據(jù)的獲取和聚合:

  • Metric的特點(diǎn)是可累加的:他們具有原子性,每個(gè)都是一個(gè)邏輯計(jì)量單元,或者一個(gè)時(shí)間
    段內(nèi)的柱狀圖。 例如:隊(duì)列的當(dāng)前深度可以被定義為一個(gè)計(jì)量單元,在寫(xiě)入或讀取時(shí)被更新統(tǒng)計(jì); 輸入HTTP請(qǐng)求的數(shù)量可以被定義為一個(gè)計(jì)數(shù)器,用于簡(jiǎn)單累加; 請(qǐng)求的執(zhí)行時(shí)間可以被定
    義為一個(gè)柱狀圖,在指定時(shí)間片上更新和統(tǒng)計(jì)匯總。
  • Tracing的最大特點(diǎn)就是在單次請(qǐng)求的范圍內(nèi),處理信息。 任何的數(shù)據(jù)、元數(shù)據(jù)信息都被綁定到系統(tǒng)中的單個(gè)事務(wù)上。 例如:一次調(diào)用遠(yuǎn)程服務(wù)的RPC執(zhí)行過(guò)程;一次實(shí)際的SQL查詢語(yǔ)句;一次HTTP請(qǐng)求的業(yè)務(wù)性ID。
  • 總結(jié),Metric主要用來(lái)進(jìn)行數(shù)據(jù)的統(tǒng)計(jì),比如HTTP請(qǐng)求數(shù)的計(jì)算。Tracing主要包含了某一次請(qǐng)求的鏈路數(shù)據(jù)。

部署

接下來(lái)我們?cè)谔摂M機(jī)CentOS中搭建Skywalking的可觀測(cè)性分析平臺(tái)OAP環(huán)境。Skywalking默認(rèn)使用H2內(nèi)存中進(jìn)行數(shù)據(jù)的存儲(chǔ),我們可以替換存儲(chǔ)源為ElasticSearch保證其查詢的高效及可用性。
具體的安裝步驟可以在Skywalking的官方github上找到:

https://github.com/apache/skywalking/blob/master/docs/en/setup/README.md

1、創(chuàng)建目錄

mkdir /usr/local/skywalking

建議將虛擬機(jī)內(nèi)存設(shè)置為8G并且將CPU設(shè)置成4核,防止資源不足。

2、將資源目錄中的elasticsearch和skywalking安裝包上傳到虛擬機(jī)/usr/local/skywalking目錄下。

  • elasticsearch-6.4.0.tar.gz ---elasticsearch 6.4的安裝包,Skywalking對(duì)es版本號(hào)有一定要求,最好使用6.3.2以上版本,如果是7.x版本需要額外進(jìn)行配置。
  • apache-skywalking-apm-6.5.0.tar.gz ---Skywalking最新的安裝包。

3、首先安裝elasticsearch,將壓縮包解壓。

修改Linux系統(tǒng)的限制配置,將文件創(chuàng)建數(shù)修改為65536個(gè)。

vi /etc/security/limits.conf 
#新增如下內(nèi)容在limits.conf文件中 
es soft nofile 65536 
es hard nofile 65536 
es soft nproc 4096 
es hard nproc 4096

vi /etc/sysctl.conf 
#新增如下內(nèi)容在sysctl.conf文件中,當(dāng)前用戶擁有的內(nèi)存權(quán)限大小 vm.max_map_count=262144 
#讓系統(tǒng)控制權(quán)限配置生效 sysctl -p

建一個(gè)用戶, 用于ElasticSearch啟動(dòng)。

ES在5.x版本之后,強(qiáng)制要求在linux中不能使用root用戶啟動(dòng)ES進(jìn)程。所以必須使用其他用戶啟動(dòng)ES進(jìn)程才可以。

#創(chuàng)建用戶 useradd es 
#修改上述用戶的密碼 
passwd es 
#修改elasicsearch目錄的擁有者 
chown -R es elasticsearch-6.4.0

使用es用戶啟動(dòng)elasticsearch

#切換用戶 
su es 
#到ElasticSearch的bin目錄下 
cd bin/ 
#后臺(tái)啟動(dòng) 
./elasticsearch -d

默認(rèn)ElasticSearch是不支持跨域訪問(wèn)的,所以在不修改配置文件的情況下我們只能從虛擬機(jī)內(nèi)部進(jìn)行訪問(wèn)測(cè)試ElasticSearch是否安裝成功,使用curl命令訪問(wèn)9200端口:

curl http://localhost:9200

#如果顯示出如下信息,就證明ElasticSearch安裝成功:
{
  "name" : "JQP4lam",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "chZRaiKjSLyvs9vHs4Yq4g",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

4、安裝Skywalking,分為兩個(gè)步驟:

  • 安裝Backend后端服務(wù)
  • 安裝UI
    首先切回到root用戶,切換到目錄下,解壓Skywalking壓縮包。
tar -zxvf apache-skywalking-apm-6.4.0.tar.gz

修改Skywalking存儲(chǔ)的數(shù)據(jù)源配置:

cd apache-skywalking-apm-bin 
vi config/application.yml

storage:
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:""}
    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}

啟動(dòng)skywalking的前后端:

bin/startup.sh
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
skywalking ui
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容