我们在 node.js 中实现了一个监控解决方案,它对数据库完整性和 API 正常运行时间进行了一些基本检查。我们想扩展这个系统来收集我们 Linux 服务器的基本系统统计数据,比如 CPU 和磁盘使用情况。其中一些服务器位于我们无法控制的防火墙后面,只打开了一些非常基本的端口(ssh、ftp、http、https)。
如何在 node.js 中收集这些服务器的系统信息。是否有通过(安全的)RESTful API 公开这些信息的监控系统?
我们在 node.js 中实现了一个监控解决方案,它对数据库完整性和 API 正常运行时间进行了一些基本检查。我们想扩展这个系统来收集我们 Linux 服务器的基本系统统计数据,比如 CPU 和磁盘使用情况。其中一些服务器位于我们无法控制的防火墙后面,只打开了一些非常基本的端口(ssh、ftp、http、https)。
如何在 node.js 中收集这些服务器的系统信息。是否有通过(安全的)RESTful API 公开这些信息的监控系统?
我用这个用 javascript 编写的 ssh 客户端取得了很大的成功: https ://github.com/mscdex/ssh2
因此,有大量可用的解决方案用于监控系统统计信息:Nagios、Zabbix、Scout、Cacti。甚至还有一些托管的,例如 ServerDensity。
所有这些系统都应该涵盖顶级统计数据:CPU、RAM、磁盘 IO 和网络。它们都有一个插件基础设施,因此您可以发送自定义统计信息(API 正常运行时间、数据库可用性)并将它们与常规统计信息一起发送。
如果您在某个地方的云基础架构上运行,其中许多都提供“开箱即用”的信息,通常在您的帐户仪表板中(请参阅 Joyent 或 Azure 之类的人)。
这里的大问题是“你还需要什么”?
使用 Nagios 的 NRPE 作为您要监控的盒子的客户端。它的设置相当简单,并且它的 API 已记录在案。http://exchange.nagios.org/directory/Addons/Monitoring-Agents/NRPE--2D-Nagios-Remote-Plugin-Executor/details