Docker容器化部署(企业版)

大家好,webfunny前端监控埋点系统,已经正式发布了webfunny的官方镜像:

Webfunny镜像目录:https://hub.docker.com/r/webfunny/webfunny_monitor_cluster/tags

部署前提是你的服务器已经安装了Docker环境,没有安装docker环境的可以参考这篇安装文档

一、拉取官方镜像

执行命令$:docker pull webfunny/webfunny_monitor_cluster:0.0.8

二、创建配置文件

  1. 配置文件模板代码:模板代码

  2. 外部配置文件目录挂载容器里面的路径,如下:

本地配置文件:/app/webfunny.config/, 则映射目录为:/app/webfunny.config/

  1. 配置文件的参数说明文档。

三、填写基础配置

  1. 找到本地配置文件进行修改:/app/webfunny.config/index.js

  2. 填写授权码,如果没有,可以联系客服,微信号(webfunny2)

/**
* 授权码设置
* monitor:前端监控
* event: 埋点系统
* logger: 日志系统
* 配置更改后,需重启
*/
const licenseConfig = {
  "monitor": {
    "purchaseCode": "", // 监控系统授权码
    "secretCode": ""  // 解码(没有可不填)
  },
  "event": {
    "purchaseCode": "", // 埋点系统授权码
    "secretCode": ""  // 解码(没有可不填)
  }
}
  1. 填写数据库配置

  2. 创建msyql数据库 webfunny_db;

字符集设置:[Default Character set]:utf8、 [Default Collation]:utf8_bin

  1. 创建clickhouse数据库 webfunny_db;

注意:下方需要配置两处数据库

应用中心(center): 配 mysql数据库

监控系统(monitor)、埋点系统(event)、日志系统(logger): 配 clickhouse数据库

/**
* 数据库设置
* center: 应用中心数据库(mysql)
* monitor:前端监控数据库(clickhouse)
* event: 埋点系统数据库(clickhouse)
* logger: 日志系统数据库(clickhouse)
* monitor、event、logger 三个可以共用一台数据库
* 配置更改后,需重启
*/
const mysqlConfig = {
  // 应用中心(Mysql)
  "center": {
    "write": {
      "ip": "xx.xx.xx.xx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "webfunny",
      "password": "12345678"
    },
    "read": []
  },
  // 监控(Clickhouse)
  "monitor": {
    "write": {
      "ip": "xx.xx.xx.xx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "webfunny",
      "password": "12345678"
    },
    "read": []
  },
  // 埋点(Clickhouse)
  "event": {
    "write": {
      "ip": "xx.xx.xx.xx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "webfunny",
      "password": "12345678"
    },
    "read": []
  },
  // 日志(Clickhouse)
  "logger": {
    "write": {
      "ip": "",
      "port": "",
      "dataBaseName": "",
      "userName": "",
      "password": ""
    },
    "read": []
  }
}
  1. 配置域名和端口号,如何配置?请参考文档的第四步:服务器部署

进入本地/app/webfunny.config/index.js

/**
* 域名端口设置
* 配置更改后,需重启
*/
const domainConfig = {
  "host": {
    "fe": "localhost:9010", // 前端访问域名
    "be": "localhost:9011"  // 后端接口域名
  },
  "port": {
    "fe": "9010",  // 前端启动端口号
    "be": "9011"   // 后端启动端口号
  },
  "uploadDomain": {
    "monitor": "", // 指定监控系统上报域名
    "event": ""    // 指定埋点系统上报域名
  },
}
5. 其他相关配置

/**
* 其他相关设置
* 配置更改后,需重启
*/
const otherConfig = {
  "email": {
    "useCusEmailSys": false, // 是否使用用户自己公司的邮箱系统
    "emailUser": "",         // 邮箱
    "emailPassword": ""      // 密码
  },
  "protocol": "",            // 内部通讯协议(一般用不上)
  "segmentUrl": "",          // segment 上报地址,对接skyWalking
  "messageQueue": false,     // 是否开启消息队列
  "openMonitor": true,       // 是否开启可视化页面的监控
  "uploadServerErrorToWebfunny": true, // 是否上报后端错误日志至logger服务(推荐开启,便于排查问题)
  "logSaveDays": 8,          // 日志存储周期
  "isOpenTodayStatistic": true, // 
  "business": {
    "batchInsert": {
      "limitQueueLength": 1000  // 一次批量插入最大数量
    },
    "userStayTimeScope": {      // 记录停留时间范围(即将废弃)
      "min": 100,
      "max": 100000
    }
  },
  "registerEntry": true,        // 是否允许注册
  "resetPwdEntry": true,        // 是否允许重置密码
  "ssoCheckUrl": "",            // SSO校验URL
  "activationRequired": false,  // 注册用户是否需要管理员激活
  "emailNeeded": {
    "need": true,               // 注册时,是否需要邮箱
    "requireVerify": true       // 注册时,是否需要验证邮箱的有效性
  },
  "phoneNeeded": {
    "need": true,               // 注册时,是否需要手机号
    "requireVerify": false      // 注册时,是否需要验证手机号的有效性
  },
  "extraCors": {                // 额外的cors配置
    "headers": ""
  },
}
  1. 配置生产环境,搭配nginx配置域名,代理配置可以参考文档:nginx代理配置

