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
目录下。
export GPDB_DATA_SOURCE_URL=postgres://gpadmin:password@10.17.20.11:5432/postgres?sslmode=disable
./greenplum_exporter --web.listen-address="0.0.0.0:9297" --web.telemetry-path="/metrics" --log.level=error
注:环境变量 GPDB_DATA_SOURCE_URL 指定了连接 Greenplum 数据库的连接串(请使用 gpadmin 账号连接 postgres 库),该连接串以 postgres:// 为前缀,具体格式如下:
postgres://gpadmin:password@10.17.20.11:5432/postgres?sslmode=disable
postgres://[数据库连接账号,必须为gpadmin]:[账号密码,即 gpadmin 的密码]@[数据库的IP地址]:[数据库端口号]/[数据库名称,必须为postgres]?[参数名]=[参数值]&[参数名]=[参数值]
- 获取指标
在 exporter 成功启动后,可以在本机上执行 curl 命令,确认是否已经将 greenplum 的指标暴露为 prometheus 指标格式。
curl http://127.0.0.1:9297/metrics
如果出现如下输出则说明 exporter 运行成功,下一步可以用观测云 prom 采集器进行指标采集。
附1:更多启动参数
当前 exporter 的更多启动参数如下:
usage: greenplum_exporter [<flags>]Flags:-h, --help Show context-sensitive help (also try --help-long and --help-man).--web.listen-address="0.0.0.0:9297" web endpoint--web.telemetry-path="/metrics" Path under which to expose metrics.--disableDefaultMetrics do not report default metrics(go metrics and process metrics)--version Show application version.--log.level="info" Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]--log.format="logger:stderr" Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"
部署 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。
datakit service -R
再次执行以下命令查看采集上报信息。
datakit monitor
可以看到左下角的 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 集群进行有效监控的极佳选择。