如何使用Prometheus监控TiDB
本文介绍如何使用Prometheus监控TiDB。
前提条件
已将VPC实例接入可观测监控 Prometheus 版。具体操作,请参见Prometheus实例 for ECS。
自建Prometheus观测TiDB的痛点
使用自建Prometheus监控VPC内ECS上自建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
功能入口
功能入口一:集成中心
- 登录ARMS控制台。
- 在左侧导航栏选择 ,进入可观测监控 Prometheus 版的实例列表页面。
- 单击目标Prometheus实例名称,进入集成中心页面。
功能入口二:接入中心
登录ARMS控制台。
在左侧导航栏单击接入中心,然后在组件应用区域单击TiDB卡片的安装,然后在弹出的页面根据控制台指引完成组件接入。
步骤一:接入TiDB
这里以从集成中心入口为例,介绍接入TiDB组件的操作,具体步骤如下。
接入TiDB组件。
若您初次安装TiDB类型的组件:
在集成中心页面单击未安装区域TiDB组件卡片的安装。
若您已安装TiDB类型的组件,需要再次添加该组件:
在集成中心页面单击已安装区域TiDB组件卡片的添加。
在STEP2区域的配置页签配置相关参数,并单击确定,完成组件接入。
参数
说明
Exporter名称
当前TiDB实例监控的名称,建议可使用TiDB自身的名称。
TiDBServer Metrics监听端口
TiDB各组件Metric的监听端口,以便可观测监控 Prometheus 版访问这些端口获取监控数据。
TiKVServer Metrics监听端口
TiPDServer Metrics监听端口
TiControlServer Metrics监听端口
TiDBServer Metrics采集路径
TiDB各组件Metric的HTTP采集路径,通常是
/metrics
。TiKVServer Metrics采集路径
TiPDServer Metrics采集路径
TiControlServer Metrics采集路径
TiDBServer Pod/ECS标签(服务发现)
TiDB各组件在VPC内ECS的标签,以便可观测监控 Prometheus 版根据标签查找出目标ECS列表。
TiKVServer Pod/ECS标签(服务发现)
TiPDServer Pod/ECS标签(服务发现)
TiControlServer Pod/ECS标签(服务发现)
TiDBServer的Pod/ECS标签值
TiDB各组件在VPC内ECS的标签值。
TiKVServer的Pod/ECS标签值
TiPDServer的Pod/ECS标签值
TiPDServer的Pod/ECS标签值
metrics采集间隔(秒)
可观测监控 Prometheus 版采集TiDB监控数据的时间间隔,默认30秒。
说明在STEP2区域的指标页签可查看监控指标。
已接入的组件会显示在集成中心页面的已安装区域。单击该组件卡片,在弹出的面板中可以查看Targets、指标、大盘、告警、服务发现配置、Exporter等信息。集成中心的更多信息,请参见集成中心。
步骤二:查看TiDB大盘数据
可观测监控 Prometheus 版默认集成了TiDB常用的20多个Grafana大盘,您无需单独安装Grafana,即可查看TiDB各个组件的观测大盘。
在集成中心页面单击已安装区域的TiDB组件卡片,然后在弹出的对话框中单击大盘页签可以查看该组件的大盘略缩图和超链接,单击超链接进入阿里云Grafana页面,查看对应观测大盘。
步骤三:配置TiDB监控告警
在集成中心页面单击已安装区域的TiDB组件卡片,然后在弹出的面板中单击告警页签(图标①),展开告警分组下拉框(图标②),查看TiDB组件的所有Prometheus告警规则。
可观测监控 Prometheus 版会自动创建TiDB各组件关键的30多个告警规则,然后需要您手动修改告警规则阈值后启动即可。您还可以根据业务需求新增告警规则。创建Prometheus告警规则的具体操作,请参见Prometheus告警规则。