四、启动容器

  1. 执行启动命令之前,需要替换一下映射目录和版本号,按照文档的示例,对应值如下:

本地目录 -> /app/webfunny.config/

版本号 -> 0.0.8

  1. 三种方式启动$:

第一种:多行命令

docker run -it --rm -d --name webfunny_cluster \
       -p 9010:9010 \
       -p 9011:9011 \
       -v 本地目录:/app/webfunny.config/ \
       webfunny/webfunny_monitor_cluster:版本号

第二种:单行命令

```clike
docker run -it --rm -d --name webfunny_cluster -p 9010:9010 -p 9011:9011 -v 本地目录:/app/webfunny.config/ webfunny/webfunny_monitor_cluster:版本号

第三种:docker-compose方式启动,yml文件配置:

# 将此yml文件上传服务器,执行启动命令 docker-compose -f ./docker-compose.yml up
version: '2'
services:
  webfunny_monitor_cluster:
    image: webfunny/webfunny_monitor_cluster:版本号
    restart: always
    container_name: webfunny_cluster
    volumes:
      - 本地目录:/app/webfunny.config/
    ports:
      - 9010:9010
      - 9011:9011

启动slave命令:


```clike
docker run -it --rm -d --name webfunny_cluster \
       -p 9010:9010 \
       -p 9011:9011 \
       -v 本地目录:/app/webfunny.config/ \
       webfunny/webfunny_monitor_cluster:版本号 \
       npm run monitor_slave
  1. 查看容器情况 : d o c k e r c o n t a i n e r l s ; 进入启动的容器 :docker container ls ; 进入启动的容器 dockercontainerls;进入启动的容器:docker exec -it 容器id /bin/bash

  2. 访问页面:

此时,可以直接访问应用中心首页了

应用中心首页: http://localhost:9010/wf_center/main.html

五、容器的其他常用操作指令

拉取镜像:docker pull webfunny/webfunny_monitor_cluster:版本号

查看镜像:docker images

删除镜像:docker rmi -f 镜像id

查看容器:docker container ls , docker container ls —all

删除容器:docker container kill 容器id

启动容器:docker start 容器id

停止容器:docker stop 容器id

重启容器:docker restart 容器id

进入容器:docker exec -it 容器id /bin/bash

写在最后、以上就是webfunny前端监控Docker容器化部署(企业版)。PS: 如果你是前端工程师同学,欢迎试用体验【webfunny前端监控系统】。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

车载电子电器架构 —— 售后诊断开发

车载电子电器架构 —— 售后诊断开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

OpenCV——Niblack局部阈值二值化方法

目录 一、Niblack算法1、算法概述2、参考文献二、代码实现三、结果展示OpenCV——Niblack局部阈值二值化方法由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、Niblack算法 1、算法概述 Niblack 算法是一种典型的局部阈值…

SpringMVC深解--一起学习吧之架构

