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,也可以很好地與自我守護程序配合使用。另一方面,它非常適合觀察服務:事件處理、檢查記憶體洩漏等。它還具有用於瀏覽服務狀態的漂亮儀表板(基於命令列和基於網路)和用於從多個伺服器獲取資料的商業儀表板 m/monit。

這樣使用runit+monit的方式就變成下面這樣:

  • runit 用於服務監控、日誌記錄、自動重新啟動等
  • monit 用於服務狀態變更的通知、更多擴充檢查和基本服務監控

相關內容