作用
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项目的文件结构
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
第三步
部署采集器管理服务
执行如下命令克隆采集器管理服务仓库:
git clone https://github.com/X-Profiler/xtransit-manager
进入代码目录可以看到结构如下所示:
这里依旧要配置 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
进入代码目录可以看到结构如下所示:
// 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/
打开前一节中部署完毕的监控控制台,点击右上角的 创建新应用
按钮来新建一个应用:
输入完成应用名称后,点击 提交 即可完成新应用的创建,监控服务端会自动生成 appId
和随机秘钥 appSecret
,如下图所示:
配置插件
首先执行如下命令安装插件:
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
的配置需要 appId
与 appSecret
来连接到控制台,按照第一步中创建的应用信息增加配置项:
// {app_root}/config/config.default.js exports.xtransit = { server: 'ws://127.0.0.1:9090', appId: 6, appSecret: 'bbffaca**************d4fe3e7ab6' };最后按照正常操作启动 Egg.js 项目即可,正常情况下,你可以在控制台主页看到本地连接上来的实例: