如何使用Prometheus监控ECS应用

本文介绍如何使用阿里云可观测监控 Prometheus 版来实现非Kubernetes应用(即ECS应用)的Metric观测。

ECS应用的典型部署场景

场景1:纯公有云VPC

该场景的业务应用部署在一个或多个VPC内,且每个VPC内配置了多个ECS,同时在这些ECS上部署了基础组件(数据库和中间件等)和业务应用。因此我们需要实现对这些ECS OS(LinuxWindows)、基础组件和业务应用本身进行Metric观测。

场景2:公有云VPC+线下IDC

该场景的业务除了需要部署公有云VPC之外,还需要与线下IDC机房进行互通互联。一般情况下您会选择使用专线方式打通云上VPC和线下IDC机房。因此我们需要有一套完整的Metric观测平台,能够同时解决线上VPC和线下IDCMetric观测。

场景3:公有云VPC+多云ECS

该场景的业务除了部署在阿里云VPC上外,还通过公网与其它云上的ECS进行互通互联。因此我们需要有一套完整的Metric观测平台,实现一体化全局视角观测。

自建Prometheus观测ECS应用的痛点

自建Prometheus观测ECS应用,可能面临的典型问题有以下几点:

  1. 由于安全、组织管理等因素,您的业务通常部署在多个相互隔离的VPC,因此这需要您在多个VPC内都重复、独立部署Prometheus,导致部署和运维成本较高。

  2. 每套完整的自建观测系统都需要安装并配置Prometheus、Grafana、AlertManager以及各组件Exporter,其过程复杂,且实施周期较长。

  3. 缺少与阿里云ECS快速集成的服务发现(ServiceDiscovery)机制,因此无法根据ECS标签来灵活定义抓取Targets。如果自行实现类似功能,则需要您使用Golang语言开发代码调用阿里云ECS POP接口,以集成开源Prometheus代码,然后通过编译打包后部署,这种方式实现门槛高、过程复杂、且版本升级困难。

  4. 常用组件的开源Grafana大盘无法结合观测组件的原理与最佳实践进行深入定制。

  5. 缺少常用组件的告警项模板,需要您自行配置告警项,导致消耗的工作量较大,且技术实现困难。

对于ECS应用,Prometheus监控提供以下Metric数据采集方式

  • 托管Exporter:提供MySQL、Redis等多种常见组件的托管部署。您只需要在阿里云可观测监控 Prometheus 版控制台配置观测组件相关信息(例如IP地址、端口等),即可实现VPCECS上这些组件的Metric监控。而且因线下IDC是通过专线与VPC互通,因此托管Exporter同时也可以采集到线下IDC内的组件Metric。

  • 非托管Exporter:对于可观测监控 Prometheus 版暂未提供托管Exporter的组件,或是您业务应用的自定义Metric,您可以在VPCIDC内部署自定义Exporter,然后阿里云可观测监控 Prometheus 版控制台配置自定义服务发现(ServiceDiscovery),通过阿里云可观测监控 Prometheus 版主动发现这些Exporter,实现定时抓取和存储Metric。

  • Node ExporterWindows Exporter:这两种是一类特殊的非托管Exporter,因为需要部署在每台ECS上,以便采集ECS OS上观测信息。阿里云可观测监控 Prometheus 版目前已提供Node Exporter的原生支持。

如何使用阿里云Prometheus监控ECS应用

阿里云可观测监控 Prometheus 版提供了免运维、开箱即用的VPC(以及和VPC打通的线下IDC机房)内ECSOS、常见中间件以及业务应用的Metric观测能力,实现了一站式的云原生和非云原生环境的Metric观测协同和闭环。使用阿里云可观测监控 Prometheus 版观测ECS应用的具体操作如下。

步骤一:创建ECS类型的Prometheus实例

您需要先在可观测监控 Prometheus 版控制台创建ECS类型的Prometheus实例,具体的操作步骤,请参见Prometheus实例 for ECS

步骤二:接入组件监控

目前阿里云可观测监控 Prometheus 版支持Node Exporter、MySQL、Redis、Elasticsearch、Kafka、Nginx、MongoDB、PostgreSQL、RabbitMQ、RocketMQ、BlackBox等多种组件观测。同时内置支持static_configsaliyun_sd_configs两种常用的服务发现方式,便于您进行组件观测目标ECS的配置。

这里以MySQL为例,为您介绍接入配置方法。

  1. 登录ARMS控制台

  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入可观测监控 Prometheus 版的实例列表页面。

  3. 单击目标Prometheus实例名称,进入集成中心页面。
  4. 集成中心页面单击MySQL组件卡片的安装

  5. 在弹出的接入MySQL面板填写相关参数配置。参数配置详情请参见MySQL组件接入

    参数配置完成后,单击确定系统会自动跳转至Targets页签。ce

步骤三:查看大盘

可观测监控 Prometheus 版默认集成常用的Grafana大盘,即您无需单独安装Grafana,即可查看各个组件的观测大盘。

在完成上文步骤二:接入组件监控后,您可以在集成中心页面的已安装区域单击对应的组件卡片,然后在弹出的对话框中单击大盘页签可以查看该组件的大盘缩略图和超链接,单击超链接进入阿里云Grafana页面,查看对应观测大盘。rl

步骤四:配置告警

单击告警页签,您可以为MySQL组件创建Prometheus告警规则来查看监控告警信息。创建Prometheus告警规则的具体操作,请参见Prometheus告警规则