skywalking 安装_Skywalking8.1.0安装与部署

背景介绍

目前公司后端服务全部为微服务并运行在kubernetes集群上,而大量的微服务的背后拥有很复杂的调用关系,纵使你是公司的资深开发也很难理清每一个后端服务之间的依赖关系,并且随着公司的发展,服务数量的增加以及内部调用链的复杂化,仅凭日志监控和基础服务监控是很难做到“See the Whole Picture”, 这个时候skywalking的出现刚刚好可以解决我们目前的问题。

简介

skywalking又称应用程序性能管理(APM)工具,它和日志管理工具都具有相同的底线目标:它们可以帮助你更深入地了解应用程序中正在发生的事情。尽管目标相似,但执行方式却不同,并且每个目标都专注于应用程序中的不同方面。

APM工具提供有关应用程序性能的分析。这些分析可以包括执行代码中不同elements所花费的时间,完成某些事务所需的时间等等。

这些工具还使我们能够监视生产环境,应用程序负载(事务,请求和每秒的页面数),计算响应时间以及可能导致延迟响应的总体方向。。 

464f8cb5a799c0f77af985669a3a989f.png

具体详见skywalking官网:http://skywalking.apache.org/

安装服务端

本片文档使用helm安装部署skywalking。

下载最新版chart 3.1

下载地址: https://mirror.bit.edu.cn/apache/skywalking/kubernetes/3.1.0/skywalking-3.1.0.tgz

$ tar xf skywalking-3.1.0.tgz$ cd skywalking

 编辑value.yaml文件(如果不是生产环境,可适当缩小资源)

# 注: 修改完pod资源大小,别忘了调整-Xmx和-Xms参数,大小可以给到2/3 左右

...elasticsearch:...  resources:    requests:      cpu: 4      memory: 8    limits:      cpu: 4      memory: 8...

配置ES数据持久化

创建storageclass

注:不同云厂商提供的配置参数可能不同,按需而定,以阿里云为例:

$ cat ./storage-class.yamlkind: StorageClassapiVersion: storage.k8s.io/v1metadata:  name: skywalking-disk-ssdprovisioner: alicloud/diskreclaimPolicy: Retainparameters:  type: cloud_ssd  regionid: cn-beijing  zoneid: cn-beijing-d,cn-beijing-c,cn-beijing-e  fstype: "ext4"  readonly: "false"allowVolumeExpansion: true$ kubectl create -f  ./storage-class.yaml

编辑value.yaml文件

vim skywalking/values.yaml...elasticsearch:...  volumeClaimTemplate:    accessModes: [ "ReadWriteOnce" ]    storageClassName: skywalking-disk-ssd    resources:      requests:        storage: 500Gi...  persistence:    enabled: true    # 持久化开关    annotations: {volume.beta.kubernetes.io/storage-class: "skywalking-disk-ssd"}...
安装命令
$ helm install skywalking skywalking -n skywalking
安装Java-agent
关于skywalking的agent端我们可以在http://skywalking.apache.org/downloads/ 这里找到他们。
注:java-agent端的配置文件我们可以在JAVA_OPTS中进行修改,也可以通过comfigmap传入变量的方式进行修改,所以我们暂时先不动它
详细参数可查看skywalking官网的Agent Configuration Properties: https://github.com/apache/skywalking/blob/v8.0.1/docs/en/setup/service-agent/java-agent/README.md
配置skywalking的追踪忽略
在实际的生产环境中由于某些请求是不需要被追踪的,我们需要
skywalking的可选插件:apm-trace-ignore-plugin-8.0.1.jar来帮我们过滤追踪。
因为skywalking的功能组件都是可插拔的,所以我们只需要将optional-plugins/apm-trace-ignore-plugin-8.0.1.jar 移动到plugins/
apm-trace-ignore-plugin-8.0.1.jar配置方法
在JAVA_OPTS参数中加入:-Dskywalking.trace.ignore_path=/heartbeat,/api/v2/spans,/metrics ....
将agent端打入base镜像
$ cat Dockerfile...#添加skywalking插件ADD skywalking-agent.tar.gz /opt/ole-resources/...

 在JAVA_OPTS参数最后加入skywalking的相关配置。

JAVA_OPTS: ...  -javaagent:/opt/ole-resources/skywalking-agent/skywalking-agent.jar -Dskywalking.trace.ignore_path=/heartbeat,/api/v2/spans,/metrics            -Dskywalking.agent.namespace=$(POD_NAMESPACE)  -Dskywalking.agent.service_name=$(POD_APP_NAME)            -Dskywalking.agent.instance_name=$(POD_NAME) -Dskywalking.collector.backend_service=skywalking-oap.skywalking.svc.cluster.local:11800

注: 

若想将这些变量注入到容器中$(POD_NAMESPACE),$(POD_APP_NAME),$(POD_NAME)需要修改deployment文件,如下配置
      - env:        - name: POD_NAMESPACE          valueFrom:            fieldRef:              apiVersion: v1              fieldPath: metadata.namespace        - name: POD_NAME          valueFrom:            fieldRef:              apiVersion: v1              fieldPath: metadata.name        - name: POD_APP_NAME          valueFrom:            fieldRef:              apiVersion: v1fieldPath: metadata.labels['app']

到这里skywalking的OAP、UI、以及Agent端基本部署完成,让我们来看一下效果

464f8cb5a799c0f77af985669a3a989f.png


后续持续更新中。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值