通過(guò)告警觸發(fā)ECS帶寬臨時(shí)升級(jí)
通過(guò)告警事件值守帶寬的狀態(tài),并在特定條件下對(duì)帶寬進(jìn)行臨時(shí)升級(jí)。
背景
當(dāng)包年包月ECS實(shí)例網(wǎng)絡(luò)帶寬不夠用時(shí),我們可通過(guò)修改實(shí)例的帶寬配置提高網(wǎng)絡(luò)性能。但可能每次需要升級(jí)的時(shí)間點(diǎn)和條件都不同,如果專人根據(jù)需求節(jié)點(diǎn)去手動(dòng)修改實(shí)例臨時(shí)帶寬,這種方式耗時(shí)耗力,且難免可能有錯(cuò)誤發(fā)生;或者也可升級(jí)實(shí)例全時(shí)段的帶寬,這種方式又會(huì)多出不必要開(kāi)銷(xiāo)。系統(tǒng)運(yùn)維管理 OOS(CloudOps Orchestration Service)有一個(gè)創(chuàng)建告警運(yùn)維任務(wù),設(shè)置觸發(fā)條件后,比如當(dāng)帶寬使用率過(guò)高時(shí),會(huì)自動(dòng)升級(jí)臨時(shí)帶寬,幫您省時(shí)省力省開(kāi)銷(xiāo)。
操作步驟
本示例,帶寬升級(jí)前實(shí)例信息如下。
登錄OOS控制臺(tái)。
單擊自定義任務(wù)模板,擊創(chuàng)建模板,將附錄1模板腳本復(fù)制粘貼到編輯框,創(chuàng)建用于升級(jí)帶寬的模板,單擊創(chuàng)建模板。
單擊告警與事件運(yùn)維,單擊創(chuàng)建。
設(shè)置觸發(fā)規(guī)則。
產(chǎn)品類型選擇云服務(wù)器ECS,在規(guī)則描述中選擇觸發(fā)條件;本文選擇當(dāng)專有網(wǎng)絡(luò)公網(wǎng)流出帶寬平均使用率大于80%時(shí),觸發(fā)告警操作,即進(jìn)行臨時(shí)帶寬升級(jí);觸發(fā)沉默周期選擇要大于臨時(shí)升級(jí)帶寬的時(shí)間,避免二次觸發(fā)后重復(fù)升級(jí)。
在需要報(bào)警資源中,選擇要監(jiān)控帶寬的實(shí)例。
選擇模板,模板類型選擇我的模板,并選擇已經(jīng)創(chuàng)建的臨時(shí)帶寬升級(jí)模板。
設(shè)置參數(shù)。其中InstanceId參數(shù)的默認(rèn)值為$.instanceId,其表示自動(dòng)捕獲已告警的實(shí)例ID。另外需要注意,執(zhí)行使用到的權(quán)限的來(lái)源需要選擇一個(gè)授予了更改帶寬權(quán)限的且可操作系統(tǒng)運(yùn)維管理 OOS(CloudOps Orchestration Service)的RAM角色,權(quán)限JSON腳本附于下方,具體授權(quán)可參考為OOS服務(wù)設(shè)置RAM權(quán)限。
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:ModifyInstanceNetworkSpec"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
設(shè)置完后,單擊立即執(zhí)行。
查看執(zhí)行,若已觸發(fā)了帶寬升級(jí),可以看到有子執(zhí)行被創(chuàng)建并執(zhí)行成功,且目標(biāo)實(shí)例帶寬也發(fā)生變化。
附錄1
當(dāng)對(duì)如下腳本創(chuàng)建模板,并把它作為帶寬升級(jí)模板時(shí),默認(rèn)的升級(jí)時(shí)長(zhǎng)是個(gè)范圍,會(huì)介于3-4小時(shí)之間。當(dāng)開(kāi)始升級(jí)的時(shí)間點(diǎn)加3分鐘為整點(diǎn)時(shí),升級(jí)時(shí)長(zhǎng)達(dá)到最大將升級(jí)240分鐘,當(dāng)開(kāi)始時(shí)間點(diǎn)加3分鐘為59分鐘時(shí),達(dá)到最小升級(jí)時(shí)長(zhǎng)181分鐘。如有需要,也可通過(guò)修改模板中的數(shù)字14580(表示4h+3min)來(lái)更改升級(jí)最大時(shí)長(zhǎng),比如,升級(jí)時(shí)長(zhǎng)范圍若想改成7-8小時(shí),則將14580改為28980即可。
FormatVersion: OOS-2019-06-01
Description:
en: ' Upgrade internet bandwidth for ECS instance.'
zh-cn: 臨時(shí)升級(jí)帶寬
name-en: ECS-TemporaryUpgradeInternetBandwidth
name-zh-cn: 臨時(shí)升級(jí)帶寬
Parameters:
RegionId:
Type: String
Description:
en: The id of region.
zh-cn: 地域ID。
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
InstanceId:
Type: String
Description:
en: One ECS instance Id.
zh-cn: 一個(gè)ECS實(shí)例ID
Default: "$.instanceId"
MaxBandwidthOut:
Description:
en: The maximum public network bandwidth for out-direction.
zh-cn: 需要升級(jí)到多大的服務(wù)器帶寬,例:填寫(xiě)8,表示要臨時(shí)升級(jí)服務(wù)器帶寬至8M,注意:需大于當(dāng)前帶寬
Type: Number
MinValue: 0
MaxValue: 200
Default: 2
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: TemporaryUpgradeInternetBandwidth
Action: 'ACS::ExecuteAPI'
Description:
en: Modifies the temporary bandwidth of the instances.
zh-cn: 臨時(shí)升級(jí)服務(wù)器帶寬。
Properties:
Service: ECS
API: ModifyInstanceNetworkSpec
Parameters:
RegionId: '{{ RegionId }}'
InstanceId: '{{ InstanceId }}'
InternetMaxBandwidthOut: '{{ MaxBandwidthOut }}'
StartTime:
'Fn::FormatUTCTime':
- 'Fn::AddSecond':
- '{{ ACS::CurrentUTCTime }}'
- 180 # 3min
- '%Y-%m-%dT%H:%MZ'
EndTime:
'Fn::FormatUTCTime':
- 'Fn::AddSecond':
- '{{ ACS::CurrentUTCTime }}'
- 14580 # 3min +4h 帶寬默認(rèn)升級(jí)的時(shí)長(zhǎng)默認(rèn)是個(gè)范圍,會(huì)介于181min-240min之間。當(dāng)開(kāi)始升級(jí)的時(shí)間點(diǎn)+3min為整點(diǎn)時(shí),升級(jí)時(shí)長(zhǎng)達(dá)到最大將升級(jí)240min,當(dāng)開(kāi)始時(shí)間+3min為59分時(shí),達(dá)到最小將升級(jí)181min。
- '%Y-%m-%dT%HZ'