跟我学:基于Prometheus+Grafana的PolarDB-X监控体系

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: 本文整理阿里云数据库技术专家吴迪,在PolarDB-X动手实践系列的分享。

跟我学:基于Prometheus+GrafanaPolarDB-X监控体系

摘要:本文整理阿里云数据库技术专家吴迪,在PolarDB-X动手实践系列的分享。

本篇内容主要分为四个部分:

1.    动手实践系列介绍

2.    环境准备

3.    原理介绍

4.    演示内容

 

一、动手实践系列介绍

image.png

PolarDB-X采用Shared-nothing与存储分离计算架构进行设计,系统由4个核心组件组成。PolarDB-X社区版围绕开源PolarDB-X,对应商业2.0版本。


PolarDB-X社区版主要面向应用开发者、架构师、DBA等。

image.png

PolarDB-X是一款基于云架构理念,同时支持在线事务处理与在线分析处理,融合型分布式数据库产品。专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等数据库瓶颈难题,助力企业加速完成业务数字化转型。

 

二、环境准备

image.png

在搭建环境之前,用户需要确定系统是CentOS 78macOSUbuntu18以上;Windows 10以上。相关配置需要大于等于8C32G。搭建环境需要的软件有:Docker&K8SPolarDB-X 2.1.0

image.png

PolarDB-X采用Shared-nothing与存储计算分离架构进行设计,系统由4个核心组件组成。主要包括:计算节点、存储节点、元数据服务以及日志节点。


计算节点是系统的入口,采用无状态设计,包括SQL解析器、优化器、执行器等模块。


存储节点负责数据的持久化,基于多数派Paxos协议提供数据高可靠、强一致保障,同时通过MVCC维护分布式事务可见性。


元数据服务负责维护全局强一致的Table/Schema,Statistics等系统Meta信息,维护账号、权限等安全信息,同时提供全局授时服务(即TSO)。


日志节点提供完全兼容MySQL Binlog格式和协议的增量订阅能力,提供兼容MySQL Replication协议的主从复制能力。

 

三、原理介绍

image.png

如何对PolarDB-X进行运维管理呢?K8S是不二选择。阿里在K8S集群构建了相应的扩展,提供了PolarDB-X OperatorOperatorPolarDB-XK8S集群,进行相应的创建以及生命周期的管理。


与此同时,Operator提供了弹性伸缩、高可用以及监控审计等运维能力。监控能力便是在K8S之上,基于开源的PrometheusKubernetes进行打造。与此同时,Operator的代码也在Github进行开源。

 

四、演示内容

image.png

首先,安装PolarDB-X MonitorPolarDB-X通过PrometheusGrafana来监控PolarDB-X集群。PolarDB-X Monitor集成了kube-promethus组件栈,通过安装PolarDB-X Monitor即可一键部署监控所需的资源和组件。大家可以在Github页面上找到详细的监控文档。

image.png

首先,准备运行中的K8s集群,安装PolarDB-X Operator 1.2.0及以上的版本。

然后,安装Helm包。创建一个名为polardbx-monitor的命名空间。安装PolarDB-X Monitor CRD。用户也可以通过PolarDB-XHelm Chart仓库进行安装。

image.png

PrometheusGrafana都采用默认配置,便于快速体验。如果部署在生产集群,用户可以参考定制PolarDB-X Monitor配置。


如果用户在minikube上,安装PolarDB-X Monitor。可能会因为资源不够导致组件无法创建,可以参考配置PrometheusGrafana规格调整组件的规格

PolarDB-X Monitor安装完成后,会在K8s集群的polardbx-monitor命名空间下,创建prometheusgrafana等组件,以此来监控K8s内的PolarDB-X,通过如下命令检查相关组件是否正常,确认所有的pod都处于Running状态。

image.png

完成上述操作后,开启PolarDB-X监控。PolarDB-X集群的监控采集功能,默认是关闭的。用户需要为监控的PolarDB-XCluster创建PolarDB-XMonitor对象,然后进行开启。


其中,spec.clusterName的意思是:需要开启监控的PolarDB-X集群名称;spec.monitorInterval的意思是:监控数据采集频率,一般默认30s

spec.scrapeTimeout的意思是:监控数据采集的超时时间,一般默认10s

image.png

接下来,开始访问Grafana Dashboard。用户在默认情况下,执行相关命令,将Grafana端口转发到本地。然后,在浏览器中输入:http://localhost:3000,即可访问PolarDB-X Dashboard。其中,默认的用户名和密码都是admin

image.png

gms,给出了gms节点的CPU、内存使用情况,网络指标。在cn节点,除了基本的节点资源利用率,还展示了历史资源利用率。所有信息通过表格,展示节点的资源利用率。监控图表展示历史监控曲线。

image.png

由于Grafana的配置存储在ConfigMap中,用户在Grafana中修改的密码或者新增的Dashboard不会被持久化,一旦Grafana Pod重建,这部分配置会丢失,所以请注意提前保存。


如果用户的K8s集群,支持LoadBalancer,用户可以为GrafanaService配置LoadBalancer进行访问。


如果用户的K8s集群内有多个PolarDB-X Cluster,可以通过Grafana页面上面的下拉框切换NamespacePolarDB-X Cluster


上图中的QPS指标分成逻辑QPS和物理QPS。逻辑QPS代表,cn节点收到的应用服务器发来的逻辑请求,它产生了所有的QPS。物理QPS将用户应用侧服务器,转换的逻辑SQL进行相应的分布式计算和路由。然后,转换成对应的物理SQL,下发到每个dn产生的QPS


