编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

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

wxchong 2024-08-04 02:39:52 开源技术 37 ℃ 0 评论

前情提要:

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


相关文章:

kubernetes生产环境应用skywalking探针到apollo配置中心

kubernetes&微服务-6:skywalking6.4生产容器化


目录:

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

(2).机器拓扑图

(3).版本与下载

(4).部署skywalking-collector

(5).部署skywalking-web

(6).部署skywalking-agent

(7).skywalking官方issue

(8).skywalking3.2.6重要缺陷

(9).其他注意事项


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

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

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

skywalking-web:trace可视化页面。

elasticsearch:存储trace数据。

(2).机器拓扑图

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


IP

host

域名

运行服务

相关地址

微服务链路es集群

IP1

trace-es001

trace-es001.xxx-inc.com

elasticsearch


IP2

trace-es002

trace-es002.xxx-inc.com

elasticsearch

elasticsearch-head


http://IP2:9100/

IP3

trace-es003

trace-es003.xxx-inc.com

elasticsearch


IP4

trace-es004

trace-es004.xxx-inc.com

elasticsearch


微服务链路collector集群

IP5

trace-collector001

trace-collector001.xxx-inc.com

zookeeper

skywalking-collector

skywalking-web


http://IP5:8080/

IP6

trace-collector002

trace-collector002.xxx-inc.com

zookeeper

skywalking-collector


IP7

trace-collector003

trace-collector003.xxx-inc.com

zookeeper

skywalking-collector



(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

样例:

collector.conf

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当时的最新版本),参见:

kubernetes生产环境应用skywalking探针到apollo配置中心

(9).其他注意事项

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

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表