环境要求
安装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)最新部署包,初始化
1.本地克隆代码$:' git clone https://github.com/a597873885/webfunny_monitor.git '
使用码云仓库$:' git clone https://gitee.com/webfunnyMonitor/webfunny_monitor.git '(github网络不稳定,可以使用码云地址)
2.在项目根目录下执行初始化命令和安装命令$:
建议切换淘宝镜像:' npm config set registry http://registry.npm.taobao.org/ '
生成基础配置文件:' npm install && npm run bootstrap '
3.确认是否安装了pm2,如果没有安装pm2,请执行安装命令$:' npm install pm2 -g '
第二步、配置数据库(Mysql)连接
1. 安装 Mysql 数据库
2. 创建数据库
数据库名称:webfunny_db。
字符集设置:[Default Character set]:utf8、 [Default Collation]:utf8_bin
3. 数据库连接配置
分别进入
center/config_variable/config.json、
monitor/config_variable/config.json、
event/config_variable/config.json
三个文件中,配置对应的参数。三个文件可以使用同一个数据库(如果没有数据库,可以联系我,使用测试数据库哦)
write: {
ip: 'xxx.xxx.xxx.xxx', // 远程ip地址
port: '3306', // 端口号
dataBaseName: 'webfunny_db', // 数据库名
userName: 'root', // 用户名
password: '123456' // 密码
}
第三步、配置IP和端口号(使用域名,请看下一步)
分别进入以下三个配置文件中,配置对应的 IP + 端口号
应用中心:center/config_variable/config.json
"domain": {
"localServerDomain": "123.123.123.123:8009",
"localAssetsDomain": "123.123.123.123:8008",
"localServerPort": "8009",
"localAssetsPort": "8008",
"mainDomain": ""
},
"monitorDomain": {
"localServerDomain": "123.123.123.123:8011",
"localAssetsDomain": "123.123.123.123:8010"
},
"eventDomain": {
"localServerDomain": "123.123.123.123:8015",
"localAssetsDomain": "123.123.123.123:8014"
},
埋点系统:event/config_variable/config.json
"domain": {
"localServerDomain": "123.123.123.123:8015",
"localAssetsDomain": "123.123.123.123:8014",
"localServerPort": "8015",
"localAssetsPort": "8014",
"mainDomain": ""
},
"centerDomain": {
"localServerDomain": "123.123.123.123:8009",
"localAssetsDomain": "123.123.123.123:8008"
},
监控系统:monitor/config_variable/config.json
"domain": {
"localServerDomain": "123.123.123.123:8011",
"localAssetsDomain": "123.123.123.123:8010",
"localServerPort": "8011",
"localAssetsPort": "8010",
"mainDomain": ""
},
"centerDomain": {
"localServerDomain": "123.123.123.123:8009",
"localAssetsDomain": "123.123.123.123:8008"
},
第四步、配置代理、域名
如大家所见,虽然执行了一条命令(npm run prd),其实是启动了3个模块,6个端口号,结构图见文档末尾。分别是:应用中心(8009,8008)、埋点系统(8015,8014)、监控系统(8011,8010),记得提醒运维同学,将所这6个端口的对外授权打开哦。
生产环境中,我们不推荐使用 IP + 端口的形式; 端口复杂,且不方便支持https,所以推荐使用代理,代理配置请参考文档:nginx代理
使用代理后,就可以将所有的IP+端口 替换成域名了,配置如下:
应用中心:center/config_variable/config.json
"domain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com",
"localServerPort": "8009",
"localAssetsPort": "8008",
"mainDomain": ""
},
"monitorDomain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com"
},
"eventDomain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com"
},
埋点系统:event/config_variable/config.json
"domain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com",
"localServerPort": "8015",
"localAssetsPort": "8014",
"mainDomain": ""
},
"centerDomain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com"
},
监控系统:monitor/config_variable/config.json
"domain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com",
"localServerPort": "8011",
"localAssetsPort": "8010",
"mainDomain": ""
},
"centerDomain": {
"localServerDomain": "www.xxx.com",
"localAssetsDomain": "www.xxx.com"
},
第五步、尝试运行,访问
执行命令:npm run prd;如果已经启动过了,则执行重启命令:npm run restart;
命令行出现webfunny.cn的logo,则说明启动成功了。
此时,可以直接访问应用中心首页了
应用中心首页: http://www.xxx.com/webfunny_center/main.html
注:如果访问不了,请跟运维确认下是否打开了6个端口号的对外授权。
webfunny监控平台结构图: