Date: 11 12 月, 2020
使用Datadog進行Amazon EC2監控? 與SIOS AppKeeper配對以進行自動修復
您是否曾經想過:“如果Datadog能夠監視我們的Amazon EC2服務並在檢測到故障時自動重新啟動它們,那將是一件很好的事嗎?”我也有同樣的想法,因此決定自己嘗試一下。
SIOS AppKeeper會自動監視Amazon EC2實例的故障,並在檢測到故障時自動重啟實例甚至重啟服務。我心想:“如果將Datadog的監視功能與AppKeeper的自動修復功能結合起來,該怎麼辦?”
它有效,這就是我的工作方式。
如果您已經在使用Datadog,並且有興趣自己嘗試一下,請在本文結尾處註冊以訪問我們的API。
這是我設置AppKeeper以便從Datadog接收警報並在檢測到停機時重新啟動Amazon EC2上的Web服務器的步驟。
為了成功運行此實驗,我們已經在Amazon EC2(使用Linux 2)上運行了Datadog帳戶,AppKeeper帳戶和NGINX Web服務器。
如何將Datadog與AppKeeper集成以提供自動修復
第一步:從AppKeeper獲取重啟API令牌
通過以下表單請求用於Datadog集成的API令牌:
https://mk.sios.jp/BC_AppKeeper_Datadog_api_application
如果您從表單中請求,令牌將被發送到您提供的電子郵件地址。
第二步:在AppKeeper中創建租戶
下一步是在AppKeeper中註冊受監視實例所屬的AWS賬戶。 (AppKeeper將註冊的AWS賬戶稱為“租戶”。)
https://sioscoati.zendesk.com/hc/zh-CN/articles/900000123406-Quick-Start-Guide#h_39404cfb-4a76-450f-99c2-e197cc63e50d
第三步:在AWS中創建IAM角色
然後,我在AWS中創建了一個IAM角色(您需要使用它來設置AppKeeper帳戶)。如果您不熟悉此過程,請按以下說明進行操作。
第四步:在AppKeeper中添加租戶
下一步是在AppKeeper中添加“租戶”(AppKeeper認為AWS賬戶為“租戶”)。這是有關執行此操作的詳細說明的鏈接。
第五步:在Datadog中設置綜合測試
然後,我需要為我們要監視的Nginx服務器(EC2實例)配置Datadog的輪廓監視。方法如下:
打開Datadog儀表板,然後從菜單中選擇UX監視>綜合測試。
單擊[New Test]右上角的按鈕,然後選擇[New API Test]創建輪廓監視案例。
在表單中輸入以下信息以創建概要監視案例。
- 選擇請求類型
選擇“ HTTP”。 - 定義請求:
設置以下值。
網址:獲取http:// {{{EC2 IP地址}}
名稱:AppKeeper Datadog集成測試(任何名稱)
地點:東京
3。 指定測試頻率
沒變化
4。 定義斷言
點擊“新斷言”並設置以下值
什麼時候 :
[status code][is][200]
5, 定義警報條件
沒變化
6。通知您的團隊
沒變化
第六步:在Datadog中運行綜合測試
完成上述輸入後,請按“創建測試”以創建用於外部監視的測試用例。
結果可見,我們可以在“測試結果”部分中看到網絡服務器正常工作。
這就是使用Datadog配置Synthetics監視所需要做的全部工作。
第七步:將AppKeeper設置為接收合成警報
接下來,我必須將AppKeeper設置為通知目標。從Datadog菜單中,轉到Integrations,然後選擇Integrations選項卡。
在搜索框中,輸入“ Webhooks”以查找Webhooks集成。
單擊“可用”以在您的Datadog帳戶中啟用Webhooks集成。 (一旦啟用,它將顯示在“已安裝”列中。)
單擊“配置”以打開Webhooks集成配置頁面。
在頁面底部的“ Webhooks”列中,單擊“新建+”以創建新的Webhooks通知目標。 對於參數,輸入以下內容
名稱:集成名稱(任何名稱)
網址:https://api.appkeeper.sios.com/v2/integration/ {{AWS賬戶ID}} / actions / recover
有效載荷
{
“ instanceId”:“ {{EC2實例ID}}”, “名稱”:“ nginx” } |
自定義標題:選中該複選框並輸入以下內容
{ “內容類型”:“應用程序/ json”, “ accept”:“ application / json”, “ appkeeper-integration-token”:“ {{獲取AppKeeper外部集成令牌}}中獲得的令牌” } |
完成後,按“保存”。
第八步:將AppKeeper連接到綜合測試
接下來,我必須配置AppKeeper(註冊的Webhooks集成),以便在發生Synthetics監視警報時調用它。
從菜單的“ UX監視”>“綜合測試”中打開在“使用Datadog配置綜合監視”中設置的測試用例。
從右上方的變速箱中選擇“編輯測試詳細信息”,然後在“ 5.輸入以下值”中輸入以下值。 通知您的團隊”框以保存更改。
@webhook-{{Datadog中Webhook集成的名稱}} |
※您可以設置“如果顯示器尚未解決則重新通知”。如果AppKeeper第一次無法恢復,則可以重試。測試不是必需的,但是我們建議您將其設置為([10 minutes]最小間隔)。
安裝完成。
第九步:通過再次運行測試來確認集成
然後,我確認如果Datadog檢測到它關閉,AppKeeper將還原Web服務器。
打開您剛剛從Datadog中的UX監視>綜合測試中設置的綜合監視測試用例。
單擊右上角的“恢復測試”,然後打開“合成”監視。
現在,Datadog將定期執行Synthetics監視。
測試結果表明服務器已成功訪問。
接下來,我創建了網絡服務器的偽故障,以測試AppKeeper的自動修復。
由於很難造成真正的失敗,因此我停止了該服務,並造成了無法查看網頁的情況。為此,我連接到使用SSH安裝Nginx服務器並停止Nginx的EC2實例。
sudo systemctl停止nginx |
短暫等待後,Datadog檢測到Web服務器不再可訪問。
Datadog中的“綜合測試”頁面還顯示測試用例失敗。
如果測試用例失敗,Datadog將通知AppKeeper Synthetics監視失敗。
當AppKeeper收到通知時,它將自動嘗試重新啟動Nginx。
因此,如果您稍等片刻,就會發現Datadog的Synthetics監控檢查將再次通過。
另外,如果您登錄到AppKeeper儀表板,則會看到恢復已執行。
–
在本練習中,我以Web服務器(Nginx)為例,通過Datadog自動執行檢測故障並通過AppKeeper恢復服務的過程。
通過將Datadog與EventBridge和Lambda集成或創建自定義腳本,可以實現類似的自動化。
但是,如果您經常添加目標實例或重新啟動各種服務,則維護EventBridge和Lambda或腳本的成本和復雜性將會增加。
AppKeeper已與Datadog進行了可靠的集成,並且您可以輕鬆地將目標實例添加到應用程序中,從而可以輕鬆地將自動化添加到DevOps環境中以減少停機時間。
如果您當前正在使用Datadog,並且想試用AppKeeper的Restart API,請先在此處註冊我們的14天免費試用版(安裝免費試用版後即可購買訂閱)。然後單擊此處以請求免費試用。 我們將引導您完成整個過程,並為您提供免費的評估令牌,以幫助您入門。
申請評估令牌
謝謝。我希望您能藉此機會更多地了解SIOS AppKeeper,它可以自動監視和恢復在EC2上運行的應用程序。
-SIOS Technology技術團隊的Tatsuya Hirao。
經SIOS許可轉載