如何使用Prometheus监控TiDB

本文介绍如何使用Prometheus监控TiDB。

前提条件

已将VPC实例接入可观测监控 Prometheus 版。具体操作,请参见Prometheus实例 for ECS

自建Prometheus观测TiDB的痛点

使用自建Prometheus监控VPCECS上自建TiDB时,可能面临的典型问题有以下几点:

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

  • 每套完整的自建监控系统都需要安装并配置Prometheus、Grafana、AlertManager等,其过程复杂、实施周期长。

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

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

  • 缺少TiDB告警项模板,需要您自行配置告警规则,导致消耗的工作量较大,且技术实现困难。

自建Prometheus与阿里云Prometheus的对比

可观测监控 Prometheus 版ECS无缝集成,默认提供了TiDB的各个组件(包括:TiDB、TiPD、TiKV、TiConsole等)的核心监控指标采集,同时提供了对应的监控大盘和告警指标,为您提供了开箱即用的TiDB监控能力。

TiDB监控场景下,自建Prometheus可观测监控 Prometheus 版的详细对比如下:

对比项

自建Prometheus

可观测监控 Prometheus 版

部署、维护成本

多个VPC内,需要您自购ECS部署Prometheus、Grafana、AlertManager,运维成本高。

可观测监控 Prometheus 版、Grafana及告警中心的一体化、全托管、免运维、开箱即用。

可用性、性能、数据容量

高可用能力不足、性能低、数据容量规模小。

高可用、高性能、大数据容量。

服务发现

ECS环境下,通过开源Static_Configs、三方注册中心等方式采集服务发现,使用不便,且维护成本高

内置了aliyun_sd_configs,方便您使用ECS标签进行目标ECS匹配,达到与Kubernetes场景的LabelSelector一致体验,极大简化服务发现的配置和维护复杂度。

Grafana大盘

开源Grafana TiDB大盘通常较单一,大多只是直接展示采集的Metric,缺少结合TiDB原理和最佳实践进行深入优化。

提供专业TiDB大盘模板,方便您快速、精准掌握TiDB全链路运行情况,并定位排查问题。

告警规则

缺少TiDB告警指标模板,需要用户自行研究、配置告警规则。

根据TiDB监控实践,提供专业、灵活的告警指标模板,您可以白屏化配置各告警规则。

通过上述对比可以看出,使用可观测监控 Prometheus 版观测TiDB可以极大的简化您的运维流程并降低运维成本,使用可观测监控 Prometheus 版观测TiDB具体操作,请参见下文使用Prometheus监控TiDB

使用Prometheus监控TiDB

步骤一:接入TiDB

  1. 登录ARMS控制台

  2. 在左侧导航栏单击接入中心,然后在数据库区域,单击TIDB,在弹出的页面根据控制台指引完成组件接入。

  3. 根据需求选择所属环境类型,监控目标的环境可以选择容器服务环境或者ECS(VPC),然后选择容器服务集群或者选择VPC

  4. 开始下方的配置信息相关参数设置,并单击确定

    参数

    说明

    接入名称

    自定义接入名称。

    TIDB 集群名称

    TIDB 集群名称(每次接入,需使用不同的集群名称,以防止指标重复采集导致大盘展示错误)

    命名空间

    自定义命名空间。

    PD Server Container 名称

    若存在多个容器名称,则可以用管道符号"|"分隔来进行"或运算"匹配,例如:"pd|pd1"。

    PD Metrics 端口

    PD、TiDB、TiKV各组件Metric的监听端口,以便可观测监控 Prometheus 版访问这些端口获取监控数据。以及MetricHTTP采集路径,通常是/metrics

    PD Metrics 采集路径

    TiDB Server Container 名称

    TiDB Metrics 端口

    TiDB Metrics 采集路径

    TiKV Server Container 名称

    TiKV Metrics 端口

    TiKV Metrics 采集路径

    Metric 采集间隔(单位/秒)

    可观测监控 Prometheus 版采集TiDB监控数据的时间间隔,默认30秒。

    说明

    采集指标页签可查看监控指标。

    已接入的组件可单击ARMS控制台左侧导航栏中的接入管理查看。接入管理页面包括已接入环境已接入组件大盘查询页签,您可以查看Targets、指标、大盘、告警等信息。

步骤二:查看TiDB大盘数据

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

接人管理页面,选择目标集群,然后单击大盘页签可以查看该组件的大盘,单击超链接进入阿里云Grafana页面,查看对应观测大盘。

步骤三:配置TiDB监控告警

接入管理页面,选择目标集群,然后单击告警规则页签,查看TiDB组件的所有Prometheus告警规则。

可观测监控 Prometheus 版会自动创建TiDB各组件关键的30多个告警规则,然后需要您手动修改告警规则阈值后启动即可。您还可以根据业务需求新增告警规则。创建Prometheus告警规则的具体操作,请参见创建Prometheus告警规则