2014-11-24 52 views
1

我當前的設置有AWS Couldwatch警報,例如,當觸發發送電子郵件通知時。 n分鐘CPU使用率低於x%。這很容易通過AWS管理控制檯進行設置。但是,在這種安排下,我需要遠程登錄到實例並手動重新啓動失敗的應用程序。我想用相同的Cloudwatch警報事件自動執行此操作,而不是觸發腳本的運行(與我的應用程序在同一EC2實例上),然後重新啓動我的應用程序。這個怎麼做?如何在Cloudwatch警報觸發時重新啓動在EC2實例上運行的應用程序?

如果有辦法從運行應用程序的實例中捕獲Cloudwatch警報事件,那麼這可能是一個簡單的方法來進行,但我無法找到如何做到這一點。 (How to restart EC2 instance from CloudWatch alarm)。然而,就我而言,我認爲Auto Scaling不是一個可行的選擇;因爲實例上運行的其他軟件的許可限制。

我正在運行基於Windows的EC2實例。

謝謝, YUG

+0

如果應用程序正在運行,是否更容易監視並且如果不是,則嘗試在設定的時間間隔重新啓動?這也將涵蓋其他恢復方案,而不僅僅涉及cloudwatch警報。 – 2014-11-24 04:11:34

+0

@Jason。這可能是一種選擇,但是我認爲必須編寫一個監視腳本,該腳本會在設定的時間間隔內檢查CPU使用情況,並跟蹤它是否低於n分鐘的設置閾值(基本上是Cloud Watch執行的功能,如果存在則更容易是一種簡單地捕捉該事件的方式)。另外,如果說應用程序從未開始,我不希望觸發事件(例如,我正在做一些維護工作)。所有可能的,但希望有一個更簡單的解決方案。謝謝 – Yugmorf 2014-11-24 04:23:29

+0

本質上,要使用Cloudwatch執行自動操作,您需要腳本/服務監視SQS隊列。這可能比直接監控服務更復雜。 – datasage 2014-11-24 04:28:05

回答

0

一種AWS CloudWatch的報警可用於觸發:

  • 的自動縮放的政策(例如,自動縮放組中添加/刪除實例)
  • 停止/終止EC2實例
  • 通過發送通知亞馬遜簡易通知服務(SNS)

SNS可以發送通知給用戶以各種格式:

  • 發送短信(僅限美國)
  • 推送消息到一個HTTP/S的端點(如您已編寫的應用程序)
  • 推消息以亞馬遜簡單隊列服務(SQS)
  • 將通知發送到移動設備(例如機器人,iPhone)

根據您的場景,可以使用HTTP或SQS通知,但您必須編寫程序來響應通知。但是,您只會使用代理服務器的運行狀況(例如CPU利用率),而不是實際監控應用的運行狀況。

您可以將自定義指標從應用程序發送到CloudWatch,然後根據此自定義指標配置要觸發的警報。但是,如果您要解決所有問題,那麼檢測問題的代碼應該可以直接修復它,而不是通過CloudWatch進行修復。

相關問題