skywalking部署

背景介绍

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

简介

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

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

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

安装服务端

本片文档使用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.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: skywalking-disk-ssd
provisioner: alicloud/disk
reclaimPolicy: Retain
parameters:
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: v1
fieldPath: metadata.labels['app']

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


后续持续更新中。。。

skywalking8.1.0(一) 安装与部署的更多相关文章

  1. Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例)

    目录 目录 前言 什么是Flume? Flume的特点 Flume的可靠性 Flume的可恢复性 Flume的一些核心概念 Flume的官方网站在哪里? Flume在哪里下载以及如何安装? 设置环境变 ...

  2. Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)

    目录: 一.什么是Flume? 1)flume的特点 2)flume的可靠性 3)flume的可恢复性 4)flume 的 一些核心概念 二.flume的官方网站在哪里? 三.在哪里下载? 四.如何安 ...

  3. linux下redis4.0.2安装与部署

    一.redis的介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更 ...

  4. Roller5.0.3安装配置部署 step by step

    一.下载roller 下载地址:http://roller.apache.org/downloads/downloads.html下载下来之后,解压包含两部份doc.webapps 二.准备环境 1. ...

  5. Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动

    The MySQL Connectors and APIs are the drivers and libraries that you use to connect applications in ...

  6. Storm-0.9.0.1安装部署 指导

    可以带着下面问题来阅读本文章: 1.Storm只支持什么传输 2.通过什么配置,可以更改Zookeeper默认端口 3.Storm UI必须和Storm Nimbus部署在同一台机器上,UI无法正常工 ...

  7. kafka_2.11-2.0.0_安装部署

    参考博文:kafka 配置文件参数详解 参考博文:Kafka[第一篇]Kafka集群搭建 参考博文:如何为Kafka集群选择合适的Partitions数量 参考博文:Kafka Server.prop ...

  8. Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点

    Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点 一.安装docker 执行代码如下: curl -sSL https://get.daocloud.io ...

  9. CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  10. 大数据篇:DolphinScheduler-1.2.0.release安装部署

    大数据篇:DolphinScheduler-1.2.0.release安装部署 1 配置jdk #查看命令 rpm -qa | grep java #删除命令 rpm -e --nodeps xxx ...

随机推荐

  1. redis连接池参数动态化

    有的时候要从后端获取数据,真实的key可能在参数之上做一些修改,查了下set-misc模块,set_unescape_uri命令支持变量替换 location ~ /get_redis$ {      ...

  2. ScheduledExecutorService定时任务学习

    scheduleAtFixedRate :每隔Xs执行任务 scheduleWithFixedDelay :上轮任务结束后的Xs后执行下次任务 如下是测试代码,就是at和with方法不同 public ...

  3. adrci清理日志

    adrci> show home adrci> set home diag/rdbms/mesp/MESP adrci> help purge adrci> purge -ag ...

  4. css定位于xpath的区别

    css选择  是依据页面的数据样式定位的, 有标签选择, 类选择, id选择, 或者他们的交并集, 除此之外没有其他的辅助元素了 xpath  是路径表达式,所有元素和内容都可以成为路径的一部分. 两 ...

  5. Kafka消费与心跳机制

    1.概述 最近有同学咨询Kafka的消费和心跳机制,今天笔者将通过这篇博客来逐一介绍这些内容. 2.内容 2.1 Kafka消费 首先,我们来看看消费.Kafka提供了非常简单的消费API,使用者只需 ...

  6. Markdown 1.0.1

    简介 Markdown 是由 John Gruber 于2004年开发一种轻量级标记语言,它是一个面向web作者的 text-to-HTML 转换工具.Markdown编辑器允许您使用纯文本格式编写, ...

  7. spark-1-架构设计&基本流程

    Spark运行架构包括: (1)集群资源管理器(Cluster Manager) (2)运行作业任务的工作节点(Worker Node) (3)每个应用的任务控制节点(Driver)和每个工作节点上负 ...

  8. golang go语言 实现链表

    package main import ( "errors" "fmt" "strconv" ) type List struct { Le ...

  9. 实验 5:OpenFlow 协议分析和 OpenDaylight 安装

    一.实验目的 回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接;通过抓包获取 OpenFlow 协议,验证 OpenFlow 协议和版本,了解协议内容 ...

  10. Java知识系统回顾整理01基础05控制流程02 switch

    一.switch switch 语句相当于 if else的另一种表达方式 switch可以使用byte,short,int,char,String,enum 注: 每个表达式结束,都应该有一个bre ...