前面的文章中和大家一起讨论了如何使用Azure Monitor去收监视服务的运行状态以及系统的资源使用情况,来帮助我们了解系统的运行状况。但是想必大家都清楚,我们有很多工作要去完成,没有时间24小时的盯着监控屏幕,所以我们就需要在监控到问题时,通过邮件,短信,电话等告警方式来提示我们进行处理,从而确保系统的稳定运行。在Azure中,我们可以使用Alert来实现这一功能。
为了可以更好的使用Alert,我们需要了解如下事情:
指标警报和日志警报
在Azure Monitor我们有几种类型的警报。分别是指标警报、日志警报、活动日志警报和变更跟踪警报。今天我们将主要和大家讨论两个最基础的警报类型,即指标警报和日志警报。部分的指标警报可以不使用日志分析工作区(日志搜索)就可以创建的。也就是说,如果没有日志分析工作区(日志搜索),我们可能就不能创建“某些”指标警报。例如,要对虚拟机的内存发出警报,我们就需要一个日志分析工作区并使用Perf进行相关的查询。
指标警报比日志警报更快
以如下查询为例:Perf | where CounterName == "% Committed Bytes In Use" and CounterValue > 90
上面这条查询语句是用来查询内存使用率超过90%的情况,若我们针对这个查询来设置alert,则他会执行与指标警报完全相同的操作,但是因为这是一个日志警报,需要收集相关数据信息并进行搜索。因此,浙江比将警报设置为度量劲爆稍慢一些
使用指标维度
当我们在Azure中设置alert时,我们需要确定好相应的维度。在此以虚拟机为例,我们可以选择对某些特定的VM设置警报,也可以选择使用“ * ” 来对当前工作区内的所有计算机和新增计算机设置警报。
因为我们的指标警报有很多个维度,所以在设置之前,需要仔细的查看对于的内容,确保我们所设置的指标是我们想要获得提醒的。
如下图中的一些指标标适用于Windows,而某些指标适用于Linux。例如,Windows计数器下没有可用内存百分比。
在日志警报上使用Project
在使用日志警报是,我强烈建议各位朋友使用project,使用project可以限制警报只发送必须的字段,这会对我们基于邮件的警报非常有帮助,同时也有助于我们触发LopicApps,Azure Functions和Azure Automation Runbook的自动修复操作组
例如我们可以使用此查询来查询后台打印机服务是否已经停止:
ConfigurationData
| where SvcName == "Spooler" and SvcState == "Stopped"
| project Computer, SvcName, SvcState, SvcDisplayName, TimeGenerated
使用上述语句查询出来的都是我所需要的数据,如触发警报的计算机、服务名称、服务状态、服务显示名称和生成时间。可以看出,通过Project可以只讲我们想要的数据发送到action group
通用警报架构
创建通用警报架构是为了使Metric,Log和活动日志警报之间的警报能够标准化,每个警报都有自己的模板和架构。
如果我们创建了Action Group,则我们会在这里看到这个“启用通用警报”按钮:
来源:51CTO
作者:wuyvzhang
链接:https://blog.51cto.com/wuyvzhang/2472859