SpringMVC的工作原理主要基于请求驱动,它采用了前端控制器模式来进行设计。以下是SpringMVC工作原理的详细解释: 请求接收与分发: 当用户发送一个请求到Web服务器时,这个请求首先会被SpringMVC的前端控制器(Dispatche…

VUE识别图片文字OCR(tesseract.js)

效果:1&#xff1a; 效果图2&#xff1a; 一、安装tesseract.js npm i tesseract.js 二、静态页面实现 <template><div><div style"marginTop:100px"><input change"handleChage" type"file" id"image-input"…

【数据结构项目】通讯录

个人主页点这里~ 原文件在gitee里~ 通讯录的实现 基于动态顺序表实现通讯录项目1、功能要求2、代码实现file.hfile.cList.hList.ctest.c 基于动态顺序表实现通讯录项目 准备&#xff1a;结构体、动态内存管理、顺序表、文件操作 1、功能要求 ①能够存储100个人的通讯信息 ②…

Xilinx 7系列FPGA全局时钟缓冲器基本单元

Global Clock Buffer Primitives&#xff08;全局时钟缓冲器基本单元&#xff09;在FPGA&#xff08;现场可编程门阵列&#xff09;和其他数字系统中扮演着至关重要的角色。这些基本单元被设计用于处理、分配和增强时钟信号&#xff0c;以确保系统中的各个组件都能以精确和同步…

【Hadoop】- YARN架构[7]

前言 Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分&#xff0c;主要用于解决Hadoop中的资源管理问题。 通过使用Yarn架构&#xff0c;Hadoop集群中的不同应用程序可以共享集群资源&#xff0c;并根据需要动态分配和回收资源。这种灵活的资…

4.21java聊天室项目小结

基本完成了用户的登录注册功能&#xff0c;可以实现用户账号登录和邮箱登录功能&#xff0c;忘记密码通过邮箱发送验证码找回&#xff0c;注册账号功能&#xff0c;并传递给客户端更新数据库的表内容 注册功能&#xff1a; 注册成功后密码进行MD5加密并通过服务器保存到数据库…

【STM32F4】STM32CUMX相关环境配置

一、环境配置 我们需要以下两个软件 &#xff08;一&#xff09;keil5 最正统&#xff0c;最经典的嵌入式MCU开发环境。 该环境的配置可以看看之前的文章 所需文件如下&#xff1a; 当时配置的是STC8H的环境&#xff0c;现在基于此&#xff0c;重新给STM32配置环境。能让STC…

Tricentis测试生成式人工智能系统和红队:入门指南

Tricentis测试生成式人工智能系统和红队:入门指南 测试人工智能并确保其责任、安全和保障的话题从未如此紧迫。自 2021 年以来,人工智能滥用的争议和事件增加了26 倍,凸显了日益增长的担忧。用户很快就会发现,人工智能工具并非万无一失。他们可能会表现出过度自信,并且缺…

ChatGPT研究论文提示词集合2-【形成假设、设计研究方法】

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 目录 1.形成假设 2.设计研究方法 3.书籍介绍 AIPaperPass智能论文写作平台 近期小编按照学术论文的流程&#xff0c;精心准备一套学术研究各个流程的提示词集合。总共14个步骤&#…

11.接口自动化学习-Yaml学习

1.配置文件作用 配置文件项目角度&#xff1a; &#xff08;1&#xff09;现成的应用–第三方组件 mysql–数据库–my.conf tomcat–web服务器–server.xml 修改&#xff1a;连接数/端口 redis–缓存服务器–redis.conf 修改配置 jemeter–压测工具–jemeter.properties–修改…

PHP反序列化漏洞原理(附带pikachu靶场演示)

1.反序列化概念 序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()反序列化:就是在适当的时候把这个字符串再转化成原来的变量使用&#xff0c;就是序列化的逆过程。实现函数是unserialize() 直白一点就是&#xff1a;序列化是把对象转换成字节流&#…

SpringMVC--RESTful

1. RESTful 1.1. RESTful简介 REST&#xff1a;Representational State Transfer&#xff0c;表现层资源状态转移。 RESTful是一种网络架构风格&#xff0c;它定义了如何通过网络进行数据的交互。这种风格基于HTTP协议&#xff0c;使得网络应用之间的通信变得更加简洁和高效。…

python爬虫--------requests案列(二十七天)

兄弟姐们&#xff0c;大家好哇&#xff01;我是喔的嘛呀。今天我们一起来学习requests案列。 一、requests____cookie登录古诗文网 1、首先想要模拟登录&#xff0c;就必须要获取登录表单数据 登录完之后点f12&#xff0c;然后点击network&#xff0c;最上面那个就是登录接口…

数据结构––kmp算法(串)

kmp算法作为串的一个重要内容&#xff0c;必然有一定的难度&#xff0c;而在看到各类教辅书里的概念与解释后&#xff0c;其晦涩难懂的内容直接劝退一部分人&#xff0c;现在&#xff0c;让我们来看看吧 KMP解决的问题类型 KMP算法的作用就是在一个已知的字符串中查找子串的位…

布控球——防爆监控设备

控球&#xff0c;作为一种专为特定场景设计的防爆监控设备&#xff0c;主要用于在高风险、易燃易爆等特殊环境中提供实时、安全、高效的视频监控服务。其主要特点和功能如下&#xff1a; 防爆性能&#xff1a;布控球首先具备出色的防爆能力&#xff0c;外壳通常采用高强度、耐高…

解开Intel ECI 的面纱

前言 Intel ECI是一个用于工业领域边缘控制的软硬件平台&#xff0c;我们今天主要探索的是软件部分&#xff0c;也就是系统镜像。区别于传统的Ubuntu或者Debian&#xff0c;ECI的强大之处在于它的实时性以及对于Intel自家芯片的缓存优化能力极强。 那么让我们来探索一下 编译…

学习51单片机 C语言知识

一、数据类型 C 语言包含的数据类型如下图所示 C51 的数据类型分为基本数据类型和组合数据类型&#xff0c;情况与标准 C 中的数据类型基本相同&#xff0c;但其中 char 型与 short 型相同&#xff0c;float 型与 double 型相同&#xff0c;另外&#xff0c;C51 中还有专门针…

2、JVM 类加载机制深度剖析

今天我们就来看看JVM的类加载机制到底是怎么样的&#xff0c;搞清楚这个过程了&#xff0c;那么以后在面试时&#xff0c;对面试官常问的JVM类加载机制&#xff0c;就能把一些核心概念说清楚了。 2.1、JVM在什么情况下会加载一个类&#xff1f; 类加载过程虽然繁琐复杂&#…