可以通过几种方法来实现未充分利用的Azure VM的关闭,每种方法都具有自己的优势和复杂性。
1。azure自动划分功能
最简单的方法是使用Azure的内置自动检查功能。这使您可以为VM关闭特定时间,这可以帮助降低非高峰时段的成本。要配置以下内容:
- 登录到Azure门户。
- 导航到您要配置的VM。
- 在“操作”部分下,选择自动检查。
- 将开关切换到ON,设置所需的关闭时间,并选择通过电子邮件或Webhook [1] [9] [10]配置通知。
但是,此方法不会自动重新启动VM或处理CPU利用等复杂条件。
2。Azure自动化
对于更复杂的方案,例如基于CPU利用率或其他条件关闭VM,可以使用Azure自动化。这涉及创建可以根据特定标准停止VM的运行手册:
- 创建一个Azure自动化帐户:这对于运行管理Azure资源的脚本是必需的[3]。
- 创建一本运行手册:编写一个PowerShell脚本,该脚本检查VM的状态并在未充分利用的情况下停止它。例如,您可以检查CPU使用情况并停止VM,如果它低于一定阈值[3] [4]。
- 设置一个时间表:将运行簿链接到时间表,以便定期运行以检查并可能停止未充分利用的VM [3]。
3。Azure警报和行动组
另一种方法是使用Azure监视器根据CPU利用率或其他指标创建警报。当这些警报触发时,他们可以调用停止VM的动作组:
- 创建一个警报规则:在Azure监视器中设置警报,该警报在VM的CPU利用率低于一定阈值[4] [6]时会触发。
- 配置一个操作组:设置一个操作组,其中包括一个Webhook或其他操作,以在触发警报时停止VM [2] [4]。
4。Azure功能
Azure功能也可以用于自动化VM关闭。您可以创建一个按时间表或基于触发器运行的函数,并使用Azure的API停止VMS:
- 创建一个函数应用程序:开发一个检查VM利用率并在必要时将其停止的函数[5]。
- 安排功能:使用Azure的调度功能以特定时间或间隔[5]运行该功能。
每种方法都有其自身的优势,可以根据您的需求的复杂性和环境规模来选择。
引用:
[1] https://learn.microsoft.com/en-us/azure/virtual-machines/auto-shutdown-vm
[2] https://www.brentmcconnell.com/2021/04/26/autoshutdown
[3] https://dev.to/rajeshkumaryadavdotcom/how-to-shutdown-your-azure-virtual-machine-automotical-when-idle-for-x-for-x-x-minute-a-a step-a stepepepepepepepepepepepepepepepepepepepepepep-guide-24jn
[4] https://learn.microsoft.com/en-us/azure/virtual-machines/cost-optimization-best-practices
[5] https://www.reddit.com/r/azure/comments/xtdaa4/automating_stopping_vms/
[6] https://stackoverflow.com/questions/57897996/underutilized-virtual-machines-azure-Alerts
[7] https://stackoverflow.com/questions/71391125/is-it-possible-to-automate-shutdown-hutdown-in-azure-vms-to-save-to-save-costs
[8] https://developer.harness.io/docs/cloud-cost-management/use-ccm-cost-optimization/ccm-recommendations/azure-vm/
[9] https://impulztech.com/optimizing-azure-workloads-automate-vm-startup-and-shutdown/
[10] https://turbo360.com/blog/auto-shutdown-azure-vm-when-idle