通过docker搭建skywalking

2023-11-13

简述

这里引用skywalking官方网站上简介:分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

环境准备

skywalking有多种安装方式,这里我通过docker-compose进行安装,因为skywalking官方提供了自己的docker镜像,通过docker-compose进行安装省时又省力。skywalking官方地址:http://skywalking.apache.org/zh/

1、下载sky安装包,这里我使用的是skywalking6.4.0版本

https://www.apache.org/dyn/closer.cgi/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gz

2、解压安装包,解压后安装包中提供了skywalking的所有版本

进入到6.4这个目录后,你会发现有多个目录,包含“base”基础镜像目录、“compose”docker-compose安装目录、oap和ui分别为skywalking的后台服务安装镜像和前端服务安装镜像,这里我选用通过compose来进行skywalking的容器化部署。

3、通过docker-compose.yml进行容器化部署

进入compose目录,打开docker-compose.yml文件

docker-compose.yml中的内容如下所示, 文件中部署了elasticsearch、oap、ui三个容器化服务,elasticsearch作为oap的数据源头(当然skywalking也提供其他类型的数据源如:h2、mysql),oap为后台服务主要提供收据收集日志搜索等服务具体详见官网,ui为前端服务包含UI界面,如果不需要其他特殊配置可以直接该compose文件进行容器化部署,比如有自己的elasticsearch服务就可以从该文件中将elasticsearch容器相关的内容去掉。

version: '3.3'

services:

  elasticsearch:

    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.1

    container_name: elasticsearch

    restart: always

    ports:

      - 9200:9200

      - 9300:9300

    environment:

      - discovery.type=single-node

      - bootstrap.memory_lock=true

      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

    ulimits:

      memlock:

        soft: -1

        hard: -1

  oap:

    image: apache/skywalking-oap-server:6.4.0

    container_name: oap

    depends_on:

      - elasticsearch

    links:

      - elasticsearch

    restart: always

    ports:

      - 11800:11800

      - 12800:12800

    environment:

      SW_STORAGE: elasticsearch

      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200

  ui:

    image: apache/skywalking-ui:6.4.0

    container_name: ui

    depends_on:

      - oap

    links:

      - oap

    restart: always

    ports:

      - 8080:8080

    environment:

      SW_OAP_ADDRESS: oap:12800

 

 4、部署容器的相关命令,前提是本地已经安装好了docker相关的环境

在compose目录下执行以下命令

 docker-compose -f docker-compose.yml up -d

下图说明docker已经开始部署,因为我本地并非第一次部署所以如下图所示显示的过程比较简单,如果是第一次部署会进行docker镜像的下载时间会长些 

 执行“docker ps”命令,查看docker 是否部署成功(我这里使用我本地自己安装的elasticsearch,所以我没有进行elasticearch的容器部署)

 在本地浏览器中访问:localhost:8080,打开skywalking的管理界面

5、这里我为了修改方便将oap的配置文件挂载到了宿主机的相关目录下

该步骤需要在docker-compose.yml文件中做如下修改

volumes:  

    - /home/skywalking/config:/skywalking/config 

skywalking的相关配置文件如下,其中application.yml可配置数据源、skywalking的系统参数等(具体请参考官方文档说明),alarm-setting.yml可以配置一些告警规则:

 6、将服务的相关数据接入到skywalking中,因为我们的服务都是通过java语言开发的spring boot微服务,所有需要将skywalking提供的agent包整个拷贝到项目目录下

进入agent目录进行相关配置,具体如:找到agent/config/目录下的agent.config

# The agent namespace

# agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}

 

# The service name in UI,这里是在skywalking界面上显示的服务名称,我的服务叫“TEST”

agent.service_name=${SW_AGENT_NAME:TEST}

 

# The number of sampled traces per 3 seconds

# Negative number means sample traces as many as possible, most likely 100%

# agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

 

# Authentication active is based on backend setting, see application.yml for more details.

# agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}

 

# The max amount of spans in a single segment.

# Through this config item, skywalking keep your application memory cost estimated.

# agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:300}

 

# Ignore the segments if their operation names end with these suffix.

# agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}

 

# If true, skywalking agent will save all instrumented classes files in `/debugging` folder.

# Skywalking team may ask for these files in order to resolve compatible problem.

# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true}

 

# The operationName max length

# agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:500}

 

