线上部署(监控系统)

一步一个脚印一个坑 1年前 ⋅ 1556 阅读
ad

环境要求

安装NodeJS,版本要求:14.16.1及以上, 17.0以下。

安装pm2,版本目前无要求;

安装git,版本目前无要求;

配置要求、压力测试

最低配置要求:Linux服务器:1台,CentOs系统,2核4G;Mysql数据库:1台,2核4G。

专业版压力测试:2核CPU(3.8GH), 4G内存,单点部署,最高峰支持2.8万/分钟的日志并发量。超过3万/分钟后,会出现日志丢失的情况(此压力值测试供参考)

第一步、下载(clone)最新部署包,初始化

企业版地址(Clickhouse)

Github克隆:'  git clone https://github.com/a597873885/webfunny_monitor.git  '

Gitee克隆(国内地址):'  git clone https://gitee.com/webfunnyMonitor/webfunny_monitor.git  '
专业版本地部署
初始化命令
1.在项目根目录下执行初始化命令和安装命令$:

  建议切换淘宝镜像:' npm config set registry https://registry.npmmirror.com/ '

  a. 安装依赖包:' npm install '
  b. 生成基础配置文件:' npm run bootstrap '

2.确认是否安装了pm2,如果没有安装pm2,请执行安装命令$:' npm install pm2 -g '

第二步、专业版:配置数据库(Mysql)连接(企业版看下一步)

Mysql视频安装教程  配套文档

1. 安装 Mysql 数据库

2. 创建数据库
数据库名称:webfunny_db。
字符集设置:[Default Character set]:utf8、 [Default Collation]:utf8_bin

3. 在根目录下、webfunny.config/index.js文件中
找到mysqlConfig参数(如果没有数据库,可以联系我,获取测试数据库哦)

/**
* mysql数据库设置
* center: 应用中心数据库
* monitor:前端监控数据库
* event: 埋点系统数据库
* 配置更改后,需重启
* 三个可以共用一台数据库
*/
const mysqlConfig = {
  // 应用中心
  "center": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  },
  // 监控
  "monitor": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  },
  // 埋点
  "event": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  }
}

第二步、企业版:配置数据库(Mysql + Clickhouse)连接(专业版看上一步)

Clickhouse安装教程:https://clickhouse.com/docs/zh/getting-started/install

注意:应用中心使用mysql;监控系统、埋点系统使用clickhouse

1.创建mysql数据库
数据库名称:webfunny_mysql_db
字符集设置:[Default Character set]:utf8、 [Default Collation]:utf8_bin

2.创建clickhouse数据库
数据库名称:webfunny_clickhouse_db

3. 在根目录下、webfunny.config/index.js文件中
找到mysqlConfig参数(如果没有数据库,可以联系我,获取测试数据库哦)

/**
* 数据库设置
* center: 应用中心数据库
* monitor:前端监控数据库
* event: 埋点系统数据库
* 配置更改后,需重启
* monitor、event可以共用一台数据库
*/
const mysqlConfig = {
  // 应用中心(mysql)
  "center": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_mysql_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  },
  // 监控(clickhouse)
  "monitor": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_clickhouse_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  },
  // 埋点(clickhouse)
  "event": {
    "write": {
      "ip": "xxx.xx.xx.xxx",
      "port": "3306",
      "dataBaseName": "webfunny_clickhouse_db",
      "userName": "root",
      "password": "123456"
    },
    "read": []
  }
}

第三步、配置IP和端口号(使用域名,请看下一步)

在根目录webfunny.config.js文件中,找到参数:domainConfig,配置IP和端口

/**
* 域名端口设置
* 配置更改后,需重启
*/
const domainConfig = {
  "host": {
    "fe": "localhost:9010", // 前端访问域名(专业版配置8010)
    "be": "localhost:9011"  // 后端接口域名(专业版配置8011)
  },
  "port": {
    "fe": "9010",  // 前端启动端口号(专业版配置8010)
    "be": "9011"   // 后端启动端口号(专业版配置8011)
  },
  "uploadDomain": {
    "monitor": "", // 指定监控系统上报域名(一般不需要更改)
    "event": ""    // 指定埋点系统上报域名(一般不需要更改)
  },
}

第四步、配置代理、域名

如大家所见,虽然执行了一条命令(npm run prd),其实是启动了3个模块,2个端口号,结构图见文档末尾。分别是:8011、8010,记得提醒运维同学,将所这2个端口的对外授权打开哦。

生产环境中,我们不推荐使用 IP + 端口的形式; 端口复杂,且不方便支持https,所以推荐使用代理,代理配置请参考文档:nginx代理

使用代理后,就可以将所有的IP+端口 替换成域名了,配置如下:

/**
* 域名端口设置
* 配置更改后,需重启
*/
const domainConfig = {
  "host": {
    "fe": "www.xxx.com", // 前端访问域名(一定要配置代理哦)
    "be": "www.xxx.com"  // 后端接口域名(一定要配置代理哦)
  },
  "port": {
    "fe": "9010",  // 前端启动端口号(专业版配置9010)
    "be": "9011"   // 后端启动端口号(专业版配置9011)
  },
  "uploadDomain": {
    "monitor": "", // 指定监控系统上报域名(一般不需要更改)
    "event": ""    // 指定埋点系统上报域名(一般不需要更改)
  },
}

第五步、尝试运行,访问

执行命令:npm run prd;如果已经启动过了,则执行重启命令:npm run restart;

命令行出现webfunny.cn的logo,则说明启动成功了。

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

应用中心首页: http://www.xxx.com/wf_center/main.html

注:如果访问不了,请跟运维确认下是否打开了2个端口号的对外授权。

 

关于Webfunny

Webfunny专注于前端监控系统,前端埋点系统的研发。 致力于帮助开发者快速定位问题,帮助企业用数据驱动业务,实现业务数据的快速增长。支持H5/Web/PC前端、微信小程序、支付宝小程序、UniApp和Taro等跨平台框架。实时监控前端网页、前端数据分析、错误统计分析监控和BUG预警,第一时间报警,快速修复BUG!支持私有化部署,Docker容器化部署,可支持千万级PV的日活量!

  点赞 0   收藏 0
  • 一步一个脚印一个坑
    共发布106篇文章 获得4个收藏
全部评论: 0