Apache SkyWalking


什么是 SkyWalking?

  • SkyWalking 是觀察性分析平台和應用性能管理系統。
  • 提供分布式追蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案.
  • 支持Java, .Net Core, PHP, NodeJS, Golang, LUA語言探針
  • 支持Envoy + Istio構建的Service Mesh

架構圖:

整體架構包含如下三個組成部分:
1. 探針(agent)負責進行數據的收集,包含了Tracing和Metrics的數據,agent會被安裝到服務所在的服務器上,以方便數據的獲取。
2. 可觀測性分析平台OAP(Observability Analysis Platform),接收探針發送的數據,並在內存中使用分析引擎(Analysis Core)進行數據的整合運算,然后將數據存儲到對應的存儲介質上,比如Elasticsearch、MySQL數據庫、H2數據庫等。同時OAP還使用查詢引擎(Query Core)提供HTTP查詢接口。
3. Skywalking提供單獨的UI進行數據的查看,此時UI會調用OAP提供的接口,獲取對應的數據然后進行展示。

特性

  1. 多種監控手段,語言探針和service mesh
  2. 多語言自動探針,Java, .Net Core, PHP, NodeJS, Golang, LUA
  3. 輕量高效,不需要大數據
  4. 模塊化,UI、存儲、集群管理多種機制可選
  5. 支持告警
  6. 優秀的可視化方案

官網地址:https://skywalking.apache.org/

環境搭建

軟件版本:

apache-skywalking-apm-6.5.0.tar.gz
apache-tomcat-8.5.47.tar.gz
elasticsearch-6.4.0.tar.gz

1、設置時間同步並創建安裝目錄

yum install -y ntp
*/2 * * * *        /usr/sbin/ntpdate 182.92.12.11;/sbin/hwclock -w > /dev/null #2>&1
mkdir -p /usr/local/skywalking

2、創建elasticsearch用戶及設置系統文件句柄數

#添加es用戶
useradd es
passwd es
#設置文件打開句柄數
vim /etc/security/.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
#增大虛擬內存
vim /etc/sysctl.conf
vm.max_map_count=262144 
#運用生效
system -p

3、部署elasticsearch,注意事項:https://github.com/apache/skywalking/blob/5.x/docs/cn/Deploy-backend-in-standalone-mode-CN.md#%E9%83%A8%E7%BD%B2elasticsearch

#安裝java環境
yum install -y java
#解壓
tar -xf elasticsearch-6.4.0.tar.gz
#授權
chown -R es.es elasticsearch-6.4.0
#切換到es用戶
su - es
#后台啟動es服務
cd /usr/local/skywalking/elasticsearch-6.4.0/bin/
./elasticsearch -d

curl請求返回正常:

 4、安裝skywalking

tar -xf apache-skywalking-apm-6.5.0.tar.gz
cd apache-skywalking-apm-bin/
#修改數據源
vim config/application.yml

#打開elasticseatch注解
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


##注釋h2數據源
#  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}


#后台啟動服務
/usr/local/skywalking/apache-skywalking-apm-bin/bin
./startup.sh -d
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
 默認端口:

端口號

說明

8080

web端口

11800

gRPC追蹤信息收集器端口

12800

rest追蹤信息收集器端口

通過瀏覽器訪問Skywalking的可視化頁面了,訪問地址:http://虛擬機IP地址:8080,如果出現下面的圖,就代表安裝成功了。

  5、基於tomcat部署skywalking agent

#解壓tomcat
tar -xf apache-tomcat-8.5.47.tar.gz
#在tomcat的啟動參數添加skywalking-agent.jar
/usr/local/skywalking/apache-tomcat-8.5.47/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar";export CATALINA_OPTS
#啟動tomcat服務
./startup.sh

 6、首先要訪問tomcat服務,這時我們打開一個新的無痕窗口(fuck。。。因為緩存的問題我整整花了一天時間卡在上面,當前服務一直不顯示。)看到skywalking UI。

 后記:

1、系統時間同步,不然也會導致UI無法顯示請求。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM