一、Skywalking包(8.4.0)基本介紹

- skywalking agent和業務系統綁定在一起,負責手機各種監控數據
- Skywalking oapservice是負責處理監控數據的,比如:接受skywalking agent的監控數據,並存儲在數據庫中;接受skywalking webapp的前端請求,從數據庫查詢數據,並返回給前端。Skywalking oapservice通常以集群的形式存在。
- Skywalking webapp,前端界面,用於展示監控結果數據。
- 數據庫:用於存儲監控數據,比如:mysql、elasticsearch等。
skywalking安裝包目錄結構

①webapp:UI前端(web監控頁面)的jar包和配置文件;

ui頁面的啟動端口,可以修改webapp.yml,默認是8080

②oap-libs:后台應用的jar包,以及它依賴的jar包,里邊有一個server-starter-*.jar就是啟動程序;

③config:啟動后台應用程序的配置文件,是使用的各種配置

在application.yml中可以配置使用的存儲方式等信息,默認使用h2內存方式,例如我修改為es7存儲。

④bin:各種啟動腳本,一般使用腳本startup.*來啟動web頁面和對應的后台應用;
- oapService.*:默認使用的后台程序的啟動腳本(使用的是默認啟動模式);
- oapServiceInit.*:使用init模式啟動;在此模式下,OAP服務器啟動以執行初始化工作,然后退出
- oapServiceNoInit:使用no init模式啟動;在此模式下,OAP服務器不進行初始化
- webappService.*:UI前端的啟動腳本;
- startup.*:組合腳本,同時啟動oapService.*,webappService.*腳本

⑤agent:
- skywalking-agent.jar:代理服務jar包
- config:代理服務啟動時使用的配置文件
- plugins:包含多個插件,代理服務啟動時會加載該目錄下的所有插件(實際是各種jar包)
- optional-plugins:可選插件,當需要支持某種功能時,比如SpringCloud Gateway,則需要把對應的jar包拷貝到plugins目錄下

⑥控制台沒有答應啟動是否成功以及端口等信息,當啟動時會創建logs文件夾,分別生成skywalking-oap-server.log、webapp.log

先看skywalking-oap-server.log的端口

skywalking-oap-server會暴露11800和12800兩個端口,分別為收集監控數據的端口11800和接受前端ui請求的端口12800,修改端口可以application.yml。
二、環境
- 系統:CentOS 7.6
- skywalking軟件版本:8.4(最新)
- java版本:8
- 后端存儲:ES7
多說一句
Skywalking自帶演示H2,但實際測試下來真的是演示前端,只有個界面,那還不如直接看Github的Demo環境,所以建議還是用ES。
操作系統環境:
[root@localhost es]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@localhost es]#
三、ES7安裝
1.安裝JDK環境
dnf -y install java wget
dnf 新一代的RPM軟件包管理器 DNF 是新一代的rpm軟件包管理器。他首先出現在 Fedora 18 這個發行版中。而最近,它取代了yum,正式成為 Fedora 22 的包管理器。 DNF包管理器克服了YUM包管理器的一些瓶頸,提升了包括用戶體驗,內存占用,依賴分析,運行速度等多方面的內容。DNF使用 RPM, libsolv 和 hawkey 庫進行包管理操作。盡管它沒有預裝在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同時使用DNF。 安裝dnf:yum install dnf
檢查一下:
[root@localhost ~]# java -version
openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
[root@localhost ~]#
2.下載ES7包(rpm安裝方式)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-x86_64.rpm
rpm -ivh elasticsearch-7.11.1-x86_64.rpm
[root@localhost es]# rpm -ivh elasticsearch-7.11.1-x86_64.rpm 警告:elasticsearch-7.11.1-x86_64.rpm: 頭V4 RSA/SHA512 Signature, 密鑰 ID d88e42b4: NOKEY 准備中... ################################# [100%] Creating elasticsearch group... OK Creating elasticsearch user... OK 正在升級/安裝... 1:elasticsearch-0:7.11.1-1 ################################# [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore [root@localhost es]#
3.啟動ES7
systemctl start elasticsearch.service&&systemctl enable elasticsearch.service
4.檢查ES7狀態
此時無法訪問,由於初始化配置文件未配置的原因。

訪問:ip:9200如下:

5.修改ES配置文件
vi /etc/elasticsearch/elasticsearch.yml

修改集群名稱,記得格式要對齊

允許所有IP訪問,同樣格式對其

由於是單機環境,所以只需要一個
6.重啟es服務並驗證(如果重啟失敗,注意檢查格式是否正常,格式對齊就沒啥問題)
systemctl restart elasticsearch.service

四、Skywalking部署
1.下載安裝包
wget https://archive.apache.org/dist/skywalking/8.4.0/apache-skywalking-apm-es7-8.4.0.tar.gz
2.解壓安裝包
mkdir /skywalking
mv apache-skywalking-apm-es7-8.4.0.tar.gz /skywalking/
cd skywalking
tar -zxvf apache-skywalking-apm-es7-8.4.0.tar.gz cd apache-skywalking-apm-bin-es7/
3.修改skywalking配置文件
vi config/application.yml
找到存儲選項,選擇器里填寫elasticsearch7,因為是ES7

填寫ES7集群名稱以及IP地址

開啟自監控:開啟telemetry


修改為:

開啟自監控
4.安裝java及啟動skywalking
dnf -y install java sh bin/startup.sh
[root@localhost apache-skywalking-apm-bin-es7]# sh bin/startup.sh SkyWalking OAP started successfully! SkyWalking Web Application started successfully!
[root@localhost apache-skywalking-apm-bin-es7]#
啟動成功
ps -ef | grep java

5.訪問前端

訪問正常
參考:https://os.51cto.com/art/202103/648414.htm