skywalking使用方法_【弄nèng – Skywalking】入门篇(一)—— Skywalking安装与使用

  • Post author:
  • Post category:其他


文章目录

一. 简介

二. Skywalking架构

三. 安装OAP

3.1 前置

3.2 下载

3.3 修改配置application.yml

3.4 webapp配置

3.5 启动

四. 使用Agent

4.1 修改配置

4.2 启动工程接入Agent

项目推荐

该篇博客是Skywalking的安装使用

官方文档:

https://github.com/apache/skywalking/tree/master/docs

参考https://www.jianshu.com/p/8b9aad4210c5

一. 简介

Skywalking概念相关的介绍请看官方文档官方文档

Skywalking用于分布式系统的应用程序性能监视工具,特别为微服务、云本机和基于容器(Docker, K8s, Mesos)架构设计。

二. Skywalking架构

从逻辑上讲,SkyWalking分为四个部分

探针(Agent):收集数据并重新格式化以符合SkyWalking的要求(不同的探针支持不同的来源)。

后端(Oap):支持数据聚合,分析并驱动从探针到UI的流程。该分析包括SkyWalking本机跟踪和度量,第三方,包括Istio和Envoy遥测,Zipkin跟踪格式等。您甚至可以通过使用针对本机度量的Observability Analysis Language和针对扩展度量的Meter System来定制聚合和分析。

存储:通过开放/可插入的界面存储SkyWalking数据。您可以选择现有的实现,例如ElasticSearch,H2或由Sharding-Sphere管理的MySQL集群,也可以实现自己的实现。欢迎为新的存储实现者打补丁!

UI:是一个高度可定制的基于Web的界面,允许SkyWalking最终用户可视化和管理SkyWalking数据。

后端(Oap)又分为三个角色

混合Mixed(默认):默认角色,OAP应承担以下责任,1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收),4.进行L2聚合,5.持久化,6.报警

接收者Receiver:1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收)

聚合器Aggregator:4.进行L2聚合,5.持久化,6.报警

可以利用Receiver和Aggregator进行高级部署,来区分节点责任,缓解压力、

注意:Receiver节点也可以进行持久化,继承Record类的实体在进行L1聚合时持久化

三. 安装OAP

3.1 前置

本教程使用的是最新版8.0.1,使用的数据源是es7,如果你要部署集群环境就适用zookeeper

所以需要安装es7和zk(可选,集群需要)

请自行安装,本教程重点是skywalking

3.2 下载

点击进入下载页

下载最新版8.0.1

解压后

3.3 修改配置application.yml

/config/application.yml部分配置

cluster:

selector: ${SW_CLUSTER:standalone}

# 单节点模式

standalone:

# zk用于管理collector集群协作.

# zookeeper:

# 多个zk连接地址用逗号分隔.

# hostPort: localhost:2181

# sessionTimeout: 100000

# 分布式 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 默认standalone单机模式

SW_CORE_ROLE 默认Mixed混合模式

SW_STORAGE 存储,我使用的是es7,所以设置成elasticsearch7

SW_NAMESPACE es的namespace

SW_STORAGE_ES_CLUSTER_NODES es地址,多个地址以,分割

3.4 webapp配置

可以在这里修改前端工程端口,默认8080

webapp/webapp.yml

server:

port: 8080

collector:

path: /graphql

ribbon:

ReadTimeout: 10000

# Point to all backend’s restHost:restPort, split by ,

listOfServers: 127.0.0.1:12800

3.5 启动

进入bin目录,执行启动文件,windows下startup.bat,linux为startup.sh。startup.bat包含后端启动文件oapService.bat和前端启动文件webappService.bat。

后端工程会启动两个端口11800和12800,大多数代理使用11800端口,只有少数不支持grpc的代理使用12800。

前端工程使用12800

启动成功后访问http://localhost:8080显示如下:

四. 使用Agent

Agent官方文档

agent目录

4.1 修改配置

有四种方式配置,优先级如下

探针配置 > JVM配置 > 系统环境变量配置 > agent.config文件

1.JVM配置覆盖

-Dskywalking.agent.service_name = demo-provider

2.探针配置覆盖

-javaagent:/var/local/agent/skywalking-agent.jar=agent.service_name=service-pfm

# 默认格式是 -javaagent:agent.jar=[option1]=[value1],[option2]=[value2]

我们使用JVM 配置,所以此处不修改。

/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

4.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~



版权声明:本文为weixin_39780255原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。