我有一个node.js脚本,它在ubuntu EC2实例上一天运行一次。此脚本从一些数千个远程API中提取数据并保存到本地数据库。有什么办法可以在远程服务器上监控这个node.js脚本吗?由于某种原因,脚本崩溃的情况很少,如果没有SSH实例并检查日志,我们无法弄清楚。然而,我在最初几次崩溃之后创建了一个小型系统,当脚本由于某些未捕获的异常以及脚本完成执行时崩溃时发送给我们一个电子邮件。
但是,我们需要开发一个更好的系统,我们可以通过管理应用程序的Web界面监视脚本的进度,该应用程序部署在其他实例上,并通过此接口触发脚本的启动/停止。有哪些可能的选择来实现这一目标?
答案 0 :(得分:2)
如果你想留在Node.js,那么有几个过程监控工具:
除了监控流程之外,PM2还有许多其他功能。您可以通过CLI或其官方Web界面监控您的流程:https://keymetrics.io/。快速搜索npm还提供了一堆很好的非官方gui工具:https://www.npmjs.com/search?q=pm2+web
答案 1 :(得分:1)
您要解决的问题有两个:
简单来说,这很容易:安排一个cron作业并重新启动失败的东西,以便他们继续尝试。
然而,当事情进展不顺利时,有助于更加细化您的日程安排以及如何执行。这也可以让您了解每一小部分工作。
添加更多复杂性,您最终可能会遇到这样的事情:
当工作失败时,其他工作人员可以拿起正在进行的小工作并重新启动它。这比重新启动整个过程更有效,并且还允许您根据分割工作负载的方式在 n 工作者之间并行化。
您可以轻松地将状态发送到网络应用程序,以便您可以定期检查,而不必挖掘服务器日志。
您还可以通过不同类型的故障获得更多智能。网络错误?重试5次。额定有限?逐渐退缩。崩溃?不要重试并通过电子邮件通知。等
答案 2 :(得分:0)
我用pm2尝试了这个,你可以得到任务的信息,然后赶紧或抓住日志文件。或者您可以拥有一个日志记录服务器,另请参阅:https://github.com/papertrail/remote_syslog2