SkyWalking 安装部署操作指引
环境
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
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:11800
,ip/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)
以按此模式启动。
参考链接
Agent下载和安装
略
链接:https://skywalking.apache.org/downloads/#Agents
application.yml配置文件简介
In application.yml
, there are three levels.SkyWalking后端启动行为由config/application.yml
驱动。此设置文件背后的核心概念是SkyWalking收集器基于纯模块化设计。终端用户可以根据自己的独特要求切换或组装收集器功能。
在application.yml
中,有三个级别。
- Level 1: 模块名称。意味着此模块在运行模式下处于活动状态。
- Level 2: 提供选项列表和选择器(
selector
)。此处列出了可用的提供者,并附有一个选择器,以指示哪个提供者将实际生效。如果只列出了一个提供者,则selector
是可选的,可以省略 - 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
storage
为模块。selector
从下面列出的所有提供者中选择一个。未选中的提供者不会生效,就像被删除一样.default
是核心模块的默认实现者。driver
,url
, …metadataQueryMaxSize
都是实现者的设置项.
同时,有两种类型的模块:必备模块和可选模块。必备模块提供了后端的骨架。尽管它们的模块化设计支持可插拔性,但删除这些模块没有任何意义。对于可选模块,其中一些模块有一个名为none
的提供者实现,这意味着它只提供一个没有实际逻辑的shell,通常是遥测。将selector
设置为-
,意味着整个模块将在运行时被排除。建议不要更改这些模块的API,除非非常了解SkyWalking项目及其代码。
此处列出了必备模块:
- Core 提供所有数据分析和流调度的基本和主要框架
- Cluster 管理集群中的多个后端实例,这可以提供高吞吐量的处理功能。请参见集群管理了解更多详情。
- Storage 持久化分析结果。查看存储选取 获取更多详情
- Query 提供查询接口给UI
- Receiver 和 Fetcher 将服务暴露给代理和探针,或从通道读取遥测数据
参考链接: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
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2w2jljy48u0w0
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群