多页打印视图 点击此处打印.

返回常规视图.

上手

如何快速拉起Pigsty

准备

安装Pigsty需要一个机器节点:规格至少为1核2GB,采用Linux内核,安装CentOS 7发行版,处理器为x86_64架构。该节点在生产环境中被用作元节点管理节点),发出控制命令,采集监控数据,运行定时任务。

安装

安装需要root权限。使用带有sudo权限的用户(或root)执行以下命令即可完成安装:

curl -fsSL https://pigsty.cc/pigsty.tgz | gzip -d | tar -xC ~; cd ~/pigsty  # 下载源码
make config    # 配置环境
make install   # 安装软件

在使用离线安装包的情况下,整个安装过程耗时约10~15分钟。

./configure 会自动检测环境。如果节点拥有多个IP地址,请指定一个主要IP地址。沙箱环境中的IP地址固定为10.10.10.10 。此外,如果离线安装包/tmp/pkg.tgz不存在,程序会提示是否从网络下载。

沙箱

如果希望在本机运行Pigsty,可以使用虚拟机软件,或使用Pigsty沙箱。沙箱是本地演示/测试/开发环境,运行于由 Vagrant 托管的本地 Virtualbox 虚拟机上。这两者都是跨平台软件,可以在MacOS|Windows|Linux下运行。

以MacOS为例,在本机终端中依次执行以下命令,即可拉起沙箱。

make deps   # 安装homebrew,并通过homebrew安装vagrant与virtualbox(需重启)
make dns    # 向本机/etc/hosts写入静态域名 (需sudo输入密码)
make start  # 使用Vagrant拉起单个meta节点 (start4则为4个节点)
make demo   # 使用单节点Demo配置并安装    (demo4则为4节点demo)

使用

安装完毕后,用可以直接访问该节点上的端口来使用Pigsty监控系统。

例如,Pigsty监控系统默认使用3000端口,默认管理用户与密码均为:admin

在使用沙箱时,用户可以通过make dns写入的默认本地域名访问Pigsty提供的相关服务,例如这里的:http://g.pigsty。Pigsty对外暴露的相关服务如下表所示:

服务 域名 地址 说明
Grafana http://pigsty 10.10.10.10:3000 Pigsty监控系统主页
Consul http://c.pigsty 10.10.10.10:8500 元数据库,展示集群中的所有节点与服务的状态
Prometheus http://p.pigsty 10.10.10.10:9090 监控时序数据库,查询指标,定义规则,处理报警
Alertmanager http://a.pigsty 10.10.10.10:9093 浏览、处理、屏蔽告警信息
Haproxy http://h.pigsty 10.10.10.10:80 浏览负载均衡器的状态,进行流量管理与控制
Yum Repo http://yum.pigsty 10.10.10.10:80 本地Yum源,包含所有离线软件安装包

当使用普通机器部署时,将这里的IP地址(10.10.10.10)换为用户自己的节点IP即可。

直接通过IP地址访问虽然方便,但更合适的做法是通过 nginx_upstream 为各个服务指定域名,并通过域名访问不同的服务。Pigsty自带的Nginx会默认通过80端口对外代理所有Web访问。

部署

Pigsty安装完成后,这台机器将作为Pigsty的元节点。用户可以从元节点发起控制,部署新PG集群。部署新数据库集群分为三步:

  1. 将用于部署的机器节点纳入管理

    当前用户可以从当前节点免密码ssh登陆目标节点,并带有免密码的sudo权限。

  2. 定义数据库集群(配置文件或图形界面)

  3. 执行数据库集群部署剧本

    如果用户通过make start4make demo4启动沙箱,则无需配置直接执行此命令即可。

    ./pgsql.yml -l pg-test    # 初始化pg-test数据库集群
    

更多信息请参考部署一章

FAQ

安装与使用过程中的常见问题,请参考 FAQ

接下来做什么?

1 - FAQ

Pigsty快速上手常见问题

下载问题


