通过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 的相关文章

  • 汇编语言笔记-ARM架构基本寄存器

    文章目录 寄存器组 1 R0 R12 2 R13 3 R14 4 R15 特殊寄存器 程序状态寄存器 xPSR 中断 异常屏蔽寄存器 CONTROL寄存器 浮点寄存器 1 S0 S31和D0 D15 浮点状态和控制寄存器 FPSCR 浮点单

随机推荐

  • 玩转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 是观察性分析平台和应用性能管理系统 提供分布式追踪 服