目錄1.搭建ES2.搭建Skywalking 1.安裝java2.解壓skywalking壓縮包3.修改配置文件 application.yml 4.修改配置文件 webapp/webapp.yml5.支持springcloud gateway :
6.啟動Skywalking OAP:7.啟動Skywalking UI服務:3.微服務使用skywalking參考文章:1.搭建ES
在本文中,我們需要將skywalking采集到的數據導入到ES中,所以需要首先安裝ES,我們用的是ES集群。
ES集群搭建文檔:華為雲contos7系統部署ES集群3個主節點_wdquan19851029的專欄-CSDN博客
ES單機搭建文檔 :
centos7安裝ELK-單機版_wdquan19851029的專欄-CSDN博客
2.搭建Skywalking
有了ES之後,我們開始搭建Skywalking。
1.安裝java
jdk壓縮包解壓(自己去下載): tar zxvf jdk1.8.0_181.tar
配置環境變量:修改/etc/profile文件,在文件最後加上:
export JAVA_HOME=/usr/local/jdk1.8.0_181 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效: source /etc/profile
查看java版本: [root@ecs-dev-0003 ~]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) [root@ecs-dev-0003 ~]# javac -version javac 1.8.0_181 [root@ecs-dev-0003 ~]#
2.解壓skywalking壓縮包
tar zxvf apache-skywalking-apm-bin-es7.tar.gz
3.修改配置文件 application.yml
修改配置文件
config/application.yml將其中的storage -> selector改為 “elasticsearch7”,本文中用到的就是ES7.8.1
storage: selector: ${SW_STORAGE:elasticsearch7}
參數說明: 參數 | 說明 |
---|
selector | 存儲選擇器。本文選在ES7 |
nameSpace | 命名空間。Elasticsearch實例中,所有索引的命名會使用此參數值作為前綴。本人查了查資料,這裏設置了ES集群的名字 |
clusterNodes | 指定Elasticsearch實例的訪問地址。由於實例與SkyWalking不在同一專有網絡VPC(Virtual Private Cloud)下,因此要使用公網訪問地址,獲取方式請參見查看實例的基本信息。由於是測試環境,本人直接設置了本機的ES節點。 |
user | Elasticsearch實例的訪問用戶名,默認為elastic。 |
password | 對應用戶的密碼。elastic用戶的密碼在創建實例時指定,如果忘記可重置。重置密碼的注意事項和操作步驟,請參見重置實例訪問密碼。 |
Note: skywalking啟動後,會啟動兩個服務,一個是skywalking-oap-server,另外一個是skywalking-web-ui:8080。 skywalking-oap-server服務啟動後會暴露兩個端口11800 和12800,分別為收集監控數據的端口
11800和接受前端請求的端口
12800,修改端口可以修改
config/application.yml 4.修改配置文件 webapp/webapp.yml
Skywalking默認使用8080端口,如果該端口被占用,則可以修改webapp/webapp.yml文件,修改Skywalking的端口。
還有12800也是Skywalking使用的端口。
5.支持springcloud gateway :
skywalking默認不采集sping cloud gateway的數據,怎麼辦呢?
將optional-plugins目錄下的最新版本的jar包 apm-spring-cloud-
gateway-3.x-plugin-8.7.0.jar 拷貝到plugins目錄下,然後重啟skywalking
6.啟動Skywalking OAP:
./bin/./oapService.sh
7.啟動Skywalking UI服務:
./bin/webappService.sh
Note: skywalking啟動後,會啟動兩個服務,一個是skywalking-oap-server,另外一個是skywalking-web-ui:8080。 skywalking-oap-server服務啟動後會暴露兩個端口11800 和12800,分別為收集監控數據的端口
11800和接受前端請求的端口
12800,修改端口可以修改
config/application.yml 3.微服務使用skywalking
skywalking對微服務的代碼是無侵入的,只需要在項目啟動的時候,加入一些啟動參數就可以了
- -javaagent: 需要指定skywalking-agent.jar,作為client的數據收集器
- -Dskywalking.agent.service_name:是指注冊到skywalking的微服務名稱
- -Dskywalking.collector.backend_service:指的是skywalking接收agent(微服務端)發送采集數據的服務及端口
# JAVA_OPTS=.
# appName=.
# skywalkingIpAdress=..
# java $JAVA_OPTS
-javaagent:/opt/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=$appName-${SPRING_PROFILES_ACTIVE:-default}
-Dskywalking.collector.backend_service=${skywalkingIpAdress:-10.***.***.101:11800} -jar tmp/$appName.jar
使用效果:
可以看到微服務都在skywalking中顯示出來。
參考文章:
這兩篇文章寫得不錯,可以參考Centos 7.4搭建es7.12.0+Skywalking7.8.5 - 香菜哥哥 - 博客園 (cnblogs.com)
skywalking原理_40張圖看懂:分布式追蹤系統原理及實踐_weixin_39866487的博客-CSDN博客