搭建一个node.js在线监控系统,类似pm2-web
发布于 2 年前 作者 younth 2067 次浏览 来自 问答

如题,目的是搭建一个简单的基于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都不用,那你只能自己实现了吧

回到顶部