基于Promethues与Grafana的Greenplum分布式数据库监控的实现
基于Promethues与Grafana的Greenplum分布式数据库监控的实现
标签(空格分隔): greenplum系列
[toc]
一:前言
Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。GPCC是Greenplum数据库官方商业版的数据库监控软件,对于只能用得起开源的用户来说,只能考虑其他的监控方案了。本文里介绍一种基于Promethues与Grafana的Greenplum分布式数据库监控的实现方案。
二、Promethues与Grafana简介
2.1、Prometheus简介
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB),使用Go语言开发。Prometheus目前在开源社区相当活跃。Prometheus性能也足够支撑上万台规模的集群。其架构图如下:
Prometheus Server, 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用。
Exporter, 负责收集目标对象(host, container…)的性能数据,并通过 HTTP 接口供 Prometheus Server 获取。
可视化组件,监控数据的可视化展现对于监控方案至关重要。以前 Prometheus 自己开发了一套工具,不过后来废弃了,因为开源社区出现了更为优秀的产品 Grafana。
Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力。
Alertmanager,用户可以定义基于监控数据的告警规则,规则会触发告警。一旦 Alermanager 收到告警,会通过预定义的方式发出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.
2.2、Grafana简介
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
三、Greenplum监控的实现
3.1 greenplum的监控
Greenplum的监控可类似于PostgreSQL来实现,但又存在差异,不同点在于:
要实现一个Greenplum的Exporter指标采集器;
使用Grafana绘制一个可视化状态图;
基于Prometheus配置报警规则(本文此部分略);
3.2 greeplum 的grafana的采集
这里类比PostgreSQL数据库的Exporter实现方法,实现了一个Greenplum的Exporter,项目地址为:
https://github.com/tangyibo/greenplum_exporter
在greenplum_expoter里主要扩展了实现了客户连接信息、账号连接信息、Segment存储信息、集群节点同步状态、数据库锁监控等相关指标,具体指标如下:
四:prometheus 的安装:
Prometheus本身也是一个导出器(exporter),提供了关于内存使用、垃圾收集以及自身性能
与健康状态等各种主机级指标。
prometheus官网下载址:
https://prometheus.io/download/
wget https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz
# tar xf prometheus-2.21.0.linux-amd64.tar.gz
# mv prometheus-2.21.0.linux-amd64 /usr/local/prometheus
# chmod +x /usr/local/prometheus/prom*
# cp -rp /usr/local/prometheus/promtool /usr/bin/
cd /usr/local/prometheus/
vim prometheus.yml
-----
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'greenplum'
static_configs:
- targets: ['192.168.100.11:9297']
labels:
app: master01
nodename: node01.flyfish.cn
role: master
- targets: ['192.168.100.12:9297']
labels:
app: node02
nodename: node02.flyfish.cn
role: standby
- targets: ['192.168.100.13:9297']
labels:
app: node03
nodename: node03.flyfish.cn
role: node
- targets: ['192.168.100.14:9297']
labels:
app: node04
nodename: node04.flyfish.cn
role: node
- targets: ['192.168.100.15:9297']
labels:
app: node05
nodename: node05.flyfish.cn
role: node
-----
启动:
cd /usr/local/prometheus/
./prometheus --config.file=prometheus.yml &
五:安装Greenplum-Expoter
1、下载安装包
wget https://github.com.cnpmjs.org/tangyibo/greenplum_exporter/releases/download/1.0/greenplum_exporter-1.0-1.x86_64.rpm
rpm -ivh greenplum_exporter-1.0-1.x86_64.rpm
2、配置数据库连接
修改vim /etc/systemd/system/greenplum_exporter.service文件中配置的greenplum数据库服务器的地址和gpadmin账号的密码。
----
[Unit]
Description=greenplum exporter
After=network.target
[Service]
Type=simple
User=prometheus
Environment=GPDB_DATA_SOURCE_URL=postgres://gpadmin:gpadmin@192.168.100.11:5432/postgres?sslmode=disable
ExecStart=/usr/local/greenplum_exporter/bin/greenplum_exporter --log.level=error
Restart=on-failure
[Install]
WantedBy=multi-user.target
----
启动Expoter程序
----
systemctl daemon-reload
systemctl start greenplum_exporter
systemctl status greenplum_exporter
----
重启:promethues
ps -ef |grep promethus
kill -9 3121
./prometheus --config.file=prometheus.yml
六: 安装 grafana
1、下载:
wget https://dl.grafana.com/oss/release/grafana-7.1.5-1.x86_64.rpm
rpm -ivh grafana-7.1.5-1.x86_64.rpm
systemctl start grafana-server
5、访问
访问地址:http://192.168.100.16:3000
用户名:admin
密码:admin
使用Grafana绘制一个可视化状态图
根据以上监测指标,即可使用Grafana配置图像了,具体内容请见:
将下面中的数据
https://github.com/tangyibo/greenplum_exporter/blob/master/grafana/greenplum_dashboard.json
中配置的内容粘贴到上图红色框框内,点击load按钮加载。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
对标微软 SQL Server,AWS 计划开源 Babelfish 数据库产品
AWS 宣布了一种新的数据库产品 — 用于 Aurora PostgreSQL 的 Babelfish。该产品旨在效仿 Microsoft 的 SQL Server,并吸引 SQL Server 用户迁移到 AWS 云平台。 图片来源:techcrunch AWS 首席执行官 Andy Jassy 在 re:invent 主题演讲中提出了一句标语称,停止为不需要的 SQL Server 许可证付费。该公司计划于 2021 年正式启动 Babelfish 项目,并提供基于 Apache 2.0 的开源许可。 Babelfish 所做的是为 SQL Server 专用的 SQL 语言(T-SQL)和通信协议提供翻译层,以便企业能可以随意地切换到 AWS 的 Aurora 关系数据库。尽管其仍需多一步迁移现有数据的操作,但 Babelfish 还提供了语言翻译、SQL 指令、游标、目录视图、数据类型、触发器、存储过程、以及相关函数。AWS 方面表示,公司不必更换他们的数据库驱动程序、或重写和验证他们的数据库请求即可实现这一过渡。 官方博客指出,Babelfish 使 PostgreSQL 能...
-
下一篇
预测2021:疫后企业如何复苏?云计算或成关键
回顾过去十余年发展起来的公有云时,它们似乎是为应对新冠肺炎疫情大流行造成的全球需求冲击而设计的。这次疫情不仅使上班族一夜之间变成了远程工作的人,而且还改变了每个IT部门和开发商店的运作方式。 如果没有每个企业和消费者都可以按需使用的公有云应用程序、开发服务、工具和基础设施,可以想象,应对疫情将会是多么困难。 2021年,云计算将推动企业如何适应新的、不稳定的常态呢?以下是市场研究机构Forrester预测云计算将帮助全球企业在2021年加速复苏: 1、超大规模的公有云市场将恢复高速增长 在2019年底公有云收入增速有所放缓之后,到2020年中期,疫情给市场带来了强劲增长。Forrester预测,到2021年,全球公有云基础设施市场将增长35%,达到1200亿美元。阿里云的营收将在全球排名第三,排在AWS和微软Azure之后。 2、随着服务器的减少和容器的升温,云原生技术的需求将会激增 在疫情之前,约有20%的开发人员经常使用容器和无服务器功能来构建新的应用程序和更新旧的应用程序。Forrester预测,到2021年底,25%的开发者将使用无服务器,近30%的开发者将定期使用容器,这将导...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,8上快速安装Gitea,搭建Git服务器