了解更多Greenplum相关内容,欢迎访问Greenplum中文社区网站
Greenplum是全球首个开源MPP数据库,内核基于PostgreSQL。目前迭代迅速,内核已经由PostgreSQL 8.2升级到了9.x。随着这款数据库在国际国内的大规模推广,企业级用户越来越多的将Greenplum选用为大数据分析平台。作为一款企业级数据库,监控是必不可少的一环。商业版本的Greenplum提供商业组件GPCC,用来对Greenplum进行监控。但是GPCC是非开源组件,很多开源用户都迫切需要一款开源的类GPCC产品来解决监控的问题。
目前提到监控,最火的当属Prometheus和Grafana的组合了,Prometheus负责监控指标采集及存储,Grafana负责展示,各有所长。很多企业整体IT架构中,也选用该方案作为整体的监控,所以今天给大家分享一下基于Prometheus和Grafana的解决方案。
1.简介
1.1 Prometheus简介
Prometheus 是由 SoundCloud 开源监控告警解决方案。它有几个重要的概念:
1)Prometheus时序数据库:存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。
2)PromQL (Prometheus Query Language) :是 Prometheus 自己开发的数据查询 DSL 语言。
3)Exporter:负责数据汇报的程序,不同的Exporter负责不同的业务。其统一命名格式:xx_exporter
另外从软件部署层面上,仅需部署一个Prometheus Server和对应的Exporter即可完成所需的基本监控功能。
1.2 Grafana简介
Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,它在其他领域也被广泛的使用包括工业传感器、家庭自动化、天气和过程控制等。
Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。
官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。
每个数据源的查询语言和能力都是不同的。你可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源,它就属于一个特定的组织。下面我们来一起感受一下Grafana。
2.Greenplum监控的实现
采用本文的方案来实现Greenplum监控特别简单,大体逻辑如下:
-
安装Prometheus;
-
安装Grafana;
-
用Go语言简单开发一个Greenplum Exporter(用来采集Greenplum指标);并启动采集程序;
-
在Prometheus中配置Greenplum Exporter,将采集的指标收集到Prometheus时序数据库中存储;
-
在Grafana中配置数据源为上面的Prometheus,并绘制可视化仪表板。
2.1 Greenplum Exporter的实现
具体项目地址可以fork我的链接:https://github.com/ChrisYuan/greenplum_exporter
在greenplum_expoter里主要扩展了实现了客户连接信息、账号连接信息、Segment存储信息、集群节点同步状态、数据库锁监控等相关指标,具体指标如下:
具体指标请参考github上的readme文件。(https://github.com/ChrisYuan/greenplum_expo