在多数的运维工做中,咱们除了要关注系统资源的使用率也要关注应用服务的健康情况,从而确保系统能够持续的对外提供服务。那么咱们如何使用Azure Monitor来监控服务的健康情况呢。监视Windows和Linux服务的最佳选择之一是利用Azure自动化中的变动跟踪解决方案。
使用变动跟踪解决方案,能够跟踪Windows/Linux系统上的更改。在Windows它支持跟踪文件、注册表、服务和已安装软件的更改;在linux中它支持跟踪文件,软件和守护进程的更改。
默认状况下,变动跟踪解决方案会每隔30分钟收集一次服务的更改,蛋能够将其配置为每10秒收集一次。可是有一点须要注意,此中方式指跟踪更改,而不跟踪当前状态。也就是说,若是没有更改,则没有数据会发送到log analytics中。
在接下来的文章中,咱们会重点关注Windows服务的监视,可是该概念对于Linux守护程序的工做原理相同。linux
启用变动跟踪
若使用GUI的话,咱们有两种方式能够启用变动跟踪:运维
从Log Analytics工做区启用
在log analytics中点击“workspace summary”--“+Add”--“Change Tracking”:
点击“Change Tracking”后会打开其描述选项卡,而后点击建立,根据提示输入自动化帐户信息便可:ide
ps:我的以为在自动化帐户中启用变动跟踪更方便写测试
查询收集到的数据spa
咱们能够经过以下查询语句来列出最新收集到的数据。可是请你们注意,如咱们以前所说,咱们只能收集到变动的数据,对于其余没有变动的状态咱们是收集不到的。并且若是虚拟机忽然崩溃,咱们也可能不会收集到相应的变动实践。可是你们无需担忧,咱们可使用其余的查询语句来监控vm的存活性。3d
let utcoffset = 8h; ConfigurationData | where ConfigDataType == "WindowsServices" | where SvcName == "W3SVC" | extend localTimestamp = TimeGenerated + utcoffset | project localTimestamp, Computer, SvcDisplayName, SvcState | order by localTimestamp desc | summarize arg_max(localTimestamp, *) by SvcDisplayName
配置服务变动警报:
在通常的运维场景中,咱们确定是但愿当检测到服务出现问题之后能够经过邮件等方式通知相应的运维人员进行处理。因此在此咱们能够根据服务变动来配置相应的警报规则。在此示例中咱们用来查询、警告IIS(W3SVC)服务是否中止:code
ConfigurationChange | where ConfigChangeType == "WindowsServices" and SvcName == "W3SVC" and SvcState == "Stopped"
设置完警报后,咱们能够手动的将测试环境的iis服务中止,服务中止后,咱们的邮箱会收到以下警报:blog