eggjs 部署监控服务端

作用

Node.js 进程 CPU 负载

Node.js 进程堆内存状态

系统整体 CPU 负载

系统整体可用内存状态

磁盘使用率

部署的前置条件 

  • MySQL
  • Redis

第一步: 

其中 Mysql 初始化部分,库 xprofiler_console 使用 xprofiler-console/db/init.sql 进行初始化,库 xprofiler_logs 使用 xtransit-manager/db/init.sql 以及 xtransit-manager/db/date.sql 进行初始化。 

第二步:

git clone https://github.com/X-Profiler/xprofiler-console

项目的文件结构 

image.png

 

 

2.1

 

 我们需要关注的是 config 配置,这里以搭建本地开发环境为例,可以在 config 目录下新建 config.local.js ,添加如下配置内容

 

// xprofiler-console/config/config.local.js
userConfig.mysql = {
app: true,

agent: false,

clients: {

xprofiler_console: {

host: 'localhost',

port: 3306,

user: 'root',

password: '12345678',

database: 'xprofiler_console',

},

xprofiler_logs: {

host: 'localhost',

port: 3306,

user: 'root',

password: '12345678',

database: 'xprofiler_logs',

},

},

};

 

// redis

userConfig.redis = {

client: {

sentinels: null,

port: 6379,

host: '127.0.0.1',

password: '',

db: 0,

},

};

 

// xtransit upload file

userConfig.xprofilerConsole = 'http://127.0.0.1:8443';;

 

// xtransit manager

userConfig.xtransitManager = 'http://127.0.0.1:8543';

首先将前置依赖的 Mysql 和 Redis 的连接配置补充到此配置文件中,剩下的两项配置说明如下:

  • xprofilerConsole:控制台自身的访问地址,本地环境为 ${localhost}:${port} 形式,部署时请使用外部访问域名替换
  • xtransitManager: 日志采集器管理服务地址

 

配置填写完毕后,开发环境下执行如下命令启动控制台

npm run dev

访问  http://127.0.0.1:8443/

第三步

部署采集器管理服务

执行如下命令克隆采集器管理服务仓库:

git clone https://github.com/X-Profiler/xtransit-manager

进入代码目录可以看到结构如下所示:

image.png

这里依旧要配置 config ,我们继续在 config 目录下新建 config.local.js ,添加如下配置内容:

// xtransit-manager/config/config.local.js
'use strict';

 

// mysql

userConfig.mysql = {

app: true,

agent: false,

clients: {

xprofiler_console: {

host: 'localhost',

port: 3306,

user: 'root',

password: '12345678',

database: 'xprofiler_console',

},

xprofiler_logs: {

host: 'localhost',

port: 3306,

user: 'root',

password: '12345678',

database: 'xprofiler_logs',

},

},

};

 

// redis

userConfig.redis = {

client: {

sentinels: null,

port: 6379,

host: '127.0.0.1',

password: '',

db: 0,

},

};

 

// mailer

userConfig.mailer = {

host: 'https://mail.qq.com',

secure: false,

port: 465, // SMTP 端口

secureConnection: true, // 使用了 SSL

auth: {

user: '2579375393@qq.com',

pass: 'utxwnwdilwv',

},

};

 

userConfig.xprofilerConsole = 'http://127.0.0.1:8443';

Mysql 和 Redis 配置之外的项目说明如下:

  • mailer: 邮件服务配置,用于发送告警邮件
  • xprofilerConsole:控制台自身的访问地址,本地环境为 ${localhost}:${port} 形式,部署时请使用外部访问域名替换

 

配置填写完毕后,开发环境下执行如下命令启动日志采集器管理服务:

npm run dev

 第四步

 

部署采集器长连接服务

执行如下命令克隆采集器长连接服务仓库:

git clone https://github.com/X-Profiler/xtransit-server

进入代码目录可以看到结构如下所示:

image.png

 

// xtransit-server/config/config.local.js

'use strict';

'use strict';

 

module.exports = () => {

const config = {};

 

// config.xtransitManager = '';

 

config.agentKey = Symbol('XTRANSIT::ID');

 

config.agentSplitter = '\u0000';

 

config.serverPort = 9090;

 

config.httpTimeout = 15000;

 

config.security = {

secret: 'easy-monitor::xprofiler',

};

 

config.xtransitManager = 'http://127.0.0.1:8543';

 

return config;

};

 

 

 

配置项说明:

  • xtransitManager: 日志采集器管理服务地址

 

配置填写完毕后,开发环境下执行如下命令启动日志采集器长连接服务:

npm run dev

第五步

egg接入 

 

访问 http://127.0.0.1:8443/ 打开前一节中部署完毕的监控控制台,点击右上角的 创建新应用 按钮来新建一个应用:

image.png

输入完成应用名称后,点击 提交 即可完成新应用的创建,监控服务端会自动生成 appId 和随机秘钥 appSecret ,如下图所示:

image.png

 

 

 

配置插件

首先执行如下命令安装插件:

npm install egg-xtransit --save --xprofiler_binary_host_mirror=https://npm.taobao.org/mirrors/xprofiler

然后配置 config/plugin.js 启用此插件:

// {app_root}/config/plugin.js
exports.xtransit = {
  enable: true,
  package: 'egg-xtransit',
};

插件 egg-xtransit 的配置需要 appIdappSecret 来连接到控制台,按照第一步中创建的应用信息增加配置项:

// {app_root}/config/config.default.js
exports.xtransit = {
  server: 'ws://127.0.0.1:9090',
  appId: 6,
  appSecret: 'bbffaca**************d4fe3e7ab6'
};

最后按照正常操作启动 Egg.js 项目即可,正常情况下,你可以在控制台主页看到本地连接上来的实例:

image.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值