Azure实践之如何批量为资源组虚拟机创建alert
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,通过上一篇的简介,相信各位对于简单的创建alert,以及Azure monitor使用以及大概有个印象了。基础的使用总是非常简单的,这里再分享一个常用的alert使用方法实际工作中,不管是日常运维还是
千家信息网最后更新 2024年11月22日Azure实践之如何批量为资源组虚拟机创建alert
通过上一篇的简介,相信各位对于简单的创建alert,以及Azure monitor使用以及大概有个印象了。基础的使用总是非常简单的,这里再分享一个常用的alert使用方法
实际工作中,不管是日常运维还是做项目,我们都需要知道VM的实际性能情况,避免出现性能瓶颈,因此创建alert是一种非常方便的方式,我们可以通过alert第一时间知道系统出现了性能的瓶颈,以便尽快采取解决措施。
因此,也衍生了一个实际的问题,单独为一台VM开启alert很简单,但是如果我们需要为一个资源组内十几甚至几十上百台VM统一创建alert,则会非常麻烦
在这里分享一个自己写的简单脚本,可以通过批量的方式为一个资源组内的所有VM,或者是某个单独的VM创建alert,省去很多不必要的重复性工作,以下是代码的内容
<# .NOTES =========================================================================== Created with: SAPIEN Technologies, Inc., PowerShell Studio 2017 v5.4.134 Created on: 2019/1/10 13:19 Created by: mxy Organization: Filename: =========================================================================== .DESCRIPTION A description of the file.#>param( [parameter(Mandatory = $true)] [string]$RGName,#资源组名称 [parameter(Mandatory = $false)] [string]$VmName,#VM名称 [parameter(Mandatory = $true)] [string]$MailAddress,#邮件地址 [parameter(Mandatory = $false)] [ValidateSet("CPU", "Memory")] [string]$Metric = "CPU",#需要针对哪个metric创建alert,方便起见这里目前只是设置了CPU和内存两种 [parameter(Mandatory = $false)] [ValidateSet("GreaterThan", "GreaterThanOrEqual", "LessThan", "LessThanOrEqual")] [string]$Operation = "GreaterThan",#操作条件 [parameter(Mandatory = $false)] [int]$Threshold = 50,#阈值 [parameter(Mandatory = $false)] [ValidateSet("Average", "Last", "Maximum", "Minimum", "Total")]#计算方式,是平均还是最大等 [string]$TimeAggregationOperator = "Average", [parameter(Mandatory = $false)] [TimeSpan]$WindowSize = "00:05:00"#时间戳 )function Write-DateTimeMessage{ param ( [parameter(Mandatory = $false)] [switch]$Warning, [parameter(Mandatory = $true)] [string]$Message, [parameter(Mandatory = $false)] [string]$ForegroundColor ) if ($Warning) { Write-Warning ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) } else { if ($ForegroundColor) { Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) -ForegroundColor $ForegroundColor } else { Write-Host ($(Get-Date -UFormat '%Y/%m/%d %H:%M:%S') + " * " + $Message) } } }#Get metric nameswitch ($Metric){ Memory { $MetricName = "\Memory\% Committed Bytes In Use" } CPU { $MetricName = "\Processor Information(_Total)\% Processor Time" } default { # }}#Find the vm if vmname parameter specifiedtry{ $Error.Clear() if ($VmName) { Write-DateTimeMessage "Trying to find vm $VmName in resource group $RGName" $vms = Get-AzureRmVM -ResourceGroupName $RGName -Name $VmName -ErrorAction Stop Write-DateTimeMessage "vm $VmName Found in resource group $RGName" } else { $vms = Get-AzureRmVM -ResourceGroupName $RGName -ErrorAction Stop } # Create action email $actionEmail = New-AzureRmAlertRuleEmail -CustomEmail $MailAddress -WarningAction SilentlyContinue # Get resource id and add alert if ($vms -ne $null) { foreach ($vm in $vms) { $vmID = $vm.id $AlertName = $vm.Name + "_Alert_" + $Metric + "_" + $Operation + "_" + $Threshold + "_" + $actionEmail.CustomEmails $Error.Clear() Write-DateTimeMessage "Trying to add alert for vm $($vm.Name) ..." Add-AzureRmMetricAlertRule -Name $AlertName -Location "ChinaEast" -ResourceGroup $RGName -TargetResourceId $vmID -MetricName $MetricName -Operator $Operation -Threshold $Threshold -WindowSize $WindowSize -TimeAggregationOperator $TimeAggregationOperator -Action $actionEmail -ErrorAction 'Stop' -WarningAction 'SilentlyContinue' | Out-Null Write-DateTimeMessage "Add alert for vm $($vm.Name) successfully!" } } else { Write-DateTimeMessage "No vm in resource group $RGName" } }catch{ Write-DateTimeMessage $Error[0].Exception.Message}
可以看到脚本很简单,运行方法这里举个例子,比如要为mxytest这个资源组下的所有VM创建CPU10分钟之内大于80便发邮件给abc@abc.com的alert,则可以按照以下方式运行
.\Create-AzureAlert.ps1 -RGName mxytest -MailAddress "abc@abc.com" -Metric CPU -Operation GreaterThan -Threshold 80 -TimeAggregationOperator Average -WindowSize "00:10:00"
创建完成后即可在alert中国看到对应的内容
Get-AzureRmAlertRule -ResourceGroupName mxytest -WarningAction SilentlyContinue
也可以通过PowerShell获取到信息
资源
方式
可以通过
实际
性能
内容
名称
方法
瓶颈
脚本
还是
邮件
工作
运行
最大
代码
使用方法
例子
信息
内存
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
vb数据库的目的是什么
论文校园网网络安全设计架构
网络安全检测平台的功能
数据库需求分析采用的方法
多维数据库教程
东北亚数据库在哪里
两会期间网络安全排查情况
通讯管理机和服务器
oracle数据库set
刺激战场吃鸡服务器设置
数据库制作动画
北京伊友互联网科技公司
浙江卫星同步服务器设置云服务器
四川公需科目网络安全考试答案
湖州定制软件开发多少钱
教育网络安全总结
软件开发队企业资质的要求
武汉大学 网络安全
网络安全宣传漫画海报
uc 免流 代理服务器 地址
软件开发部部长 绩效考核
成都超级梦网络技术股份有限
手机做模型用什么软件开发
软件开发及销售企业的进项
南京节能软件开发怎么样
软件开发工作室经营范围
网络安全行业面试题
小拉出行服务器繁忙结不了订单
晋城商显触摸软件开发公司
微信的数据库模式er图