源码包从哪里下载?

Pigsty源码包:pigsty.tgz 可以从多个地方下载:Pigsty官网,Pigsty CDN,以及Github。

  • Pigsty官网是最新最快都的下载地址,也是默认使用的地址。但只提供最新版本,不提供历史版本。
  • Github Release 是最权威最全面的下载地址,包含所有历史版本。
  • Pigsty CDN则主要用于下载历史版本,以及离线软件包。
https://pigsty.cc/pigsty.tgz                                          # 官网最新
https://github.com/Vonng/pigsty/releases/download/v0.9/pigsty.tgz     # Github
http://pigsty-1304147732.cos.accelerate.myqcloud.com/v0.9/pigsty.tgz  # CDN

离线安装包从哪里下载?

默认情况下,用户不需要操心这个问题configure过程中如果发现离线安装包不存在,将会自动提示用户下载。但如果用户需要在没有互联网访问的环境下进行安装,就需要自行下载并将其上传至目标服务器。

离线安装包pkg.tgz可以从Github Release 或CDN(专为大陆提供)下载。

https://github.com/Vonng/pigsty/releases/download/v0.9/pkg.tgz     # Github
http://pigsty-1304147732.cos.accelerate.myqcloud.com/v0.9/pkg.tgz  # CDN (China)

将其放置于安装机器的 /tmp/pkg.tgz 路径下,即可在安装过程中自动使用。离线软件包默认会解压至:/www/pigsty


不使用离线安装包?

离线安装包中包含了从各路Yum源与Github Release中收集下载的软件包。用户也可以选择不使用预先打包好的离线安装包,而是直接从原始上游下载。当用户使用非 CentOS 7.8 操作系统时,通常可以使用这种方式解决绝大多数依赖错漏问题。不使用离线安装包也很简单,在make config提示时选择否 n 即可。


安装yum软件包时报错

默认的离线软件安装包基于CentOS 7.8环境制作,如果出现问题,可以删除/www/pigsty中出现问题的相关rpm包,以及/www/pigsty/repo_complete标记文件。执行make repo-download重新下载与当前操作系统版本匹配的依赖软件包即可。


有些软件包下载速度太慢

Pigsty已经尽可能使用国内yum镜像进行下载,然而少量软件包仍然受到GFW的影响,导致下载缓慢,例如直接从Github下载的相关软件。有以下解决方案:

  1. Pigsty提供离线软件安装包,预先打包了所有软件及其依赖。在make config时会自动提示下载。

  2. 通过proxy_env指定代理服务器,通过代理服务器下载,或直接使用墙外服务器。

  3. 通过URL直接下载的软件,Pigsty CDN提供了镜像(文件名不变,前缀换掉),例如:

    http://pigsty-1304147732.cos.accelerate.myqcloud.com/pkg/pg_exporter-0.3.2-1.el7.x86_64.rpm
    

Vagrant沙箱第一次启动太慢

Pigsty沙箱默认使用CentOS 7虚拟机,Vagrant首次启动虚拟机时,会下载CentOS/7的ISO镜像Box,尺寸不小。(当然您也可以选择自己下一个CentOS 7 ISO然后用虚拟机安装)。使用代理可能会提高下载速度,好在这个下载只需要在第一次启动时进行。


版本问题


Pigsty源码有哪几种分支?

除了常规的语义版本号之外,Pigsty有三个主要分支:Default, Pro, Beta。pigsty.tgz为标准开源版本,pigsty-beta.tgz为BETA版本,pigsty-pro.tgz为专业版本。普通用户使用默认的pigsty.tgz即可,专业版目前不提供公开下载。


我需要要等1.0 GA吗?

Pigsty从0.3开始就实际应用于真实世界的生产环境中,并不是1.0才真正General Available。然而1.0计划了若干变更(例如监控指标的重新定义改造,PG14的支持),而Pigsty不会对v1.0前的版本提供升级支持。是否现在就用于生产请视自身情况考虑。


