RuoyiCloudPlus结合SkyWalking-9.4.0 docker部署流程

news2024/12/23 6:45:20

一、SkyWalking-9.4.0 docker部署流程

  • docker-compse.yml
  sky-oap:
    image: apache/skywalking-oap-server:9.3.0
    container_name: ruoyi-sky-oap
    ports:
      - "11800:11800"
      - "12800:12800"
    environment:
      JAVA_OPTS: -Xms1G -Xmx2G
      #记录数据的有效期,单位天
      SW_CORE_RECORD_DATA_TTL: 7
      #分析指标数据的有效期,单位天
      SW_CORE_METRICS_DATA_TTL: 7
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: 192.168.1.8:9200
      TZ: Asia/Shanghai
    #network_mode: "host"

  sky-ui:
    image: apache/skywalking-ui:9.3.0
    container_name: ruoyi-sky-ui
    ports:
      - "18080:18080"
    environment:
      SW_SERVER_PORT: 18080
      SW_OAP_ADDRESS: http://192.168.1.8:12800
      #SW_ZIPKIN_ADDRESS: http://oap:9412
      TZ: Asia/Shanghai
    depends_on:
      - sky-oap
    links:
      - sky-oap
    #network_mode: "host"
  • 因为要将数据存储在es,以下给出es docker-compose文件
version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - TZ=Asia/Shanghai
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
    volumes:
      - /home/elasticsearch/data:/usr/share/elasticsearch/data
    ulimits:
      memlock:
        soft: -1
        hard: -1
  • 如果OAP报如下错
oap  | 2023-06-14 01:18:55,913 org.apache.skywalking.oap.server.core.storage.model.ModelInstaller 54 [main] INFO  [] - table: ui_template does not exist
oap  | 2023-06-14 01:18:55,960 org.apache.skywalking.oap.server.core.storage.model.ModelInstaller 54 [main] INFO  [] - table: zipkin_span does not exist
oap  | 2023-06-14 01:18:56,017 org.apache.skywalking.library.elasticsearch.client.TemplateClient 139 [armeria-eventloop-epoll-6-3] ERROR [] - [9.4.0-520d531] Failed to create / update index template sw_zipkin_span
oap  | java.util.concurrent.CompletionException: java.lang.RuntimeException: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"composable template [sw_zipkin_span] template after composition is invalid"}],"type":"illegal_argument_exception","reason":"composable template [sw_zipkin_span] template after composition is invalid","caused_by":{"type":"illegal_argument_exception","reason":"invalid composite mappings for [sw_zipkin_span]","caused_by":{"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: analyzer [oap_analyzer] has not been configured in mappings","caused_by":{"type":"illegal_argument_exception","reason":"analyzer [oap_analyzer] has not been configured in mappings"}}}},"status":400}

在官方issue中找到解答,由于挂载的es目录为原来8.7.0版本生成及采集的数据,导致es初始化数据失败,需要删除原目录数据/home/elasticsearch/data或者重新指定文件目录即可。

二、集成RuoyiCloudPlus

  1. 下载java探针

这里使用最新8.16.0版本的java-gent客户端,配置文件在config/agent.config,参考配置文档https://skywalking.apache.org/docs/skywalking-java/v8.16.0/en/setup/service-agent/java-agent/configurations/

  1. 普通的java文件,启动jar包配置命令如下
-javaagent:/home/skywalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=test::服务名 -Dskywalking.collector.backend_service=192.168.24.22:11800
  1. 结合Dockerfile及容器docker-compose,制作微服务镜像
  • Dockerfile
FROM anapsix/alpine-java:8_server-jre_unlimited

RUN mkdir -p /ruoyi/system/logs \
    /ruoyi/system/temp \
    /ruoyi/skywalking/agent

WORKDIR /ruoyi/system

ENV SERVER_PORT=9201

EXPOSE ${SERVER_PORT}

# 拷贝打包后的jar到容器内
ADD ./target/ruoyi-system.jar ./app.jar