如果一个业务系统的逻辑QPS和物理QPS基本接近。说明业务场景,偏向点查点写。基本只涉及单分片的查询或写入。这是比较好的表现。

image.png

上图是Prometheus的架构图。Prometheus Server主要负责数据采集和存储,提供PromQL查询语言的支持。


Prometheus Server包含了三个组件,Retrieval获取监控数据;TSDB是时间序列数据库,可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。HTTP Server为告警和出图提供查询接口。


其中,TSDB的大部分时间都是顺序写入操作,很少涉及修改数据;TSDB的删除操作都是删除一段时间的数据,而不涉及到删除无规律数据;TSDB的读操作一般都是升序或者降序

image.png

左图是所有采集的监控指标,主要有GMS,DN,DN,CDC,Node。每个指标都包含了exporter。除此之外,PolarDB-X监控架构采集CPU、内存等信息。


Prometheus Cluster通过K8S自带的Prometheus Operator进行管理,它能部署和管理k8sPrometheus的集群。PolarDB-X monitor通知Prometheus需要监控的对象,然后及时采集每个PolarDB-X集群的监控指标。

image.png

接下来,演示PolarDB-X监控,服务发现的部分。首先扩容CN,然后检查Prometheus target的状态,最后通过Grafana查看新增的CN监控。

image.png

访问Prometheus,在浏览器中输入:http://localhost:9090,即可访问到Prometheus页面。如果K8s集群支持LoadBalancer,可以为PrometheusService配置LoadBalancer进行访问。

image.png

接下来,简单介绍一下监控指标,然后手动计算QPS。对于Prometheus而言,它的监控指标的格式都是<metric name>{<label name>=<label value>,.….}

上图的监控指标,意思是CN pod收到的所有SQL请求,其总数是一个累计值。

polardbx_stats_request_count是请求总数;polardbx_name是实例名称;polardbx_rolepod角色,主要有cn,dn,cdc,gmsschema是逻辑库名;Podpod的名称。

image.png

接下来,在Prometheus页面查看监控指标。点击Prometheus,回到查询页面。每个指标都有对应的值,本质上要计算累计值的变化趋势,对应的是QPS情况。

image.png

查询pxc-demo实例sysbench库的请求总量,输入:

polardbx_stats_request_count_total{polardbx_name="pxc-demo",schema="sysbench"}

查询pxc-demo实例sysbench库的QPS,输入:

Irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo",schema="sysbench"}[1m])

其中,rate是计算区间向量v在时间窗口内平均增长速率。Irate是通过区间向量中最后两个样本数据来计算区间向量的增长速率,更好的灵敏度。

image.png

查询pxc-demo实例的QPS,输入:

sum(irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo"}[1m]))

查询pxc-demo实例每个CN节点的QPS,输入:

sum(irate(polardbx_stats_request_count_total{polardbx_name="pxc-demo"}[1m]))by(pod)

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana(docker安装)
本文档详细介绍了如何使用Docker容器快速部署Prometheus监控系统和Grafana数据可视化平台。该方案适用于需要快速搭建监控环境的开发测试场景,具备部署简单、资源占用低、易于维护等特点。
|
9月前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
438 20
|
9月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
715 7
|
9月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
1145 3
|
9月前
|
Prometheus 监控 前端开发
Grafana 安装配置教程,让你的 Prometheus 监控数据变得更美观
《Grafana安装配置教程,让你的Prometheus监控数据变得更美观》简介: Grafana是一个开源的度量分析与可视化工具,支持多种数据源(如Prometheus),提供丰富的可视化功能和警报机制。本文详细介绍了Grafana的安装、汉化方法及模板使用,帮助用户轻松创建美观、灵活的数据面板,并实现数据的协作与共享。通过Docker镜像、配置文件修改或替换前端页面等方式实现汉化,让用户更便捷地使用中文界面。此外,还提供了导入JSON格式模板的具体步骤,方便快速搭建仪表盘。
771 2
|
9月前
|
Prometheus Cloud Native Linux
Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统
本文介绍了使用 Prometheus 和 Grafana 实现邮件报警的方案,包括三种主要方法:1) 使用 Prometheus 的 Alertmanager 组件;2) 使用 Grafana 的内置告警通知功能;3) 使用第三方告警组件如 OneAlert。同时,详细描述了环境准备、Grafana 安装配置及预警设置的步骤,确保用户能够成功搭建并测试邮件报警功能。通过这些配置,用户可以在系统或应用出现异常时及时收到邮件通知,保障系统的稳定运行。
749 1
|
3月前
|
Prometheus 监控 Cloud Native
云原生监控实战:Prometheus+Grafana快速搭建指南
云原生监控实战:Prometheus+Grafana快速搭建指南
|
3月前
|
存储 Prometheus 监控
OSS监控体系搭建:Prometheus+Grafana实时监控流量、错误码、存储量(开源方案替代云监控自定义视图)
本方案基于Prometheus构建OSS监控系统,涵盖架构设计、指标采集、可视化、告警及性能优化,助力企业实现高可用、低成本的自建监控体系。
340 1
|
4月前
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
336 79
|
3月前
|
存储 监控 Cloud Native
云原生监控实战:Prometheus+Grafana打造RDS多维度预警体系
本方案构建了基于Prometheus与Thanos的云原生RDS监控体系,涵盖数据采集、存储、可视化与告警全流程。支持10万+QPS采集、90%存储压缩,具备&lt;30秒告警延迟能力。通过自定义指标与智能预警策略,显著提升故障发现效率,实现分钟级响应。
242 5

相关产品

  • 云原生数据库 PolarDB
  • 推荐镜像

    更多