模块:INFRA
概览
每一套 Pigsty 部署都会提供一套基础架构组件,为纳管的节点与数据库集群提供服务,组件包括:
| 组件 | 端口 | 描述 |
|---|---|---|
| Nginx | 80/443 |
Web 服务门户、本地软件仓库与统一入口 |
| Grafana | 3000 |
可视化平台,提供监控大屏、巡检与数据应用 |
| VictoriaMetrics | 8428 |
时序数据库与 VMUI,可兼容 Prometheus API |
| VictoriaLogs | 9428 |
集中式日志数据库,接收 Vector 推送的结构化日志 |
| VictoriaTraces | 10428 |
链路追踪与事件存储,可用于慢 SQL / 请求追踪 |
| VMAlert | 8880 |
告警规则评估器,基于 VictoriaMetrics 指标触发告警 |
| AlertManager | 9059 |
告警聚合与分发,接收 VMAlert 发送的通知 |
| BlackboxExporter | 9115 |
ICMP/TCP/HTTP 黑盒探测 |
| DNSMASQ | 53 |
DNS 服务器,提供内部域名解析 |
| Chronyd | 123 |
NTP 时间服务器 |
| PostgreSQL | 5432 |
CMDB 与默认数据库 |
| Ansible | - | 运行剧本、编排所有基础设施 |
在 Pigsty 中,PGSQL 模块会使用到 INFRA节点 上的一些服务,具体来说包括:
- 数据库集群/主机节点的域名,依赖 INFRA 节点的 DNSMASQ 解析。
- 在数据库节点软件上 安装,需要用到 INFRA 节点上的 Nginx 托管的本地 yum/apt 软件源。
- 数据库集群/节点的监控 指标,会被 INFRA 节点上的 VictoriaMetrics 拉取并存储,可通过 VMUI / PromQL 访问。
- 数据库与节点运行日志由 Vector 收集,统一推送到 INFRA 上的 VictoriaLogs,支持在 Grafana 中检索。
- VMAlert 根据 VictoriaMetrics 中的指标 评估 告警规则,并将事件转发到 Alertmanager。
- 用户会从 Infra/Admin 节点上使用 Ansible 或其他工具发起对数据库节点的 管理:
- 执行集群创建,扩缩容,实例/集群回收
- 创建业务用户、业务数据库、修改服务、HBA 修改;
- 执行日志采集、垃圾清理,备份,巡检等
- 数据库节点默认会从 INFRA/ADMIN 节点上的 NTP 服务器同步时间
- 如果没有专用集群,高可用组件 Patroni 会使用 INFRA 节点上的 etcd 作为高可用 DCS。
- 如果没有专用集群,备份组件 pgbackrest 会使用 INFRA 节点上的 minio 作为可选的集中备份仓库。
Nginx
Nginx 是 Pigsty 所有 WebUI 类服务的访问入口,默认使用管理节点80端口。
有许多带有 WebUI 的基础设施组件通过 Nginx 对外暴露服务,例如 Grafana、VictoriaMetrics(VMUI)、AlertManager,以及 HAProxy 流量管理页等,此外 yum/apt 仓库等静态文件资源也通过 Nginx 对外提供服务。
Nginx 默认通过 i.pigsty 的子路径暴露内置 Web 服务,也可以根据 infra_portal 的内容,通过 域名 区分并转发至对应的上游组件。
如果您使用了其他的域名,或者公网域名,可以在这里进行相应修改:
Pigsty 强烈建议使用域名访问 Pigsty UI 系统,而不是直接通过 IP+ 端口的方式访问,基于以下几个理由:
- 使用域名便于启用 HTTPS 流量加密,可以将访问收拢至 Nginx,审计一切请求,并方便地集成认证机制。
- 一些组件默认只监听 127.0.0.1,因此只能通过 Nginx 代理访问。
- 域名更容易记忆,并提供了额外的配置灵活性。
如果您没有可用的互联网域名或本地 DNS 解析,您可以在 /etc/hosts (MacOS/Linux)或 C:\Windows\System32\drivers\etc\hosts (Windows)中添加本地静态解析记录。
Nginx 相关配置参数位于:配置:INFRA - NGINX
本地软件仓库
Pigsty 会在安装时首先建立一个本地软件源,以加速后续软件安装。
该软件源由 Nginx 提供服务,默认位于为 /www/pigsty,可以访问 http://i.pigsty/pigsty 使用。
Pigsty 的离线软件包即是将已建立的软件源目录(RPM/APT)打成压缩包。当前源码使用 SOW 创建仓库;如果 /www/pigsty/repo_complete 已存在,则认为本地源已经完整构建并跳过上游下载。该文件包含 SHA-256 校验内容,不只是一个空标记。
Repo 定义文件位于 /www/pigsty.repo,默认可以通过 http://${admin_ip}/pigsty.repo 获取
您也可以在没有 Nginx 的情况下直接使用文件本地源:
本地软件仓库相关配置参数位于:配置:INFRA - REPO
Victoria 可观测性套件
Pigsty v4 使用 VictoriaMetrics 家族提供统一的监控、日志与链路追踪能力:
- VictoriaMetrics 默认监听
8428端口,可通过https://i.pigsty/vmetrics/访问 VMUI,兼容 Prometheus API;也可通过在infra_portal中配置独立域名访问。 - VMAlert 负责评估
/infra/rules/*.yml中的告警规则,监听8880端口,并将告警事件发送到 Alertmanager。 - VictoriaLogs 监听
9428端口,支持https://i.pigsty/vlogs/查询界面。所有节点默认运行 Vector,将系统日志、PostgreSQL 日志等结构化后推送至 VictoriaLogs。 - VictoriaTraces 监听
10428端口,用于慢 SQL / Trace 采集,Grafana 以 Jaeger 数据源方式访问。 - Alertmanager 监听
9059端口,可通过https://i.pigsty/alertmgr/管理告警通知;如在infra_portal中配置a.pigsty,也可通过独立域名访问。完成 SMTP、Webhook 等配置后即可推送消息。 - Blackbox Exporter 默认监听
9115端口,用于 Ping/TCP/HTTP 探测,可通过https://i.pigsty/blackbox/访问。
更多信息请参阅:配置:INFRA - VICTORIA 与 配置:INFRA - PROMETHEUS。
Grafana
Grafana 是 Pigsty 的 WebUI 核心,默认监听 3000 端口,可以通过 https://i.pigsty/ui/ 或直接访问 IP:3000;如在 infra_portal 中配置 g.pigsty,也可通过独立域名访问。
Pigsty 预置了针对 VictoriaMetrics / Logs / Traces 的数据源(vmetrics-*、vlogs-*、vtraces-*),以及大量 Dashboard,可通过 URL 进行联动跳转,快速定位问题。
Grafana 也可作为通用低代码可视化平台使用,因此 Pigsty 默认安装了 ECharts、victoriametrics-datasource 等插件,方便构建监控大屏或巡检报表。
Grafana 相关配置参数位于:配置:INFRA - GRAFANA。
Ansible
Pigsty 默认会在元节点上安装 Ansible,Ansible 是一个流行的运维工具,采用声明式的配置风格与幂等的剧本设计,可以极大降低系统维护的复杂度。
DNSMASQ
DNSMASQ 提供环境内的 DNS 解析 服务,其他模块的域名将会注册到 INFRA 节点上的 DNSMASQ 服务中。
DNS 记录默认放置于所有 INFRA 节点的 /etc/dnsmasq.d/pigsty/ 目录中。
DNSMASQ 相关配置参数位于:配置:INFRA - DNS
Chronyd
NTP 服务用于同步环境内所有节点的时间(可选)
NTP 相关配置参数位于:配置:NODES - NTP
PostgreSQL
Pigsty 的元数据库(CMDB)通常使用 PostgreSQL,默认监听 5432 端口,用于存储 Pigsty 元数据并支撑部分内置应用。
更多信息请参阅:PGSQL 模块与 配置:INFRA - META。
配置
要在节点上安装 INFRA 模块,首先需要在配置清单中的 infra 分组中将其加入,并分配实例号 infra_seq
然后,使用 infra.yml 剧本在节点上初始化 INFRA 模块即可。
管理
下面是与 INFRA 模块相关的一些管理任务:
安装卸载Infra模块
infra-rm.yml 没有防误删开关;不带标签会删除 infra_data、nginx_data、nginx_home(默认 /www)与 /var/lib/grafana。
只需停服或注销时请使用标签,完整边界见 预置剧本。
管理本地软件仓库
您可以使用以下剧本子任务,管理 Infra 节点上的本地 RPM/APT 软件源:
其中最常用的命令为:
管理基础设施组件
您可以使用以下剧本子任务,管理 Infra 节点 上的各个基础设施组件
其他常用的任务包括:
剧本
Pigsty 提供了三个与 INFRA 模块相关的剧本:
infra.yml:在 infra 节点上初始化 pigsty 基础设施infra-rm.yml:从 infra 节点移除基础设施组件deploy.yml:一次性部署 NODE、INFRA、ETCD、MINIO 与 PGSQL 核心链路
infra.yml
INFRA 模块剧本 infra.yml 用于在 Infra节点 上初始化 pigsty 基础设施
执行该剧本将完成以下任务
- 配置元节点的目录与环境变量
- 下载并建立一个本地软件源,加速后续安装。(若使用离线软件包,则跳过下载阶段)
- 将当前元节点作为一个普通节点纳入 Pigsty 管理
- 部署 基础设施 组件,包括 VictoriaMetrics/Logs/Traces、VMAlert、Grafana、Alertmanager、Blackbox Exporter 等
该剧本默认在 INFRA 节点 上执行
- Pigsty 默认将使用 当前执行此剧本的节点 作为 Pigsty 的 Infra节点 与 ADMIN节点。
- Pigsty 在 配置过程 中默认会将当前节点标记为 Infra/Admin 节点,并使用 当前节点首要 IP 地址 替换配置模板中的占位 IP 地址
10.10.10.10。 - 该节点除了可以发起管理,部署有基础设施,与一个部署普通托管节点并无区别。
- 单机安装时,ETCD 也会安装在此节点上,提供 DCS 服务
本剧本的一些注意事项
- 本剧本为幂等剧本,重复执行默认不会清理历史数据与 Grafana 数据。
- 如需保留历史监控数据,请先将
vmetrics_clean、vlogs_clean、vtraces_clean设置为false。 - 如果将
vmetrics_clean、vlogs_clean、vtraces_clean、grafana_clean设为true,对应组件数据会在执行时被清理。 - 当离线软件源
/www/pigsty/repo_complete存在时,本剧本会跳过从互联网下载软件的任务。完整执行该剧本耗时约5-8分钟,视机器配置而异。 - 不使用离线软件包而直接从互联网原始上游下载软件时,可能耗时10-20分钟,根据您的网络条件而异。
infra-rm.yml
INFRA 模块剧本 infra-rm.yml 用于从 INFRA节点 上移除 pigsty 基础设施
常用子任务包括:
全量执行没有防误删开关,并会删除 infra_data、nginx_data、nginx_home(默认 /www)和 /var/lib/grafana;执行前请先备份要保留的数据。
deploy.yml
INFRA 模块剧本 deploy.yml 用于在 所有节点 上一次性部署 NODE、INFRA、ETCD、MINIO 与 PGSQL 核心链路。Docker、Redis、Kafka、原生 MySQL、JUICE 与 VIBE 等可选模块需要另行执行各自的剧本。
该剧本在 剧本:一次性安装 中有更详细的介绍。
监控
Pigsty Home:Pigsty 监控系统主页
INFRA Overview:Pigsty 基础设施自监控概览
Nginx Instance:Nginx 监控指标与日志
Grafana Instance:Grafana 监控指标与日志
VictoriaMetrics Instance:VictoriaMetrics 抓取、查询与存储指标
VMAlert Instance:告警规则评估与队列状态
Alertmanager Instance:告警聚合、通知管道与 Silences
VictoriaLogs Instance:日志写入速率、查询负载与索引命中
VictoriaTraces Instance:Trace/KV 存储与 Jaeger 接口
Logs Instance:基于 Vector + VictoriaLogs 的节点日志检索
CMDB Overview:CMDB 可视化
ETCD Overview:etcd 监控指标与日志
参数
INFRA 模块有下列10个参数组。
META:Pigsty 元数据CA:自签名公私钥基础设施/CAINFRA_ID:基础设施门户,Nginx 域名REPO:本地软件源INFRA_PACKAGE:基础设施软件包NGINX:Nginx 网络服务器DNS:DNSMASQ 域名服务器VICTORIA:VictoriaMetrics / Logs / Traces 套件PROMETHEUS:Alertmanager 与 Blackbox ExporterGRAFANA:Grafana 可观测性全家桶
参数速览
为保持与 Pigsty 版本一致,请参阅 《参数列表》 获取最新的默认值、类型与层级说明。
如何配置 Infra 节点?定制 Nginx 服务器的配置与本地软件仓库的内容?配置 DNS,NTP 与监控组件的方法。
INFRA 模块提供了 10 组共 70+ 个配置参数
如何使用预置的 ansible 剧本来管理 INFRA 集群,常用管理命令速查。
如何在 Pigsty 中对基础设施进行自监控?
Pigsty INFRA 模块提供的完整监控指标列表与释义
Pigsty INFRA 基础设施模块常见问题答疑
基础设施组件与 Infra 集群管理 SOP:创建,销毁,扩容,缩容,证书,仓库……