ENTRYPOINT ["java", \
            "-Djava.security.egd=file:/dev/./urandom", \
            "-Dserver.port=${SERVER_PORT}", \
            "-Dskywalking.agent.service_name=ruoyi-system", \
#指定探针数据上报的网络地址
            "-Dskywalking.collector.backend_service=192.168.1.8:11800", \
#该句只是指定配置,真正的探针文件在部署服务时,在docker-compose中指定
            "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \
            "-jar", "app.jar"]
  • docker-compose
  ruoyi-gateway:
    image: ruoyi/ruoyi-gateway:1.6.0
    container_name: ruoyi-gateway
    environment:
      # 时区上海
      TZ: Asia/Shanghai
    ports:
      - "8080:8080"
    volumes:
      # 配置文件
      - /docker/ruoyi-gateway/logs/:/ruoyi/gateway/logs
      # 指定skywalking 探针位置
      - /docker/skywalking/agent/:/ruoyi/skywalking/agent
    privileged: true
    #network_mode: "host"
  • 启动gateway微服务模块后,发起请求,便可以在sky-ui中看到数据

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

删除有序链表中的重复元素II——牛客24

题目描述 法一)直接删除法 class Solution{ public:ListNode* deleteDuplicates(ListNode* head) {if(headNULL) return NULL;ListNode* dummy new ListNode(0);dummy->next head;ListNode* cur dummy;while(cur->next!NULL && cur->next->n…

如何使用jmeter进行接口测试?jmeter接口测试流程是怎样的

前言 我们学习自动化测试都会用到不同的工具,那么今天笔者呢,想给大家聊聊Jmeter接口测试流程详解,废话不多说直接进入正题。 一、jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以&am…

【UE4 C++】01-Visual Studio 2019社区版安装

目录 步骤 一、下载安装包 二、安装 步骤 一、下载安装包 官网目前Visual Studio是2022版本,我们需要下载Visual Studio老版本: Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 二、安装 双击运行安装包后,在打开的界面…

Flutter开发技巧:Android Studio快速生成Dart文件

自定义文件模板 Android Studio 设置路径:Android Studio | Preferences | 搜索Templates | File and Code Templates | Dart File 设置步骤如下图: 模版代码 import package:flutter/material.dart; /*** author[${USER}]* version[创建日期&#xff…

基于matlab在多光谱影像中查找植被(附源码)

一、前言 此示例演示如何使用 MATLAB数组算法来处理图像和绘制图像数据。特别是,此示例使用三维图像阵列,其中三个平面表示来自电磁频谱不同部分的图像信号,包括可见的红色和近红外 (NIR) 通道。 影像数据差异可用于…

数据库-SQL-DML语句

文章目录 DML语句添加数据修改数据DML-删除数据 DML语句 添加数据 表的结构 修改数据 DML-删除数据 DML-总结:

数字美容的艺术:深入探讨面部美化算法和人脸美型SDK

在当今社交媒体和自拍热潮的背景下,数字美容成为了许多人追求面部完美外貌的选择。通过面部美化算法和人脸美型SDK,人们可以在瞬间实现肌肤光滑、五官精致的效果。然而,这种技术的背后隐藏着怎样的原理和技术手段?本文将深入探讨面…

Elasticsearch索引库、文档操作

一、索引库操作 1、创建索引库: #创建索引库 PUT /索引库名 {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},"email":{"type": "…

【高级程序设计语言C++】 C++基础知识

1.1 C关键字1.2 命名空间1.2.1命名空间定义1.2.2命名空间的使用 1.3缺省参数1.3.1缺省参数分类 1.4函数的重载1.5.引用1.5.1引用的用法1.引用做参数2.引用返回 1.5.2 常引用 1.6 传值和传引用的区别1.7 引用和指针的区别1.8 auto关键字auto的使用细则 1.1 C关键字 C的关键字共…

vgg16-pytorch

基于pytorch实现VGG16模型 刚听完土哥的入门pytorch,试着写一个不完善的vgg16 VGG16具体的架构: VGG16模型构建: 卷积池化后尺寸计算公式: 引入库: from torch import nn from torch.nn.modules.flatten import Flattendil…

初识stm32

1、什么是单片机? 单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处 理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功 能(可能还包括显示驱动电路、…

WHERE条件和ON条件的区别

目录 总结: 1.inner join方式关联 2.left join方式关联 实例 1.建表 2.left join 主表的on和where条件 3.left join 关联表的on和where条件 总结: 1.inner join方式关联 on条件(无论是对主表字段的限制还是对关联表字段的限制&#…

9种流程优化方法,提升业务效率!

编者按:简化工作流程、不断发现工作流程中的错误并有效整合、提高内部团队成员和客户的满意度,是当今每个企业、每个管理者乃至每个员工的共同责任。流程优化是永无止境的。本文回顾了流程优化的概念,详述了流程优化给业务带来的好处以及 9 种…

期货交易策略与技术分析经验总结

期货交易是一种金融衍生品,它是指在未来某个特定的时间和地点,按照事先约定的价格和数量,买卖某种标的物的合约。期货交易具有高杠杆、高风险、高收益的特点,因此需要有一定的交易策略和操作技巧,才能在市场中取得成功…

Qt中的信号与槽(Signals and Slots)

Qt中的信号与槽(Signals and Slots)是一种用于对象间通信的机制,常用于处理用户界面事件和数据更新等情况。通过信号与槽,可以实现对象之间的解耦和灵活的交互。 信号(Signal)是对象发出的事件或通知&…

肥肠恐布--探索Kali Linux中的Metasploit Framework(MSF听说肾透大佬经常用)

请注意,在使用Metasploit Framework进行渗透测试和漏洞利用时,务必遵守合法和授权的原则,此文仅供大家学习参考,请确保您获得了适当的授权,并遵守法律和合规性要求。非法使用和滥用导致严重的法律后果自负。 目录 前言…

mac使用conda(anaconda和miniconda一样)安装新版本的torch

使用pytorch给的命令行下载会很慢,因此我们应该修改镜像源,然后再下载torch 1.添加镜像 在终端输入以下命令,添加镜像: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda conf…

【HMS Core】Health Kit 睡眠各统计类型怎么定义的?有什么区别?

【问题描述】 1、睡眠各统计类型怎么定义的?有什么区别? 2、睡眠状态有5种,各个状态的详细定义是什么? 【解决方案】 1、①科学睡眠,会对睡眠数据进行分析,计算得分等,在连接穿戴设备的前提下…

【AGC】性能管理服务报502问题

【关键字】 AGC、性能管理、502 【问题描述】 有开发者反馈在使用AGC性能管理服务报502错误,接入了analytic sdk 是正常的上报分析数据,但尝试接入apms时出现无法上报情况。 日志截图如下,可以看到分析服务是正常的200上报了数据&#xff…

【Python爬虫与数据分析】Jupyter的安装与快捷键

目录 一、jupyter notebook安装与配置 二、命令模式快捷键 三、编辑模式快捷键 四、文件操作 一、jupyter notebook安装与配置 安装:Jupyter Notebook是以网页的形式打开的一个程序,集成在Anaconda包里面,也可以直接安装python3解释器&a…