Greenplum 最佳实践

Greenplum 简介
Greenplum 是一个基于大规模并行处理(MPP)架构的高性能、高可用的数据库系统,它主要用于处理和分析大规模数据集。Greenplum 的架构由 Master 节点和 Segment 节点组成,其中 Master 节点负责接收客户端的查询请求并分发执行计划,而 Segment 节点则负责存储数据并执行查询计划。这种架构使得 Greenplum 能够利用多台服务器的资源,以并行方式处理大量数据,从而提供快速的查询响应时间。
Greenplum 适用于数据仓库、商业智能和大数据分析等场景,特别是在需要处理 PB 级数据量时,能够提供高效的数据存储和分析能力。Greenplum 的可观测性包括对数据库性能的监控、故障的检测和通知、以及对系统运行状态的可视化。
观测云
观测云是一款统一的可观测平台,可实现对多云、云原生、中间件、应用等进行实时可观测。观测云数据的采集是通过 DataKit 来实现的,通过丰富的采集器可完成对各种指标、日志、链路数据的采集。对 Greenplum 的数据采集,我们将使用观测云的 prom 采集器,配合社区中的 Greenplum exporter 来实现。
操作步骤
安装 Greenplum exporter
笔者推荐大家使用 Github 上的一个"基于 go 语言为 Greenplum 集成 Prometheus 的监控数据采集器",其项目地址为 https://github.com/tangyibo/greenplum_exporter
启动 exporter
以 CentOS 为例,执行如下命令前需要切换到 gpadmin
用户,并确保已经在 /greenplum_exporter
安装目录的 bin
目录下。

注:环境变量 GPDB_DATA_SOURCE_URL 指定了连接 Greenplum 数据库的连接串(请使用 gpadmin 账号连接 postgres 库),该连接串以 postgres:// 为前缀,具体格式如下:
获取指标
在 exporter 成功启动后,可以在本机上执行 curl 命令,确认是否已经将 greenplum 的指标暴露为 prometheus 指标格式。
如果出现如下输出则说明 exporter 运行成功,下一步可以用观测云 prom 采集器进行指标采集。

附 1:更多启动参数
当前 exporter 的更多启动参数如下:
部署 DataKit
登录观测云控制台,点击「集成」 -「DataKit」 - 「Linux」,拷贝第 2 步中的安装命令。

在 greenplum 的 mdw 节点上复制该安装命令,安装 DataKit 。

安装完成后,DataKit 会提示您使用 datakit monitor 来检查 DataKit 的运行状态,如下图所示:

开启 prom 采集器
在服务器上进入 /usr/local/datakit/config.d/prom
文件夹,将 prom.conf.sample
模板文件原地 cp 一个 prom.conf
文件。

编辑该 prom.conf
文件,仅需修改 urls 参数,将其修改为刚才配置的 greenplum exporter 所暴露的指标采集路径。

文件保存后可执行以下命令重启 DataKit。
再次执行以下命令查看采集上报信息。
可以看到左下角的 Enabled Inputs 图表内出现了 prom ,这表明 prom 采集器开关已开启,同时右下角的 Inputs Info 图表可以看到 prom/prom 正在持续上报数据,这表明 prom 采集器已经正常采集并上报数据。

指标
在观测云控制台上,点击「指标」 -「指标管理」 - 「greenplum」,便可以看到已经采集上来的指标和标签。

在「指标分析」功能中可以对指标趋势进行图形化分析。

Greenplum 的关键指标分为集群状态、连接情况、数据情况等,如:
集群情况-当前连接数、集群同步情况、存储空间大小等
用户情况-例如用户总数、账号连接数
数据情况-例如数据膨胀、数据倾斜

监控视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Greenlum”, 选择 “Greenlum 集群监控”,点击 “确定” 。


监控器(告警)
作为一个 Greenplum 数据库管理员,必须监控系统的问题事件,例如一个 Segment 宕机或者一台 Segment 主机磁盘空间耗尽。在已经采集了 greenplum 指标和日志的情况下,我们给出监控 greenplum 集群状态、指标监控的示例,帮助大家快速上手观测云的监控告警功能。
1、监控 master 与 standby master 是否同步
配置思路:exporter 已经使用 greenplum_cluster_sync 指标来表示 master 和 standby master 的同步情况,其结果为 1 表示正常,结果为 0 表示异常。因此我们可以在观测云上配置指标监控,监控 greenplum_cluster_sync 指标的结果,如果当出现 0 或连续 N 次出现 0 时发出告警。

配置方法:在观测云控制台,点击「监控」 -「新建阈值检测」,参考下图的配置完成 greenplum_cluster_sync 的指标检测,表示每分钟对该指标进行 1 次检测,如果连续两次结果为 0 则需要发出“紧急”级别的通知。

2、监控缓存命中率过低的情况
配置思路: exporter 使用 greenplum_server_database_hit_cache_percent_rate 指标来表示缓存命中率,我们以配置缓存命中率低于 80%需发出告警为例进行演示,下图表示对 greenplum_server_database_hit_cache_percent_rate 的值进行监控,每分钟检测 1 次,当结果≤80 则进行告警。

观测云还提供了监控器的预览图表,方便用户提前审视阈值的配置是否合理(下图中浅红色阴影部分表示当前的阈值将会触发告警)。

总结
相对于其他几种监控工具而言,观测云以开箱即用的采集器、灵活易用的仪表板和强大的监控告警能力见长,相信会是广大 Greenplum 用户对生产环境 Greenplum 集群进行有效监控的极佳选择。
评论