头图

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 集群进行有效监控的极佳选择。


观测云
21 声望85 粉丝

云时代的系统可观测平台


引用和评论

0 条评论