从入门到放弃 SkyWalking2--快速搭建

一、SkyWalking 搭建环境准备

SkyWalking插件支持的中间件版本,避免兼容性问题,别问我为什么一上来要看这个,真被es坑死

https://github.com/apache/skywalking/blob/v8.4.0/docs/en/setup/service-agent/java-agent/Supported-list.md

SkyWalking8.4.0

https://mirror.bit.edu.cn/apache/skywalking/8.4.0/apache-skywalking-apm-es7-8.4.0.tar.gz

ElasticSearch 7.5.1 + Kibana 7.5.1 所有版本

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

二、ElasticSearch安装

使用es用于作为SkyWalking的后端存储

  • 解压
tar -zxf elasticsearch-7.5.1.tar.gz
  • 启动

解压完成之后,进入到elasticsearch目录中

./bin/elasticsearch -d
  • 查看状态/日志
tail -f logs/elasticsearch.log

浏览器访问: localhost:9200返回如下json,说明启动成功

三、Kibana 安装(非必须,可跳过)

Kibana是和es搭配使用,负责查询和管理es。

  • 解压
tar -zxf  kibana-7.5.1.tar.gz
  • 启动

进入kibana-7.5.1目录中

./bin/kibana
  • 查看状态/日志

http://localhost:5601/ 地址即可进入 Kibana 界面:

image

图中索引为SkyWalking启动后自动创建

四、SkyWalking 安装

SkyWalking Rocketbot 使用

  • 解压
apache-skywalking-apm-es7-8.4.0.tar.gz
  • 修改配置,后端存储为es

编辑apache-skywalking-apm-bin-es7/config/application.yml

skywalking8之后不用注释到其他存储配置项,只需要填写选择项selector

image
  • 启动oap与ui

接下来执行 ./bin/startup.sh 文件即可启动 SkyWalking OAP 以及 UI 界面,看到的输出如下:

>./bin/startup.sh
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
  • 查看日志/状态

logs/skywalking-oap-server.log 以及 logs/webapp.log

访问 http://127.0.0.1:8080/ 即可看到 SkyWalking 的 Rocketbot UI界面。

zookeeper启动

https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/

进入zookeeper-3.4.6/bin

  • 启动
./zkServer.sh start
  • 查看状态
./zkServer.sh status

dubbo项目中引入Skywalking Agent

