文章目录
- 一. 安装OAP
- 1.1 前置
- 1.2 下载
- 1.3 修改配置application.yml
- 1.4 高级部署
- 1.5 webapp配置
- 1.6 启动
- 二. 使用Agent
- 2.1 修改配置
- 2.2 启动工程接入Agent
- 项目推荐
该篇博客是Skywalking集群版安装,基于单机版改造【弄nèng - Skywalking】入门篇(一)—— Skywalking安装与使用
官方文档:
https://github.com/apache/skywalking/tree/master/docs
该篇博客是Skywalking集群版安装,基于单机版改造【弄nèng - Skywalking】入门篇(一)—— Skywalking安装与使用
一. 安装OAP
1.1 前置
本教程使用的是最新版8.0.1,使用的数据源是es7,如果你要部署集群环境就适用zookeeper
所以需要安装es7和zk(可选,集群需要)
请自行安装,本教程重点是skywalking
1.2 下载
点击进入下载页
下载最新版8.0.1
解压后
1.3 修改配置application.yml
/config/application.yml部分配置
cluster:selector: ${SW_CLUSTER:zookeeper}# 单节点模式standalone:# zk用于管理collector集群协作.zookeeper:nameSpace: ${SW_NAMESPACE:""}# 多个用,分割hostPort: ${SW_CLUSTER_ZK_HOST_PORT:localhost:2181}# Retry PolicybaseSleepTimeMs: ${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retriesmaxRetries: ${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry# Enable ACLenableACL: ${SW_ZK_ENABLE_ACL:false} # disable ACL in defaultschema: ${SW_ZK_SCHEMA:digest} # only support digest schemaexpression: ${SW_ZK_EXPRESSION:skywalking:skywalking}# 分布式 kv 存储设施,类似于zk,但没有zk重型(除了etcd,consul、Nacos等都是类似功能)# etcd:# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}# 多个节点用逗号分隔, 如: 10.0.0.1:2379,10.0.0.2:2379,10.0.0.3:2379# hostPort: ${SW_CLUSTER_ETCD_HOST_PORT:localhost:2379}
core:selector: ${SW_CORE:default}default:# 混合角色:接收代理数据,1级聚合、2级聚合# 接收者:接收代理数据,1级聚合点# 聚合器:2级聚合点role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator# rest 服务地址和端口restHost: ${SW_CORE_REST_HOST:localhost}restPort: ${SW_CORE_REST_PORT:12800}restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}# gRPC 服务地址和端口gRPCHost: ${SW_CORE_GRPC_HOST:localhost}gRPCPort: ${SW_CORE_GRPC_PORT:11800}downsampling:- Hour- Day- Month# 设置度量数据的超时。超时过期后,度量数据将自动删除.# 单位分钟recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90}# 单位分钟minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90}# 单位小时hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36}# 单位天dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45}# 单位月monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18}storage:selector: ${SW_STORAGE:elasticsearch7}elasticsearch7:# elasticsearch 的集群名称nameSpace: ${SW_NAMESPACE:"TEST-ES"}# elasticsearch 集群节点的地址及端口clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.1:9200}# elasticsearch 的用户名和密码user: ${SW_ES_USER:""}password: ${SW_ES_PASSWORD:""}# 设置 elasticsearch 索引分片数量indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}# 设置 elasticsearch 索引副本数indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}# 批量处理配置# 每2000个请求执行一次批量bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000}# 每 20mb 刷新一次内存块bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20}# 无论请求的数量如何,每10秒刷新一次堆flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}# 并发请求的数量concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}# elasticsearch 查询的最大数量metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}# elasticsearch 查询段最大数量segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}profileTaskQueryMaxSize: ${SW_STORAGE_ES_QUERY_PROFILE_TASK_SIZE:200}advanced: ${SW_STORAGE_ES_ADVANCED:""}
主要修改,SW_CLUSTER
, SW_CORE_ROLE
,SW_STORAGE
,SW_NAMESPACE
,SW_STORAGE_ES_CLUSTER_NODES
, SW_CLUSTER_ZK_HOST_PORT
SW_CLUSTER
默认standalone单机模式SW_CORE_ROLE
默认Mixed混合模式SW_STORAGE
存储,我使用的是es7,所以设置成elasticsearch7SW_NAMESPACE
namespace用来区分SW_STORAGE_ES_CLUSTER_NODES
es地址,多个地址以,
分割SW_CLUSTER_ZK_HOST_PORT
zk地址,多个地址以,
分割
与单机版的区别在于 SW_CLUSTER
和SW_CLUSTER_ZK_HOST_PORT
,其他配置都一样
1.4 高级部署
后端(Oap)又分为三个角色
- 混合Mixed(默认):默认角色,OAP应承担以下责任,1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收),4.进行L2聚合,5.持久化,6.报警
- 接收者Receiver:1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收)
- 聚合器Aggregator:4.进行L2聚合,5.持久化,6.报警
SW_CORE_ROLE
在集群模式下可以还可以设置成Receiver和Aggregator来提高系统性能。
如果集群只有Receiver节点,在收集数据时会报错,因为内部通讯(发送/接收)找不到接收节点而失败。
1.5 webapp配置
可以在这里修改前端工程端口,默认8080
webapp/webapp.yml
server:port: 8080collector:path: /graphqlribbon:ReadTimeout: 10000# Point to all backend's restHost:restPort, split by ,listOfServers: 127.0.0.1:12800
1.6 启动
进入bin目录,执行启动文件,windows下startup.bat
,linux为startup.sh
。startup.bat
包含后端启动文件oapService.bat
和前端启动文件webappService.bat
。
后端工程会启动两个端口11800
和12800
,大多数代理使用11800
端口,只有少数不支持grpc的代理使用12800
。
前端工程使用12800
启动成功后访问http://localhost:8080显示如下:
启动成功过还会在zookeeper目录/skywalking/remote目录下创建节点,该节点表示Aggregator角色节点,启动几个Aggregator角色节点,就会创建几个
二. 使用Agent
Agent官方文档
2.1 修改配置
有两种方式配置,1. 在配置文件中修改,2.在启动时传入环境变量。我们使用第二种,所以此处不修改
/agent/config/agent.config主要配置
# 不同的namespace会导致调用链路追踪中断
agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}# 页面上展示的service的名称,也可以通过-Dskywalking.agent.service_name=xxx指定
agent.service_name=${SW_AGENT_NAME:service-pfm}# 平台的调用地址,也可以通过-Dskywalking.collector.backend_service=127.0.0.1:11800指定
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}# 忽略指定后缀的请求收集
agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}# 每3秒的采样率,负数代表100%
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}
注意:如果Collector以集群方式部署,比如:Acollector和Bcollector,建议Acollector.sampleRate = Bcollector.sampleRate
2.2 启动工程接入Agent
在jvm启动参数上添加
-javaagent:/var/local/apache-skywalking-apm-bin/agent/skywalking-agent.jar
完整的启动命令
java -javaagent:/var/local/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=service-pfm -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar simple-skywalking-test.jar
IDEA中启动
添加参数,直接正常启动就可以了
启动成功后访问API,页面会看到数据
排错需要观察agent的日志,路径为/agent/logs/skywalking-api.log
和skywalking的运行日志,路径为logs/skywalking-oap-server.log
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本CSDN elasticsearch系列中。
IT-CLOUD-KAFKA :spring整合kafka教程源码。博文在本CSDN kafka系列中。
IT-CLOUD-KAFKA-CLIENT :kafka client教程源码。博文在本CSDN kafka系列中。开源项目,持续更新中,喜欢请 Star~