搭建一个node.js在线监控系统,类似pm2-web
如题,目的是搭建一个简单的基于pm2的在线监控系统,初步方案如下:
pm2开启web接口 HttpInterface
,从其源码可以看出:
var data = {
system_info: { hostname: os.hostname(),
uptime: os.uptime()
},
monit: { loadavg: os.loadavg(),
total_mem: os.totalmem(),
free_mem: os.freemem(),
cpu: os.cpus(),
interfaces: os.networkInterfaces()
},
processes: data_proc
};
res.statusCode = 200;
res.write(JSON.stringify(data));
该接口主要包含三个字段:
- system_info:系统信息
- monit:监控的基础信息
- processes:监控的进程APP详细信息
按照这种思路去编写一个webUI 输出APP运行情况是否ok
另外 pm2-web
官方不再维护,给出的解释是:其不再能监测PM2在多台机器的运行情况。 多台机器应该是启动不同的http接口,维护的还是单机吧?
欢迎有经验的同学交流下,在不用alinode的情况下,怎么让Node.js线上服务更好的呈现出来
2 回复
个人一些看法:
- 1.数据库/http/消息队列远程调用 类的数据上报采用 oneAPM 这样的思路:运行时拦截底层库的代码,注入自己的数据采集收集逻辑,然后上报
- 2.上报的数据BI展示、告警等常规监控功能不要自己开发,很多现成的开源方案,比如小米做的:openFalcon
- 3.提供一套针对Node内核的监控:函数执行性能 + 必要时堆内内存快照的在线解析
满足了以上三点,感觉就差不多了
alinode、oneApm都不用,那你只能自己实现了吧