现在越来越多的企业选择将系统构建或迁移到云端,来享受公有云所带来的弹性计算和灵活扩展能力。但是很多用户在将系统迁移到云端之前,都会存在一个小问题:系统在本地运行的时候,可以通过zibbix,SCOM等工具对系统进行监控,以确保系统的稳定运行,那迁移到云端以后我该使用什么样的方式来监控我的应用程序?其实各位大可不必担心,因为每个云平台都会为用户预留出获取监控数据的接口。azure也不例外,在azure中,用户可以通过portal来获取所需要的监控信息,比如虚拟机的CPU使用率,RAM使用率以及磁盘IO等,同时也可以对所监控的数据设置一些操作,如CPU的使用率达到某个百分比的时候触发邮件报警等操作。
微软在Azure中给用户提供了一个名称为Azure Monitor的监控功能,其提供用于收集、分析和处理来自云与本地环境的遥测数据的综合解决方案,可将应用程序的可用性和性能最大化。 它可以帮助我们了解应用程序的性能,并主动识别影响应用程序及其所依赖资源的问题。
![]
Azure Monitor概述_第1张图片

从上图中可以看到,Azure Monitor可以从本地和Azure以及其他云中的各种源收集数据,其收集的数据大致可以分为应用程序、应用程序依赖关系的任何操作系统和服务、azure的平台本身。

  • 应用程序监视数据:有关编写的代码的性能和功能的数据,不管平台是什么。
  • 来宾 OS 监视数据:有关运行应用程序的操作系统的数据。 此应用程序可以在 Azure 中运行,也可以在其他云中或本地运行。
  • Azure 资源监视数据:有关 Azure 资源的操作的数据。
  • Azure 订阅监视数据:有关 Azure 订阅操作和管理的数据,以及有关 Azure 本身运行状况和操作的数据。
  • Azure 租户监视数据:有关租户级 Azure 服务(例如 Azure Active Directory)操作的数据。

Azure Monitor主要收集两种类型的数据,分别是Metrics和logs。Metrics数据为数字值,主要是指各种指标数据,如前面提到的CPu使用率等。logs则为平台或应用程序的各种日志,如系统日志,应用日志等。
对于收集过来的Metrics和Logs数据,可以使用查询来进行分析,通过查询可以快速的检索,合并和分析所收集到的数据。同时可以将查询到的数据对接到不同的平台,从而发挥不同的价值。举例来说,我们可以根据不同的要求将数据制作成不同的可视化图标,并且在azure的Dashboard中展示。如下图所示:
Azure Monitor概述_第2张图片

除此之外我们还可以将数据用于应用程序的自动缩放(当触发某个阀值的时候对应用程序进行水平或垂直扩展)或警报等操作。

除了上述以外,Azure Monitor还支持可以使用多个 API 从/向 Azure Monitor 读取和写入指标与日志,以及访问生成的警报。 还可以配置和检索警报。 这样,几乎可以不受限制地生成与 Azure Monitor 集成的自定义解决方案