阿里云國際站經(jīng)銷商,主營阿里云,騰訊云,華為云,亞馬遜aws,谷歌云gcp,微軟云az,免費開戶,代充值優(yōu)惠大,聯(lián)系客服飛機@jkkddd


ECS主機狀態(tài)變化事件的自動化運維

本文通過實踐案例為您介紹云監(jiān)控如何通過消息服務(wù)MNS的隊列實現(xiàn)自動化處理ECS主機狀態(tài)變化事件。
前提條件
請您確保已在消息服務(wù)MNS控制臺,創(chuàng)建隊列,例如:ecs-cms-event。
關(guān)于如何創(chuàng)建隊列,請參見創(chuàng)建隊列。
請您確保已在云監(jiān)控控制臺,創(chuàng)建系統(tǒng)事件報警規(guī)則。
關(guān)于如何創(chuàng)建隊列,請參見創(chuàng)建系統(tǒng)事件報警規(guī)則。
請您確保已安裝Python依賴。
本文所有代碼均以Python 3.6為例,您也可以使用其他編程語言,例如:Java和PHP。
關(guān)于如何安裝Python SDK,請參見Python SDK安裝。
背景信息
ECS在已有的系統(tǒng)事件基礎(chǔ)上,通過云監(jiān)控新發(fā)布了狀態(tài)變化類事件和搶占型實例的中斷通知事件。每當(dāng)ECS主機的狀態(tài)發(fā)生變化時,都會觸發(fā)一條ECS狀態(tài)變化事件。這種變化包括您通過控制臺、OpenAPI或SDK操作導(dǎo)致的變化,也包括彈性伸縮或欠費等原因而自動觸發(fā)的變化,還包括因為系統(tǒng)異常而觸發(fā)的變化云監(jiān)控提供四種事件報警處理方式,包括:消息服務(wù)隊列、函數(shù)計算、URL回調(diào)和日志服務(wù)。本文以消息服務(wù)隊列為例,為您介紹云監(jiān)控自動化處理ECS主機狀態(tài)變更事件的三種最佳實踐。
操作步驟
云監(jiān)控將ECS主機所有的狀態(tài)變化事件投遞到消息服務(wù)MNS,消息服務(wù)MNS獲取消息并進(jìn)行消息處理。
實踐一:對所有ECS主機的創(chuàng)建和釋放事件進(jìn)行記錄。
目前ECS控制臺無法查詢已經(jīng)釋放的實例。如果您有查詢需求,可以通過ECS主機狀態(tài)變化事件將所有ECS主機的生命周期記錄在數(shù)據(jù)庫或日志服務(wù)中。每當(dāng)您創(chuàng)建ECS主機時,會發(fā)送一個Pending事件,每當(dāng)您釋放ECS主機時,會發(fā)送一個Deleted事件。
編輯一個Conf文件。
Conf文件中需要包含消息服務(wù)MNS的endpoint、阿里云的access_key和access_key_secret、region_id(例如:cn-beijing)和queue_name。
上述代碼只對MNS消息獲取的數(shù)據(jù),調(diào)用Listener消費消息之后刪除消息。
注冊一個指定Listener消費事件。這個簡單的Listener判斷收到Pending和Deleted事件時,打印一行日志。
實際生產(chǎn)環(huán)境下,可能需要將事件存儲在數(shù)據(jù)庫或日志服務(wù)SLS中,方便后期的搜索和審計。
實踐二:ECS主機關(guān)機自動重啟。
在某些場景下,ECS主機會非預(yù)期的關(guān)機,您可能需要自動重啟已經(jīng)關(guān)機的ECS主機。
為了實現(xiàn)ECS主機關(guān)機后自動重啟,您可以復(fù)用實踐一中的MNS Client,添加一個新的Listener。當(dāng)您收到Stopped事件時,對該ECS主機執(zhí)行Start命令。
在實際生產(chǎn)環(huán)境下,執(zhí)行完Start命令后,可能還需要繼續(xù)接收后續(xù)的Starting、Running或Stopped等事件,再配合計時器和計數(shù)器,進(jìn)行成功或失敗之后的處理。
實踐三:搶占型實例釋放前,自動從負(fù)載均衡SLB移除。
搶占型實例在釋放之前五分鐘左右,會發(fā)出釋放告警事件,您可以在這短暫的時間運行業(yè)務(wù)不中斷邏輯,例如:主動從負(fù)載均衡SLB的后端服務(wù)器中去掉這臺即將被釋放的搶占型實例,而非被動等待實例釋放后負(fù)載均衡SLB的自動處理。
您復(fù)用實踐一的MNS Client,添加一個新的Listener,當(dāng)收到搶占型實例的釋放告警時,調(diào)用負(fù)載均衡SLB的SDK。

心靈雞湯:

標(biāo)題:阿里云國際實名賬號注冊,阿里云24h自助充值

地址:http://hongyingyw.com/kfxw/64471.html