我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于Promethues与Grafana的Greenplum分布式数据库监控的实现

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码


	基于Promethues与Grafana的Greenplum分布式数据库监控的实现


	基于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=` 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按钮加载。

技术图片

技术图片

技术图片

基于Promethues与Grafana的Greenplum分布式数据库监控的实现

原文地址:https://blog.51cto.com/flyfish225/2558951

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于Promethues与Grafana的Greenplum分布式数据库监控的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于Promethues与Grafana的Greenplum分布式数据库监控的实现

基于Promethues与Grafana的Greenplum分布式数据库监控的实现标签(空格分隔): greenplum系列[toc]一:前言Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的

	基于Promethues与Grafana的Greenplum分布式数据库监控的实现
2016-08-15

基于PostgreSQL/openGauss的分布式数据库怎么解决

本篇内容介绍了“基于PostgreSQL/openGauss的分布式数据库怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Shardi
2023-06-21

在Netdata中如何监控和管理分布式数据库的性能

要监控和管理分布式数据库的性能,可以使用Netdata的插件和集成功能。以下是在Netdata中监控和管理分布式数据库性能的一般步骤:安装Netdata:首先需要安装Netdata监控工具,可以通过官方网站提供的安装指南来完成安装。配置Ne
在Netdata中如何监控和管理分布式数据库的性能
2024-06-03

Elasticsearch分布式搜索与NoSQL数据库的协同工作(Elasticsearch与NoSQL数据库如何协同实现分布式搜索?)

Elasticsearch(ES)和NoSQL数据库协同实现分布式搜索,为大规模数据处理提供高效搜索功能和可扩展性。ES索引NoSQL数据,通过反向索引技术快速搜索文档。NoSQL数据库存储原始数据,确保数据完整性和一致性。通过这种协作,ES提供可扩展性、快速搜索和查询灵活性。该解决方案广泛应用于电子商务搜索、日志分析、全文搜索和欺诈检测等用例中。
Elasticsearch分布式搜索与NoSQL数据库的协同工作(Elasticsearch与NoSQL数据库如何协同实现分布式搜索?)
2024-04-02

Redis数据库中实现分布式锁的方法

分布式锁是一个在很多环境中非常有用的原语,它是不同进程互斥操作共享资源的唯一方法。有很多的开发库和博客描述如何使用Redis实现DLM(Distributed Lock Manager),但是每个开发库使用不同的方式,而且相比更复杂的设计与
2022-06-04

分布式锁中的数据库、缓存、Zookeeper实现是怎样的

分布式锁中的数据库、缓存、Zookeeper实现是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。分布式锁的几种实现方式目前几乎很多大型网站及应用都是分布式部署的,分布
2023-06-05

如何通过AmazonAurora实现数据库的分布式事务处理

Amazon Aurora是一个关系型数据库服务,其支持分布式事务处理。要通过Amazon Aurora实现数据库的分布式事务处理,可以按照以下步骤进行操作:使用Amazon Aurora的集群功能: Amazon Aurora支持在多个数
如何通过AmazonAurora实现数据库的分布式事务处理
2024-04-09

在Redis数据库中实现分布式速率限制的方法

问题 在许多应用中,对昂贵的资源的访问必须加以限制,此时速率限制是必不可少的。许多现代网络应用程序在多个进程和服务器上运行,状态需要被共享。一个理想的解决方案应该是高效、 快捷的,而不是依赖于被绑定到特定客户端的单个应用程序服务器(由于负载
2022-06-04

Elasticsearch分布式搜索中的数据分片与路由机制(Elasticsearch如何进行数据分片与路由以实现分布式搜索?)

Elasticsearch通过分片将大型索引分割为较小的块,并通过路由机制确定每个文档存储的分片。分片提高了可扩展性、容错性和查询性能,而路由确保文档正确存储和检索。分片数量和副本分片数量根据索引大小和预期负载而异。通过优化分片和路由策略,组织可以最大化Elasticsearch的性能和可靠性。
Elasticsearch分布式搜索中的数据分片与路由机制(Elasticsearch如何进行数据分片与路由以实现分布式搜索?)
2024-04-02

PHP 对象关系映射与数据库抽象层对于分布式系统的优点

分布式系统中,orm(对象关系映射)和dal(数据库抽象层)通过以下方式提高数据管理效率:orm提供透明数据访问,简化数据操作并确保数据一致性。dal提供数据库无关性,并通过优化技术增强性能和安全性,统一访问异构数据库。orm和dal结合使
PHP 对象关系映射与数据库抽象层对于分布式系统的优点
2024-05-06

编程热搜

目录