SkyWalking Agent 使用了 Java Agent (字节码增强https://www.cnblogs.com/aspirant/p/8796974.html)技术,可以在无需手工埋点的情况下,通过 JVM 接口在运行时将监控代码段插入已有 Java 应用中,实现对 Java 应用的监控。SkyWalking Agent 会将服务运行过程中获得的监控数据通过 gRPC 发送给后端的 OAP 集群进行分析和存储。
SkyWalking 目前提供的 Agent 插件在 apache-skywalking-apm-bin/agent 目录下:

agent

    ├── activations

    │   ├── apm-toolkit-log4j-1.x-activation-6.2.0.jar

    │   ├── ...

    │   └── apm-toolkit-trace-activation-6.2.0.jar

    ├── config # Agent 配置文件

    │   └── agent.config

    ├── logs # 日志文件

    ├── optional-plugins # 可选插件

    │   ├── apm-customize-enhance-plugin-6.2.0.jar

    │   ├── apm-gson-2.x-plugin-6.2.0.jar

    │   └── ... ...

    ├── plugins # 当前生效插件

    │   ├── apm-activemq-5.x-plugin-6.2.0.jar

    │   ├── tomcat-7.x-8.x-plugin-6.2.0.jar

    │   ├── spring-commons-6.2.0.jar

    │   └── ... ...

    └── skywalking-agent.jar

正常结构的dubbo中,分别将apache-skywalking-apm-bin/agent/config 目录下的 agent.config 配置文件拷贝到resource目录下,并修改其中的 agent.service_name:

# The service name in UI
agent.service_name=${SW_AGENT_NAME:你服务的名称}
  • 服务消费端引入maven依赖
<!-- apm-toolkit-trace 这个依赖主要用来获取 TraceId -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>8.4.0</version>
</dependency>
  • agent.config 配置文件之后,我们需要在启动 dubbo项目 之前通过参数告诉 JVM SkyWalking Agent 配置文件的位置,IDEA 中的配置如下图所示
image
-javaagent:/Users/izaodao/Documents/sw/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
-Dskywalking_config=/Users/izaodao/Documents/IdeaProject/skywalking-demo/demo-provider/src/main/resources/agent.config

五、常见SkyWalking Agent 配置方式

  • agent.config

agent.config 是一个 KV 结构的配置文件,类似于 properties 文件,value 部分使用 "${}" 包裹,其中使用冒号(":")分为两部分,前半部分是可以覆盖该配置项的系统环境变量名称,后半部分为默认值。例如这里的 agent.service_name 配置项,如果系统环境变量中指定了 SW_AGENT_NAME 值(注意,全是大写),则优先使用环境变量中指定的值,如果环境变量未指定,则使用 demo-provider 这个默认值。

The service name in UI

agent.service_name=${SW_AGENT_NAME:demo-provider} 
  • 探针配置覆盖

在jvm参数的探针路径后面添加参数配置

-javaagent:/path/skywalking-agent.jar=agent.service_name=demo-provider
# 默认格式是 -javaagent:agent.jar=[option1]=[value1],[option2]=[value2]
  • JVM 配置覆盖

如果在 JVM 启动之前,明确中指定了下面的 JVM 配置:
则会使用该配置值覆盖 agent.config 配置文件中默认值。

-Dskywalking.agent.service_name = demo-provider
# "skywalking."是 Skywalking环境变量的默认前缀
  • 系统环境变量

  • 优先级

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

六、SkyWalking Rocketbot 使用

在前面执行的 ./bin/startup.sh 脚本,除了启动后端 OAP 服务,同时还会启动 Skywalking Rocketbot(位于 webapp 目录下的 skywalking-webapp.jar)。

image

Global面板,分别是:

  • Global Heatmap 面板:热力图,从全局展示了某段时间请求的热度。
  • Global Percent Response 面板 :展示了全局请求响应时间的 P99、P95、P75 等分位数。
  • Global Brief 面板:展示了 SkyWalking 能感知到的 Service、Endpoint 的个数。
  • Global Top Troughput 面板:展示了吞吐量前几名的服务。
  • Global Top Slow Endpoint 面板:展示了耗时前几名的 Endpoint。

Service 面板,可以看到针对 Service 的监控面板,如下图所示

image
  • Service (Avg) ResponseTime 面板:展示了指定服务的(平均)耗时。
  • Service (Avg) Throughput 面板:展示了指定服务的(平均)吞吐量。
  • Service (Avg) SLA 面板:展示了指定服务的(平均)SLA(Service Level Agreement,服务等级协议)。
  • Service Percent Response 面板:展示了指定服务响应时间的分位数。
  • Service Slow Endpoint 面板:展示了指定服务中耗时比较长的 Endpoint 信息。
  • Running ServiceInstance 面板:展示了指定服务下的实例信息。

Endpoint 的监控面板,基本功能与 Service 面板类似,这里不再展开。

Instance 面板,可以看到针对 ServiceInstance 的监控面板,如下图所示:

image

JVM 内存使用情况、GC 次数、GC 耗时、CPU 使用率、ServiceInstance SLA 等等信息

参考采坑资料:

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will l

https://www.cnblogs.com/agang-php/p/13591826.html

mac运行zookeeper的zkServer.sh,显示FAILED TO WRITE PID

https://blog.csdn.net/weixin_40283268/article/details/108722928

es启动常见问题

https://blog.csdn.net/mrzhangbaby/article/details/97166946

常见问题:

SkyWalking 8: 常见问题总结

https://my.oschina.net/osgit/blog/4558674

阿里云收费情况

https://cn.aliyun.com/price/product?spm=5176.cnxtrace.0.0.4945228fejqBfQ#/xtrace/detail

lsof -i:8080 查看端口

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容