# Backend service addresses.这里是oap服务所在的服务器地址

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

 

# Logging file_name

logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}

 

# Logging level

logging.level=${SW_LOGGING_LEVEL:DEBUG}

 

# Logging dir

# logging.dir=${SW_LOGGING_DIR:""}

 

# Logging max_file_size, default: 300 * 1024 * 1024 = 314572800

# logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800}

 

# mysql plugin configuration

# plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS:false}

配置完成后通过以下命令启动项目,在启动命令中加“-javaagent:/home/agent/skywalking-agent.jar”参数:

java -jar -javaagent:/home/agent/skywalking-agent.jar test.jar 

这里整个skywalking已经搭建完成。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过docker搭建skywalking 的相关文章

  • B站S11破亿直播在线稳定性保障秘籍——演讲实录

    英雄联盟 S11全球总决赛 决赛中国战队夺冠 赛事直播盛况空前 观赛人数破亿 B站作为英雄联盟2021全球总决赛直播独家版权方不仅在整个比赛过程中保证了直播整体总体运行的平稳 还抗住了超预期的流量 如此大型的直播活动 B站究竟是如何保障系统
  • Eureka与Zookeeper的区别

    著名的CAP 理论指出 一个分布式系统不可能同时满足 C 一致性 A 可用性 和 P 分区容错性 由于分区容错性在是分布式系统中必须要保证的 因此我们只能在 A 和 C 之间进行权衡 在此 Zookeeper 保证的是 CP 而 Eurek
  • 微服务契约测试框架-Pact

    契约测试 契约测试的思想就是将原本的 Consumer 与 Provider 间同步的集成测试 通过契约进行解耦 变成 Consumer 与 Provider 端两个各自独立的 异步的单元测试 契约测试的优点 契约测试与单元测试以及其它测试
  • Nacos手动注册,Nacos内网IP的解决办法,自动获取外网注册服务

    Nacos内网IP的解决办法 自动获取外网注册服务 废话不说 直接上代码 pom文件
  • K8s微服务从0到1入门及命令实战

    写在前面 本文主要介绍k8s的核心概念 基础语法 常用命令和常用操作 Kubernetes介绍 Kubernetes是一种流行的开源容器编排和管理系统 它的目标是简化部署 扩展和管理容器化应用程序 Kubernetes最初由Google开发
  • 【微服务】一张图搞懂微服务架构设计

    一张图搞懂微服务架构设计 1 前言 2 流量入口 Nginx 3 网关 4 业务组件 5 服务注册中心 6 缓存和分布式锁 7 数据持久层 8 结构型数据存储 9 消息中间件 10 日志收集 11 任务调度中心 12 分布式对象存储 1 前
  • Springboot项目在Jenkins+Docker中实现自动化部署

    Springboot项目在Jenkins Docker中实现自动化部署 一 环境准备 1 项目开发环境 2 Jenkins docker运行环境 二 Docker安装 三 Jenkins安装 四 创建一个Springboot项目 1 使用I
  • [qiankun]实战问题汇总

    qiankun 实战问题汇总 ERROR SyntaxError Cannot use import statement outside a module 问题分析 解决方案 子应用命名问题 问题分析 解决方案 jsonpFunction
  • Dubbo快速入门

    文章目录 一 初识Dubbo 1 Dubbo是什么 2 Dubbo现状 3 Dubbo的故事 主要历程 二 RPC介绍 三 Dubbo工作原理 四 案例实操 项目编写 1 项目创建 2 服务提供者 producer 的开发 3 服务消费方
  • 云原生热门话题|什么是可观测性-Observability

    code杂坛 关注一线大厂 互联网时讯 各技术栈 产品 开源社区 等最新讯息 1 可观测性引入 可观测性 术语源于几十年前的控制理论 在许多实际问题中 控制系统的状态变量不是由直接测量得到的 而是通过某种观测方法得到的 由某种观测系统所得到
  • 为分布式做准备吧——分布式服务架构设计概述

    文章目录 分布式服务框架设计架构原理 通信框架 长连接还是短链接 BIO还是NIO 序列化与反序列化 协议栈 服务路由 基于服务注册中心的订阅发布 集群容错 服务降级 分布式消息跟踪 分布式服务框架设计架构原理 通常 分布式服务框架的架构可
  • 只要 3 个注解,优雅的实现微服务鉴权!

    原创 不才陈某 码猿技术专栏 2023 04 17 08 50 发表于山东 大家好 我是不才陈某 前面的文章中介绍了网关集成Spring Security实现网关层面的统一的认证鉴权 有不清楚的可以看之前的文章 实战干货 Spring Cl
  • SpringCloudGateway路由策略:Nacos同集群优先

    使用版本
  • 【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付

    在前面我们业务功能篇98 99中 我们介绍了电商项目中的订单模块服务 那么最后就是需要进行支付动作 那么我们这里就通过订阅第三方平台支付宝的支付调用接口功能 来进一步完成订单提交后的支付动作 支付宝的接口使用可以登录官网开发指南详情去了解
  • 微服务项目之项目简介

    目录 项目模式 技术栈 项目架构图 模块 主模块 项目模式 电商模式 市面上有5种常见的电商模式 B2B B2C C2B C2C O2O 1 B2B模式 B2B Business to Business 是指 商家与商家建立的商业关系 如
  • SpringBoot启动微服务报错Consider defining a bean of type ‘org.springframework.data.redis.core.RedisTemplate

    最近遇到一个问题 项目之前使用了Redis 可正常启动 然后最近对Redis部分进行了一些微调 再启动服务提示如下错误 Consider defining a bean of type org springframework data re
  • GoLong的学习之路,进阶,微服务之序列化协议,Protocol Buffers V3

    这章是接上一章 使用 RPC包 序列化中没有详细去讲 因为这一块需要看的和学习的地方很多 并且这一块是RPC中可以说是最重要的一块 也是性能的重要影响因子 今天这篇主要会讲其使用方式 文章目录 Protocol Buffers V3 背景以
  • 双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer

    前言 前两天 我收到了阿里巴巴的实习offer 从学长内推开始面试到拿到最后offer经历了4面技术 一面交叉面和一面HR面 经过了漫长的等待和几次几乎折磨的面试之后 终于拿到了实习offer 自我介绍 本人来自西南某双非本科学校 该校学的
  • 第六章--- 实现微服务:匹配系统(下)

    0 写在前面 这一章终于完了 但是收尾工作真的好难呀QAQ 可能是我初学的缘故 有些JAVA方面的特性不是很清楚 只能依葫芦画瓢地模仿着用 特别是JAVA的注解 感觉好多但又不是很懂其中的原理 只知道要在某个时候用某个注解 我真是有够菜的
  • 2023 年精选:每个 DevOps 团队都应该了解的 5 种微服务设计模式

    微服务彻底改变了应用程序开发世界 将大型整体系统分解为更小 更易于管理的组件 这种架构风格的特点是独立 松散耦合的服务 带来了从可扩展性 模块化到更高的灵活性等众多优势 DevOps 团队如何最好地利用这种方法来实现最高效率 答案在于理解并

