Pigsty开箱即用的 PostgreSQL 发行版

联合创作 · 2023-10-01 02:27

Pigsty 是开箱即用的开源 PostgreSQL 发行版。带有全面专业的监控系统,稳定可靠的部署方案;提供简单省心的用户界面,与灵活开放的扩展机制。

Pigsty 可以用于大规模生产数据库的监控部署与管理;也可以在本地1核1GB的虚拟机中运行,用于学习,开发,测试与数据分析等场景。

亮点特性

  • 全面专业的监控系统,基于Grafana & Prometheus & pg_exporter
  • 稳定可靠的部署方案,基于Ansible的物理机/虚拟机部署。
  • 简单省心的安装方式与用户界面,开箱即用的沙箱环境,降低使用门槛。
  • 高可用数据库集群架构,基于Patroni实现,具有秒级故障自愈能力。
  • 基于DCS的服务发现与配置管理,维护管理自动化,智能化。
  • 无需互联网访问与代理的离线安装模式,快速且可靠。
  • 代码定义的基础设施,可配置,可定制。
  • 基于PostgreSQL 13 (14beta现已支持!)与Patroni 2.0,享受最新特性。
  • 长时间的大规模生产环境验证(200+ node x 64C|400GB|3TB)

功能介绍

监控系统

Pigsty带有一个针对大规模数据库集群管理而设计的专业级PostgreSQL监控系统。包括约1200指标,20+监控面板,上千个监控仪表盘,覆盖了从全局大盘到单个查询的详细信息。面向专业用户,提供不可替代的价值点。

Pigsty监控系统基于业内最佳实践,采用Prometheus、Grafana作为监控基础设施。开源开放,定制便利,可复用,可移植,没有厂商锁定。可与各类已有数据库实例集成。

部署方案

数据库是管理数据的软件,管控系统是管理数据库的软件。

Pigsty内置了一套以Ansible为核心的数据库管控方案。并基于此封装了命令行工具与图形界面。它集成了数据库管理中的核心功能:包括数据库集群的创建,销毁,扩缩容;用户、数据库、服务的创建等。Pigsty采纳“Infra as Code”的设计哲学使用了声明式配置,通过大量可选的配置选项对数据库与运行环境进行描述与定制,并通过幂等的预置剧本自动创建所需的数据库集群,提供近似私有云般的使用体验。

Pigsty吸纳了Kubernetes架构设计中的精髓,采用声明式的配置方式与幂等的操作剧本。用户只需要描述“自己想要什么样的数据库”,而无需关心Pigsty如何去创建它,修改它。Pigsty会根据用户的配置文件清单,在几分钟内从裸机节点上创造出所需的数据库集群。

Configuration Entries:

No Category Function
1 connect Connection parameters and proxy setting
2 repo local yum and offline installation
3 node common setup for all nodes
4 meta infrastructure on meta nodes
5 dcs dcs service (consul/etcd)
6 pg-install install postgres, extensions, users, directories, scripts, utils
7 pg-provision bootstrap postgres cluster and identity assignment
8 pg-template customize postgres cluster template
9 monitor install monitoring components
10 service expose database service

高可用

Pigsty创建的数据库集群是分布式高可用的数据库集群。Pigsty创建的数据库基于DCS、Patroni、Haproxy实现了高可用。数据库集群中的每个数据库实例在使用上都是幂等的,任意实例都可以通过内建负载均衡组件提供完整的读写服务,提供分布式数据库的使用体验。数据库集群可以自动进行故障检测与主从切换,普通故障能在几秒到几十秒内自愈,且期间只读流量不受影响。故障时。集群中只要有任意实例存活,就可以对外提供完整的服务。

Pigsty的架构方案经过审慎的设计与评估,着眼于以最小复杂度实现所需功能。该方案经过长时间,大规模的生产环境验证,已经被多个行业内的组织所使用。

用户界面

Pigsty旨在降低PostgreSQL的使用门槛,因此在易用性上做了大量工作。

Pigsty的部署分为三步:下载源码,配置环境,执行安装,均可通过一行命令完成。遵循经典的软件安装模式,并提供了配置向导。您需要准备的只是一台CentOS7.8机器及其root权限。管理新节点时,Pigsty基于Ansible通过ssh发起管理,无需安装Agent,即使是新手也可以轻松完成部署。

在管理与使用上,Pigsty提供了不同层次的用户界面,以满足不同用户的需求。新手用户可以使用一键拉起的本地沙箱与图形用户界面,而开发者则可以选择使用pigsty-cli命令行工具与配置文件的方式进行管理。经验丰富的DBA、运维与架构师则可以直接通过Ansible原语对执行的任务进行精细控制。

服务发现

Pigsty提供了可选的服务发现机制,基于DCS(Consul/Etcd)实现。监控系统将自动从服务注册中心发现所有的监控对象,而Patroni则使用DCS作为集中的配置存储。Consul提供DNS可用作客户端服务发现机制,而UI可以让您对环境中的服务一览无余。

沙箱环境

Pigsty既可以在生产环境中管理成百上千个高规格的生产节点,也可以独立运行于本地1核1GB虚拟机中,作为开箱即用的数据库实例使用。在本地计算机上使用时,Pigsty提供基于Vagrant与Virtualbox的沙箱。可以一键拉起与生产环境一致的数据库环境,用于学习,开发,测试数据分析,数据可视化等场景。

离线安装

Pigsty支持离线安装,对于没有互联网访问的环境尤为方便。Pigsty的离线安装包中带有监控系统,数据库以及所有相关的依赖。您可以通过向导自动下载,或从Github Release页面或CDN手工下载离线安装包。

数据分析

Pigsty提供了一种名为“Datalet”的扩展机制,允许用户和开发者对Pigsty进行进一步的定制,将其用到意想不到的地方,例如数据分析与可视化。Pigsty集成了Echarts,以及常用地图底图等,可以方便地实现高级可视化需求。比起Julia,Matlab,R这样的传统科学计算语言/绘图库而言,PG + Grafana + Echarts的组合允许您以极低的成本制作出可分享可交付标准化的数据应用或可视化作品。

所有Pigsty高级专题监控面板都会以Datalet的方式发布。Pigsty也自带了一些的Datalet案例:Redis监控系统,新冠疫情数据分析,七普人口数据分析,PG日志挖掘等。

浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报