簡體   English   中英

監視在ubuntu實例上運行的node.js腳本

[英]Monitor node.js scripts running on ubuntu instance

我有一個node.js腳本,它在ubuntu EC2實例上一天運行一次。 此腳本從一些數千個遠程API中提取數據並保存到本地數據庫。 有什么辦法可以在遠程服務器上監控這個node.js腳本嗎? 由於某種原因,腳本崩潰的情況很少,如果沒有SSH實例並檢查日志,我們無法弄清楚。 然而,我在最初的幾次崩潰之后創建了一個小型系統,當腳本由於某些未捕獲的異常以及腳本完成執行時崩潰時會向我們發送電子郵件。

但是,我們需要開發一個更好的系統,我們可以通過我們的管理應用程序的Web界面監視腳本的進度,該應用程序部署在其他實例上,並通過此接口觸發腳本的啟動/停止。 實現這一目標有哪些可能的選擇?

如果你想留在Node.js,那么有幾個過程監控工具:

除了監控流程之外, PM2還具有許多其他功能。 您可以通過CLI或其官方Web界面監控您的流程: https//keymetrics.io/ 快速搜索npm還提供了一堆不錯的非官方gui工具: https ://www.npmjs.com/search?q = pm2 + web

Forever不像PM2那樣功能豐富,但是它將完成基本的流程操作,並且在npm中也可以使用幾個gui。

這里有兩個你要解決的問題:

  1. 安排工作要完成
  2. 監控故障流程

在簡單的層面上,這很容易:安排一個cron作業並重新啟動失敗的東西,以便他們繼續嘗試。

但是,當事情進展不順利時,有助於在調度內容以及執行方式上更加細化。 這也可以讓您了解每件小作品。

添加一點復雜性,你可以得到這樣的東西:

  1. 安排啟動所有內容的腳本(通過cron,如果這很舒服)
  2. 該腳本生成多個需要執行到隊列中的作業
  3. 工作進程(或n個工作進程)使用該隊列並執行掛起的作業
  4. 您可以監控作業的進度以及每個工作人員的狀態(崩潰次數,故障,已完成的工作等)。 上面提到的其他工具是很好的候選者(永遠,pm2等)

當工作失敗時,其他工作人員可以拿起正在進行的小工作並重新啟動它。 這比重新啟動整個過程更有效,並且還允許您根據分配工作負載的方式在n個工作程序之間並行化。

您可以輕松地將狀態發送到Web應用程序,以便您可以定期檢入而不必瀏覽服務器日志。

您還可以通過不同類型的故障獲得更多智能。 網絡錯誤? 重試5次。 額定有限? 逐漸退縮。 崩潰? 不要重試並通過電子郵件通知。 等等

我用pm2嘗試了這個,你可以得到任務的信息,然后趕緊或抓住日志文件。 或者您可以擁有一個日志服務器,另請參閱: https//github.com/papertrail/remote_syslog2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM