专栏首页千里行走skywalking-1:skywalking3.2.6生产级部署(历史总结)

skywalking-1:skywalking3.2.6生产级部署(历史总结)

前情提要:

Skywalking3.2.6是很老的版本了,18年8月左右的最新stable版本,进行总结纯粹出于方法论和过程论的总结,以及历史沉淀。

目录:

(1).skywalking3.2.6部署拓扑图

(2).机器拓扑图

(3).版本与下载

(4).部署skywalking-collector

(5).部署skywalking-web

(6).部署skywalking-agent

(7).skywalking官方issue

(8).skywalking3.2.6重要缺陷

(9).其他注意事项

(10).相关文章

(1).skywalking3.2.6部署拓扑图

skywalking-agent:非侵入式agent,是应用服务的一部分。

skywalking-collector:trace收集器,可以部署多个。

skywalking-web:trace可视化页面。

elasticsearch:存储trace数据。

(2).机器拓扑图

综合成本和性能,主要原则:够用就好。

(3).版本与下载

skywalking与elasticsearch版本:skywalking-stable-3.2.6, elasticsearch5.6.8

wget https://github.com/apache/incubator-skywalking/releases/download/v3.2.6/skywalking-agent.tar.gz

wget https://github.com/apache/incubator-skywalking/releases/download/v3.2.6/skywalking-collector.tar.gz

wget https://github.com/apache/incubator-skywalking/releases/download/v3.2.6/skywalking-web.tar.gz

解压得到skywalking-agent, skywalking-web, skywalking-collector

(4).部署skywalking-collector

1.mv skywalking-collecotr /app/3rd

2.修改配置文件:

config/log4j2.xml

<Property name="log-path">/data/xxx/skywalking-collector/logs</Property>

application.yml:要和elasticsearch保持一致。

elasticsearch: cluster_name: my-application cluster_nodes: localhost:9300

所有localhost都要改成ip, 配置zk, es

3.启动:

bin/collectorService.sh start

(5).部署skywalking-web

1.mv skywalking-web /app/3rd

2.修改配置文件:

config/log4j2.xml

<Property name="log-path">/data/xxx/skywalking-web/logs</Property>

config/collector_config.properties:

collector.servers[0]=collecotr1:10800

(可以部署多个)

application.properties

默认端口:8080

3.启动:

./web-service.sh start

4.web界面

Trace:

Instance view

service tree

(6).部署skywalking-agent

业务同学需要关心和了解:

1.mv skywalking-agent /app/3rd/

2.修改配置文件:

conf/agent.confg:

agent.application_code=xxx (具体的业务名字)

collector.servers=collectorIP:10800 (可以部署多个)

logging.level=INFO

logging.dir=/data/xxx/skywalking-agent/logs

3.使用方式:

nohup java -javaagent:javaAgent -jar yourBiz.jar >/dev/null 2>&1 &

使用者需要替换:

$javaAgent 一般是:/app/3rd/skywalking-agent/skywalking-agent.jar

$yourBiz.jar,要启动的业务jar包。

PS:

这里省略了其他参数,如JVM参数,业务参数,看各自业务情况都要有。

(7).skywalking官方issue

1.skywalking 对motan的支持应该是从5.x开始;之前最近的一个稳定版本3.2.6-stable是否支持待确认(已经确认支持:作者&实际测试都确认),根据官方答复看代码应该是支持的,依据:https://github.com/apache/incubator-skywalking/issues/1545#issuecomment-412745201

因为我们使用的是motan,所以必须确认此点。

2.skywalking-stable-3.2.6只能对应elasticsearch-5.x,依据:https://github.com/apache/incubator-skywalking/issues/507#issuecomment-412748537, 这里使用elasticsearch5.6.8

这个事项也非常重要,却很容易忽略,导致整个流程不通。

(8).skywalking3.2.6重要缺陷

Huge memory is used when using skywalking-agent

https://github.com/apache/skywalking/issues/1666

上述这个问题发现的也非常偶然,独立ECS各种压测都没有问题。但是因为我们同时还在做容器化,测试环境的k8s资源都非常小,给每个pod分配的资源几乎都是刚刚够运行,在这个前提下使用skywalking-agent后内存飙涨无法启动,然后开始在github上找作者深究这个问题。大致原因skywalking3.2.6这个版本对bytecode使用存在效率问题,只有内存临界点上才会发生我们遇到的问题。详情可以看上述issue。

这也是我们最后否决skywalking3.2.6的原因,虽然后续版本解决了这个问题,但是全链路这个事情已经排除在重要事项之外了。在我们完成整个基础架构重构之后,才在k8s里的apollo服务上进行了运用(skywalking当时的最新版本)

(9).其他注意事项

Skywalking-agent一定不要使用100%的采样率,没有意义且徒耗性能,而且也做不到100%,会根据内存损耗对trace进行丢弃。

我们主要是看的全局拓扑,以及全局滞点/阻塞点。

本文分享自微信公众号 - 千里行走(a_thousands_of_miles),作者:千里行走

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • skywalking-2:skywalking3.2.6性能压测与测试报告(历史总结)

    1.评估在业务服务的极致qps下,skywalking是否对业务有影响。这个是最重要的。

    千里行走
  • SkyWalking链路追踪系统-接入篇

    在前面的文章中讲到SkyWalking链路追踪系统-部署篇,接下来在正式接入Skywalking探针agent之前,先来接着了解一下Skywalking的整体架...

    仙人技术
  • 分布式链路追踪,要怎么玩下?

    大家好!我是"无敌码农",最近几个月因为各方面原因公众号没有及时更新,在这里给持续关注本公众号的朋友们表示歉意!2021年我将调整好心态持续给大家输出有价值的技...

    用户5927304
  • ELK、EFK、Prometheus、SkyWalking、K8s的排列组合

    这3个监控组合都非常不错,那在实际生产过程中,对一家中等规模的微服务业务应用,该如何选型呢? 如果企业采用spring + k8s技术栈,EFK + Prom...

    JavaEdge
  • APM 原理与框架选型

    随着微服务架构的流行,一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂:

    JadePeng
  • 年轻人的第一个APM-Skywalking

    什么是APM?全称:Application Performance Management

    李国宝
  • .NET Core微服务之基于Ocelot+Butterfly实现分布式追踪

      微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错误和异常,我们只要盯住一个点,就可以快速定位和...

    Edison Zhou
  • 专访骨灰级开源爱好者吴晟:开源没有黑魔法,两年后泡沫将会破灭

    在刚结束的 2020 年,国内先后有超过 11 家开源软件领域企业获得了新一轮的资本助力,融资纪录创下近年来开源赛道最高。开源的热潮,已然兴起。然而,当越来越多...

    开源社
  • kubernetes-2:helm实战-1:生产级别的elasticsearch集群部署

    helm repo add elastic https://helm.elastic.co

    千里行走

扫码关注云+社区

领取腾讯云代金券