随机推荐

  • 玩转ChatGPT:Excel操作初探

    一 写在前面 首先还是让小Chat推销下自己 Excel 表格制作是个技术活 你掌握了吗 没关系 现在有了 ChatGPT 让 Excel 辅助操作变得更简单 再也不用苦恼于数据分析和整理了 让 ChatGPT 成为你的数据处理助手 让 E
  • FISCO BCOS 区块链应用(五)结合WeBase开发区块链目录管理系统

    目录 前提条件及说明 1 1 搭建Fisco Bcos区块链底层平台 1 2 搭建java项目并引入 web3sdk 1 3 搭建WeBase区块链管理平台 应用开发 1合约设计 2代码实现 3合约编译 4 java SDK集成 应用端对接
  • linux系统 <linux/fs.h>头文件查找

    起因 因为在做模块实验时要对register chrdev函数绘画流程图 于是我就想着去找找看到底这个函数在哪 首先根据这个笔记来看 Linux内核API register chrdev 极客笔记 deepinout com 应该在linu
  • CJson-修改浮点数的位数

    现状 调用cJSON Print 将组成的json转为字符串格式时 对于浮点数的位数是不固定的 length sprintf char number buffer 1 15g d 源代码里用的是 1 15g 代表输出字符最少一位 最大15位
  • 【技术方案】springboot全局异常处理方式

    springboot全局异常处理方式 springboot全局异常有两种处理方式 第一种方案 继承DefaultErrorAttributes类 重写getErrorAttributes方法 代码如下 Slf4j RestControlle
  • SyntaxError: missing ) after argument list

    消息 语法错误 参数列表后面缺少 错误类型 SyntaxError 什么地方出错了 有一个函数在调用时出现错误 这可能是一个错误 丢失运算符或者转义字符等 示例 因为没有使用 操作符来连接字符串 JavaScript 认为 log 函数的参
  • Java 解析http返回的xml数据

    Java 解析http返回的xml数据 写成txt文件 需求 每小时抓取给定api接口返回的xml数据 把xml数据保存为XML文件 把xml数据转换txt文件格式数据 保存txt文件 文件名以yyyyMMddHH0000 txt和yyyy
  • FileZilla_Server快速搭建FTP服务器

    文档目的 介绍如何使用FileZilla Server软件在windows server服务器上搭建FTP服务器 注意 如果需要这个具及这个工具的视频操作教程 请点击 此处 下载 文档目的 介绍如何使用FileZilla Server软件在
  • CV第一篇:EDLines基础理论

    EDLines A real time line segment detector with a false detection control 简介 图像信息特征的描述大致分为角点特征 线特征和语义特征 点特征如harris sfit s
  • 关于C++ new和malloc的区别!

    一 前言 new和malloc的知识点 他们之间的关系 有什么异同 作为一个C 工程师是必须要了解清楚 在面试中该知识点也是经常会被问到的 所以在此文章 总结下new和malloc的区别到底在哪里 二 new和malloc两者的区别 2 1
  • java项目域名访问失败但IP访问正常

    1 域名访问失败但通过IP访问正常 发生此类型情况可能的原因如下 DNS 解析问题 域名访问失败可能是因为 DNS 解析出现了问题 导致域名无法解析成正确的 IP 地址 可以通过使用 nslookup 或 dig 命令来检查 DNS 解析是
  • 四种线程池拒绝策略

    一 前言 线程池 相信很多人都有用过 没用过相信的也有学习过 但是 线程池的拒绝策略 相信知道的人会少许多 二 四种线程池拒绝策略 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时 如果还有任务到来就会采
  • 墨者-SQL注入漏洞测试(报错盲注)

    墨者 SQL注入漏洞测试 前言 一 sqlmap 二 手注 1 报错注入 2 时间注入 3 联合查询union被过滤 总结 前言 本题为墨者学院在线靶场 进入题目发现是个登录界面 找了好久 最后在关于平台停机维护的通知的页面找到了注入点 判
  • Acwing 892. 台阶-Nim游戏

    此时我们需要将奇数台阶看做一个经典的Nim游戏 如果先手时奇数台阶上的值的异或值为0 则先手必败 反之必胜 证明 先手时 如果奇数台阶异或非0 根据经典Nim游戏 先手总有一种方式使奇数台阶异或为0 于是先手留了奇数台阶异或为0的状态给后手
  • (代码练习)1~100中出现数字9的个数---C语言

    出现9的数字有哪些 出现整十之前的数字就是含有9的数字 所以方法一 打印整十前面的数 运行结果 这种方法显得不够专业 而且漏掉了90及其以后十位为9的数 下面介绍方法二 思路 给一个循环从1遍历到100 拿到每个数据后进行一下操作 a 通过
  • MySQL-分库分表详解(三)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • 手动加载logback配置文件

    前言 自己写了个压测的main方法 这里主要介绍如果在main方法中输出logback日志 正文 import java io File import java io IOException import org slf4j LoggerF
  • 网站报错 :SLQSTATE[HY000]:General error:145 Table ‘./**@002******@/002ecn/ey_config‘ is mar

    后台使用过程中 因为某个操作而出现报错 SQLSTATE HY000 General error 145 Table 002 002ecn ey config is marked as crashed and should be repai
  • 《Linux运维实战:Centos7.6一键离线部署docker19.03.9》

    文章目录 一 部署背景 三 部署工具 三 部署演示 总结 整理不易 如果对你有帮助 可否点赞关注一下 一 部署背景 由于业务系统的特殊性 我们需要面向不通的客户安装我们的业务系统 而作为基础组件中的docker针对不同的客户环境需要多次部署
  • 通过docker搭建skywalking

    简述 这里引用skywalking官方网站上简介 分布式系统的应用程序性能监视工具 专为微服务 云原生架构和基于容器 Docker K8s Mesos 架构而设计 SkyWalking 是观察性分析平台和应用性能管理系统 提供分布式追踪 服