INFRA概览
每一套 Pigsty 部署(Deployment) 中,都需要有一些基础设施,才能使整个系统正常工作。基础设施通常由专业的运维团队或云厂商负责,但Pigsty作为一个开箱即用的PaaS解决方案,将基本的基础设施集成至供给方案中。
Pigsty会在元节点(默认为当前安装的节点)上部署一套完整的基础设施,包括:
基础设施部署于 上。一套环境中包含一个或多个元节点,用于基础设施部署。除了 分布式配置存储(DCS) 之外,所有基础设施组件都采用副本式部署。
Nginx是Pigsty所有WebUI类服务的访问入口,默认使用管理节点80端口。
有许多带有WebUI的基础设施组件通过Nginx对外暴露服务,例如Grafana,Prometheus,AlertManager,Consul,以及HAProxy流量管理页等。 此外,YumRepo,文档,执行计划可视化器等静态文件资源也通过Nginx对外提供服务。
Nginx会根据 的内容,通过域名的方式,将访问请求转发至对应的上游组件处理。 Pigsty强烈建议使用域名访问Pigsty UI系统,而不是直接通过IP+端口的方式访问,基于以下几个理由:
- 一些组件默认只监听 127.0.0.1 ,因此只能通过Nginx代理访问
- 通过域名访问可以将访问收拢至Nginx,审计一切请求,并方便地集成认证机制。
- 域名更容易记忆,并提供了配置灵活性。
如果您没有可用的互联网域名或本地DNS解析,您可以在 /etc/hosts
或中添加本地静态解析记录。
Nginx相关配置参数位于:配置:INFRA - NGINX
Yum Repo
Pigsty会在安装时首先建立一个本地Yum软件源,以加速后续软件安装。
该Yum源由Nginx提供服务,默认位于为 /www/pigsty
,可以访问 http://yum.pigsty/pigsty
获取。Pigsty的离线软件包即是将已经建立好的Yum Repo目录整个打成压缩包。
当Pigsty尝试构建本地源时,如果发现本地源目录 /www/pigsty
已经存在,且带有 /www/pigsty/repo_complete
标记文件,则会认为本地源已经构建完成,从而跳过从原始上游下载软件的步骤,消除了对互联网访问的依赖。
Repo文件位于 /www/pigsty.repo
,默认可以通过http://yum.pigsty/pigsty.repo
获取
[pigsty-local]
baseurl=file:///www/pigsty/
gpgcheck=0
Yum Repo相关配置参数位于:配置:INFRA - REPO
Grafana
Grafana是开源的可视化/监控平台,是Pigsty WebUI的核心,默认监听3000端口,可以直接通过IP:3000
或域名http://g.pigsty
访问。
Pigsty的监控系统基于Dashboard构建,通过URL进行连接与跳转。您可以快速地在监控中下钻上卷,快速定位故障与问题。
此外,Grafana还可以用作通用的低代码前后端平台,制作交互式可视化数据应用。因此,Pigsty使用的Grafana带有一些额外的可视化插件,例如ECharts面板。
Grafana相关配置参数位于:配置:INFRA - GRAFANA
AlertManager
AlertManager是与Prometheus配套的告警平台,默认监听9093端口,可以直接通过IP:9093
或域名http://a.pigsty
访问。
Prometheus的告警事件会发送至AlertManager,但如果需要进一步处理,用户需要进一步对其进行配置,例如提供SMTP服务配置以发送告警邮件。
Prometheus是监控时序数据库,默认监听9090端口,可以直接通过或域名http://p.pigsty
访问。
Prometheus是监控用时序数据库。
- Prometheus默认通过本地静态文件服务发现获取监控对象,并为其关联身份信息。
- Prometheus可以选择使用Consul服务发现,自动获取监控对象。
- Prometheus从Exporter拉取监控指标数据,进行预计算加工后存入自己的TSDB中。
- Prometheus计算报警规则,将报警事件发往Alertmanager处理。
Prometheus相关配置参数位于:
Loki
Prometheus是监控时序数据库,默认监听3100端口。
Loki是用于日志收集的日志数据库,节点上的Promtail向元节点上的Loki推送日志。
LOKI相关配置参数位于:
Consul
Consul Server用于保存DCS的状态,达成共识,提供元数据查询服务,亦提供基于DCS的服务发现。
Docker
Pigsty默认在元节点上安装Docker,您可以拉起各式各样的无状态应用,并使用外部数据库获得生产级的持久性。Docker相关配置参数位于:配置:INFRA - DOCKER
PostgreSQL相关配置参数位于:配置:PGSQL,使用CMDB作为配置源,请参考。
用于支持各种高级功能的MetaDB(亦是一个标准的数据库集群,由Ansible拉起)
用于执行剧本,发起控制的Ansible,使用动态Inventory时会访问CMDB
定时任务控制器(支持备份,清理,统计,巡检,等特性),会访问CMDB
Ansible
Pigsty默认会在元节点上安装Ansible,Ansible是一个流行的运维工具,采用声明式的配置风格与幂等的剧本设计,可以极大降低系统维护的复杂度。命令行工具 pigsty-cli 会调用Ansible Playbook发起管控
Ansible相关配置参数位于:
Dnsmasq
Dnsmasq提供环境内的DNS解析服务(可选)
- DNS服务为可选,可使用已有DNS服务器
DNSMASQ相关配置参数位于:
NTP
NTP服务用于同步环境内所有节点的时间(可选)
NTP相关配置参数位于:
Pigsty 提供了一个公开演示的demo,地址为:
因为演示实例为1核1GB的空虚拟机空实例,故显示内容较为单薄,请以实际效果为准。
最后修改 2022-05-27: add makefile shortcuts (23d6900)