将 runit 与 monit 结合使用有什么意义?

将 runit 与 monit 结合使用有什么意义?

我看到很多人将 monit 与 runit 结合使用。这不是多余的吗?同时使用 runit 有什么意义?是因为它在处理服务时更可靠吗(因为它不依赖于 pidfiles)?

谢谢!

答案1

我从来没有听说过运行但我却是一个沉重的监控用户...

看看runit,我发现它是一个 init 替换。我认为大多数企业系统都会坚持使用其默认设置系统 V 初始化或者暴发户。我不认为改变它是一种常见的做法。

但是,这里的关系可能是 runit 提供了一种方便的方式来生成 Monit 并确保它保持运行。可能类似于从 inittab 运行 Monit。它本质上是“监视观察者”或监视您的监视系统。

实际上,我使用 Monit 作为守护进程,从未遇到过崩溃或被终止的问题。也许它的吸引力runit在于它提供了一些额外的保护。

至于 Monit,它与进程名称模式匹配而不是 PID 文件

答案2

runit 非常适合控制服务和日志记录,并且很好地遵循了 unix 方式:根据需要轻松组合简单的部分。它可以对服务启动/停止进行一些检查和事件处理,但您必须自己编写所有这些脚本。笔记:如果您的服务无法在前台运行,则 runit 将无法工作。

monit 可以用于控制服务(但不如 runit 好,因为您必须自己处理守护进程和日志记录),并且如果自守护进程公开正确的 pidfile,它也可以很好地与自守护进程配合使用。另一方面,它非常适合监视服务:事件处理、检查内存泄漏等。此外,它还具有用于浏览服务状态的漂亮仪表板(基于命令行和基于 Web)以及用于从多个服务器获取数据的商业仪表板 m/monit。

这样使用runit+monit就变成了这样:

  • runit 用于服务监控、日志记录、自动重启等
  • monit 用于通知服务状态变化、更多扩展检查和基本服务监控

相关内容