• 可观测实践|如何使用阿里云 Prometheus 观测 ECS 应用


    作者:颍川

    引言

    Prometheus + Grafana 已经成为云原生时代的可观测性事实标准。我们使用 Prometheus 观测云原生时代的 Kubernetes 体系下的 Node、ApiServer、workload 等的基础 metric,同时通过 Prometheus Exporters 采集各种组件(如 Redis、Kafka 等)和业务应用的 metric,最后通过 Grafana 展示大盘、AlertManager 进行告警,实现了云原生 Kubernetes 体系下 metric 可观测闭环。

    由于大量非云原生的历史系统演进到云原生体系是个长时期过程,因此这些非云原生系统的可观测闭环也是我们必须解决的问题。我们很自然地想到“既然 Prometheus + Grafana 实现了云原生体系的 metric 可观测闭环,是否可以使用这套神器来解决非云原生体系应用的同样问题呢?”,答案是肯定的。

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

    ECS 应用的典型部署场景

    场景 1:纯公有云 VPC

    业务应用部署在一个或多个 VPC 内,每个 VPC 内购买了一批 ECS,在这些 ECS 上部署了基础组件(数据库和中间件等)和业务应用。此场景下,我们需要对这些 ECS OS(Linux 或 Windows)、基础组件和业务应用本身进行 metric 观测。

    1.png

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

    业务除了部署公有云 VPC 上外,还需要与线下 IDC 机房进行互通互联。通常,我们使用专线方式打通云上 VPC 和线下 IDC 机房。此场景下,我们期望有一套完整的 metric 观测平台,同时解决线上 VPC 和线下 IDC 的 metric 观测。

    2.png

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

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

    3.png

    自建 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. 缺少常用组件的告警项模板,需要用户自行研究、配置告警项,工作量大,且很可能缺少各组件领域的专业技术沉淀。

    阿里云 Prometheus 监控的能力框架

    阿里云 Prometheus 监控 [ 1] 是一款全面对接开源 Prometheus 生态,支持类型丰富的组件观测,提供多种开箱即用的预置观测大盘,且提供全面托管的混合云/多云 Prometheus 服务。除了支持阿里云容器服务、自建 Kubernetes、Remote Write 外,阿里云 Prometheus 还提供混合云+多云 ECS 应用的 metric 观测能力;并且支持多实例聚合观测能力,实现 Prometheus 指标的统一查询,统一 Grafana 数据源和统一告警。其逻辑架构如下示意:

    4.png

    对于 ECS 应用,阿里云 Prometheus 提供以下 metric 数据采集方式:

    • 托管 exporter:提供 MySQL、Redis 等数十种常见组件 [ 2] (持续更新中)的托管部署。用户只需要在阿里云 Prometheus 控制台配置观测组件相关信息(如 IP 地址、端口等),即可实现 VPC 内 ECS 上这些组件的 metric 监控。由于线下 IDC 通过专线与 VPC 互通,因此托管 exporter 同时也能采集到线下 IDC 内的组件 metric。

    • 非托管 exporter:对于我们暂未提供托管 exporter 的组件,或用户业务应用的自定义 metric,用户可以在 VPC 或 IDC 内部署自定义 exorter,然后在阿里云 Prometheus 控制台上配置自定义服务发现(ServiceDiscovery),最后阿里云 Prometheus 主动发现这些 exporter,并定时抓取和存储 metric。

    • Node/Windows exporter:它们是一类特殊的非托管 exporter,因为需要部署在每台 ECS 上,以便采集 ECS OS 上观测信息。阿里云 Prometheus 提供了 Node exporter 的原生支持,Windows exporter 原生支持也即将上线。

    ECS 应用场景下,自建 Prometheus 与阿里云 Prometheus 对比

    5.png

    如何使用阿里云 Prometheus 观测 ECS 应用

    步骤 1:创建 VPC 实例

    登录 Prometheus 控制台 [ 3] ,选择新建 Prometheus 实例,根据界面提示,填写实例名、选择 VPC / VSwitch / SecurityGroup / Grafana 工作区,即可创建 VPC 实例成功。操作说明详见阿里云帮助中心文档 [ 4]

    6.png

    7.png

    步骤 2:接入组件监控

    目前阿里云 Prometheus 已支持 Node exporter、MySQL、Redis、ElasticSearch、Kafka、Nginx、MongoDB、PostgreSQL、RabbitMQ、RocketMQ、BlackBox 等组件观测。

    阿里云 Prometheus 天然内置支持了 static_configs和aliyun_sd_configs 两种最常用/实用的服务发现方式,方便用户进行组件观测目标 ECS 的配置。

    此处以 MySQL 为例,简要描述接入配置方法。登录 Prometheus 控制台后,进入已创建的 VPC 实例详情的集成中心界面,新建 MySQL 接入,填写 MySQL 监控名称、MySQL 地址、端口、用户名/密码等信息即可。详细操作步骤和说明,参见阿里云帮助中心文档 [ 5]

    8.png

    步骤 3:查看大盘

    阿里云 Prometheus 无缝集成了共享版 Grafana 和专家版 Grafana,用户无需单独安装 Grafana,即可查看各个组件的观测大盘。

    接入需要监控的组件后,在集成中心点击对应组件图标的已安装 Exporter,可以看到该组件的大盘略缩图和链接,点击即可进入阿里云 Grafana,查看对应观测大盘。详见阿里云帮助中心文档 [ 6]

    9.png

    10.png

    步骤 4:配置告警

    进入 VPC 实例详情的集成中心界面,进入 MySQL 组件的告警界面,即可创建 Prometheus 告警规则,详见阿里云帮助中心文档 [ 7]

    11.png

    12.png

    阿里云 Prometheus 提供了免运维、开箱即用的 VPC(以及和 VPC 打通的线下 IDC 机房)内 ECS 的 OS、常见中间件、业务应用的 metric 观测能力,实现了一站式的云原生和非云原生环境的 metric 观测协同和闭环。同时我们正在持续升级和丰富常用组件的观测能力(如 Windows、JMX、ClickHouse、Jenkins、Process 等),敬请期待。

    关于阿里云 Prometheus 监控

    阿里云 Prometheus 服务是基于云原生可观测事实标准 - Prometheus 开源项目构建的全托管观测服务。默认集成常见云服务,兼容主流开源组件,全面覆盖业务观测/应用层观测/˙中间件观测/系统层观测。通过开箱即用的 Grafana 看板与智能告警功能,并全面优化探针性能与系统可用性,帮助企业快速搭建一站式指标可观测体系。助业务快速发现和定位问题,减轻故障给业务带来的影响,并免去系统搭建与日常维护工作量,有效提升运维观测效率。

    13.jpeg

    与此同时,阿里云 Prometheus 作为阿里云可观测套件的重要组成部分,与 Grafana 服务、链路追踪服务,形成指标存储分析、链路存储分析、异构构数据源集成的可观测数据层,同时通过标准的 PromQL 和 SQL,提供数据大盘展示,告警和数据探索能力。为 IT 成本管理、企业风险治理、智能运维、业务连续性保障等不同场景赋予数据价值,让可观测数据真正做到不止于观测。

    更具性价比的计费选择,Prometheus 包年包月

    14.png

    相关链接

    [1] 阿里云 Prometheus监控

    https://help.aliyun.com/document_detail/122123.html

    [2] 常见组件

    https://help.aliyun.com/document_detail/251830.html

    [3] 应用实时监控服务ARMS

    https://arms.console.aliyun.com/#/home

    [4] Prometheus实例 for ECS

    https://help.aliyun.com/document_detail/274450.html

    [5] 使用阿里云Prometheus监控MySQL

    https://help.aliyun.com/document_detail/161838.html

    [6] 集成中心

    https://help.aliyun.com/document_detail/427600.html

    [7] Prometheus告警规则

    https://help.aliyun.com/document_detail/331981.html

  • 相关阅读:
    微信开发-如何自定义页面分享元素
    nginx实现日志按天切割
    JS兼容IE浏览器的方法
    mysql 索引过长1071-max key length is 767 byte
    playframework1.x的eclipse插件开源-playtools
    开放平台-web实现人人网第三方登录
    开放平台-web实现QQ第三方登录
    bash shell执行方式
    pushd和popd
    What do cryptic Github comments mean?
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/16837018.html
Copyright © 2020-2023  润新知