编辑Pigsty配置文件的GUI工具是什么?

那是一个单独的命令行工具pigsty-cli,目前处于beta状态。将于Pigsty v1.0一同正式发布。


环境问题


Pigsty的安装环境

安装Pigsty需要至少一个机器节点:规格至少为1核2GB,采用Linux内核,安装CentOS 7发行版,处理器为x86_64架构。

在生产环境中,建议使用更高规格的机器,并部署多个元节点作为容灾冗余。生产环境中元节点将作为管理节点发出控制命令,管理部署数据库集群,采集监控数据,运行定时任务等。


Pigsty的操作系统要求

Pigsty强烈建议使用CentOS 7.8操作系统安装元节点与数据库节点,以免将精力消耗在无谓的问题上。

Pigsty的默认开发、测试、部署环境都基于CentOS 7.8,CentOS 7.6也经过充分的验证。其他CentOS 7.x及其等效版本RHEL7 , Oracle Linux 7在理论上都没有问题,但并未进行测试与验证。

在使用仅监控模式监控已有PostgreSQL数据库集群时,可以使用不同的Linux发行版。因为监控系统相关组件均为Go编写的二进制,可以兼容各种Linux发行版。 但这并不是官方支持的行为。

后续其他操作系统支持可能以容器镜像的形式提供。

为什么不使用Docker与Kubernetes?

虽然Docker对于环境兼容性破事有非常好的疗效,然而数据库并不属于容器使用的最佳场景。此外Docker与Kubernetes本身也是有使用门槛。为了满足“降低门槛”的主旨,Pigsty采用裸机部署。

但Pigsty在设计之初就考虑到容器化云化的需求,这体现在其配置定义的声明式实现中。并不需要太多修改就可以迁移改造为云原生解决方案。当时机成熟时,会考虑使用Kubernetes Operator的方式进行重构。


集成问题


是否可以监控已有的PG实例?

对于非Pigsty供给方案创建的外部数据库,可以使用仅监控模式部署,详情请参考文档。注意Pigsty部署需要目标机器ssh sudo权限。因此通常无法支持云厂商RDS,但例如MyBase for PostgreSQL的ECS托管云数据库是可以纳入监控的。


云厂商RDS监控不了有什么办法?

目前Pigsty官方不支持对纯RDS的监控,因为缺少机器指标的监控系统只能说是半成品。但用户可以通过本地部署PG Exporter远程连接监控RDS,以及Prometheus本地静态服务发现抓取本地Exporter,并通过手工配置Label的方式实现曲线救国。


监控系统问题


监控系统中的Dashboard与文档不一致?

为什么监控系统里只有10个Dashboard?因为开源版本的Pigsty只提供这些监控面板,当然也绝对够用了。


为什么PG Instance Log面板没有数据?

日志收集目前是一个Beta特性,需要额外的安装步骤。执行make logging会安装lokipromtail,执行后该面板方可用。毕竟loki还是比较新的日志收集方案,不是所有人都愿意接受。


监控系统的数据量有多大?

这取决于您数据库的复杂程度(workload),作为参考:200个生产数据库实例1天产生的监控数据量约为16GB。Pigsty默认保留30天监控数据,可以通过参数调整。


架构问题


Pigsty都装了什么东西?

详情请参考系统架构

Pigsty是一套带有完整运行时的数据库解决方案。在本机上,Pigsty可以作为开发、测试、数据分析的环境。在生产环境中,Pigsty可以用于部署,管理,监控大规模PostgreSQL集群。


Pigsty数据库如何保证高可用

Patroni 2.0作为HA Agent,Consul作为DCS,Haproxy作为默认流量分发器。Pigsty的数据库集群成员在使用上幂等:只要集群还有任意一个实例存活,读写与只读流量都可以继续工作。

DCS自身的可用性通过多节点共识保证,故生产环境中建议部署3~5个meta节点,或使用外部的DCS集群。


Pigsty问题交流群