做一个网站需要哪些中国建筑装饰网网址
news/
2025/9/30 7:10:29/
文章来源:
做一个网站需要哪些,中国建筑装饰网网址,下载京东商城网上购物,百度竞价培训班博客
https://songxwn.com/Pigsty-PG-RDS/
简介
Pigsty 是一个更好的本地自建且开源 RDS for PostgreSQL 替代#xff0c;具有以下特点#xff1a; 开箱即用的 PostgreSQL 发行版#xff0c;深度整合地理、时序、分布式、图、向量、分词、AI等 150 余个扩展插件#xff…博客
https://songxwn.com/Pigsty-PG-RDS/
简介
Pigsty 是一个更好的本地自建且开源 RDS for PostgreSQL 替代具有以下特点 开箱即用的 PostgreSQL 发行版深度整合地理、时序、分布式、图、向量、分词、AI等 150 余个扩展插件 运行于裸操作系统之上无需容器支持支持主流操作系统 EL7/8/9 及其衍生发行版 Ubuntu 20.04/22.04 以及 Debian 11/12。(推荐使用Rocky Linux) 基于现代的 Prometheus 与 Grafana 技术栈提供令人惊艳无可比拟的数据库观测能力画廊 演示站点 基于 patroni haproxy 与etcd打造故障自愈的高可用架构硬件故障自动切换流量无缝衔接。 基于 pgBackRest 与可选的 MinIO 集群提供开箱即用的 PITR 时间点恢复为软件缺陷与人为删库兜底。 基于 Ansible 提供声明式的 API 对复杂度进行抽象以 Database-as-Code 的方式极大简化了日常运维管理操作。 Pigsty用途广泛可用作完整应用运行时开发演示数据/可视化应用大量使用 PG 的软件可用 Docker 模板一键拉起。 提供基于 Vagrant 的本地开发测试沙箱环境与基于 Terraform 的云端自动部署方案开发测试生产保持环境一致。 部署并监控专用的 Redis主从哨兵集群MinIOEtcdHaproxyMongoDBFerretDB 集群
官方文档https://pigsty.cc/doc/#/zh/README
项目地址https://github.com/Vonng/pigsty 本教程说明
一个非常简单的入门教程用于构建一个三节点的PG集群开启VIP且支持扩展时序数据库timescaledb主要用于Zabbix的后端数据库。
基于Pigsty 2.5.1 、Rocky Linux 9.3 编写。
安装
初始化元节点管理监控节点
准备一个全新的符合要求 的 Linux x86_64 使用带有root权限或有sudo权限的用户执行安装脚本。
官方推荐使用Rocky Linux 8.8配置建议2C4G 100G硬盘
curl https://get.pigsty.cc/latest | bashPS安装后会移除系统自带yum源建议提前安装所需软件。
该命令会下载并解压 Pigsty 源码至用户Home按提示完成 准备配置安装三个步骤即可完成安装。
cd ~/pigsty # 进入 Pigsty 源码目录完成后续 准备、配置、安装 三个步骤
./bootstrap
# 确保 Ansible 正常安装如果存在 /tmp/pkg.tgz 离线软件包便使用它。
./configure
# 执行环境检测并生成相应的推荐配置文件如果你知道如何配置 Pigsty 可以跳过。
./install.yml
# 根据生成的配置文件开始在当前节点上执行安装使用离线安装包大概需要10分钟完成。
# 可以在里面修改默认信息pigsty.yml如域名和默认密码等。安装完成后您可以通过域名或80/443端口通过 Nginx 访问 WEB 界面通过 5432 端口访问元节点默认的 PostgreSQL 数据库服务。
IP地址规划
IP地址主机名角色172.18.77.33pg-meta-1元节点172.18.77.101pg-cu1-1PG集群主机节点172.18.77.102pg-cu1-2PG集群主机节点172.18.77.103pg-cu1-3PG集群主机节点172.18.77.99vipKeepalived 虚拟IP
PSKeepalived 集群需要在同一广播域。其实就是基于VRRP协议
DNS 解析配置
组件端口域名说明官方Demo地址Nginx80h.pigstyWeb 服务总入口本地YUM源home.pigsty.ccAlertManager9093a.pigsty告警聚合/屏蔽页面a.pigsty.ccGrafana3000g.pigstyGrafana 监控面板demo.pigsty.ccPrometheus9090p.pigstyPrometheus 管理界面p.pigsty.cc
你需要修改hosts文件增加以上解析。或者在内网dns配置上述解析。解析的IP为元节点IP即可。
Pigsty 会自动给纳入管理的节点填写hosts文件。
172.18.77.33 h.pigsty a.pigsty p.pigsty g.pigsty # pigsty dns
#示例访问Web 界面
主页域名为 h.pigsty g.pigsty 为Grafana 全局应用默认账号密码为 admin/pigsty。
(如果自己电脑要用浏览器访问注意配置DNS解析或hosts文件)
部署三节点PG高可用集群 编辑Pigsty 配置文件增加主机节点信息
cd ~/pigsty
# 进入pigsty 主目录所有操作都在此目录执行。
vim pigsty.yml
# 编辑配置文件增加三台主节点和集群配置。增加PG集群和VIP配置信息
1、集群名字为pg-cu1
2、配置172.18.77.101为默认主节点其他为从节点。
3、开启keepalived配置配置VIP地址为 172.18.22.99。配置每台关联VIP的网卡为ens33。网卡名字注意修改
4、此段配置在children 下增加与默认的pg-meta同级别。
5、VRRP的id 为35注意不要冲突。 pg-cu1:hosts:172.18.77.101: { pg_seq: 1, pg_role: primary }172.18.77.102: { pg_seq: 2, pg_role: replica }172.18.77.103: { pg_seq: 3, pg_role: replica }vars: pg_cluster: pg-cu1vip_enabled: true # enable vip on this node cluster?vip_address: 172.18.77.99 # node vip address in ipv4 format, required if vip is enabledvip_vrid: 35 # required, integer, 1-254, should be unique among same VLANvip_role: backup # optional, master/backup, backup by default, use as init rolevip_preempt: true # optional, true/false, false by default, enable vip preemptionvip_interface: ens33 # node vip network interface to listen, eth0 by defaultvip_dns_suffix: # node vip dns name suffix, empty string by defaultvip_exporter_port: 9650 # keepalived exporter listen port, 9650 by default增加PG数据库、用户、HBA配置。
1、增加zabbix、grafana 数据库Zabbix 开启timescaledb扩展并配置所属用户。并与pgbouncer同步创建。
2、增加zabbix、grafana 用户并配置密码、角色。并与pgbouncer同步创建。
3、配置用户的HBA规则允许任意IP访问并配置pgbouncer和HBA
4、pg_libs 配置PG加载的插件列表这里加载了timescaledb插件。 pg-cu1:hosts:172.18.77.101: { pg_seq: 1, pg_role: primary } 172.18.77.102: { pg_seq: 2, pg_role: replica } 172.18.77.103: { pg_seq: 3, pg_role: replica } vars: pg_cluster: pg-cu1pg_databases:- name: zabbix # 必选name 是数据库定义的唯一必选字段pgbouncer: true # 可选是否将此数据库添加到 pgbouncer 数据库列表默认为 trueextensions: # 可选要安装的附加扩展 扩展对象的数组- { name: timescaledb } # 例如有的扩展会创建并使用固定的模式就不需要指定模式。owner: zabbix # 可选数据库所有者默认为 postgres- name: grafana # 必选name 是数据库定义的唯一必选字段pgbouncer: true # 可选是否将此数据库添加到 pgbouncer 数据库列表默认为 trueowner: grafana # 可选数据库所有者默认为 postgrespg_users: - name: zabbix # 数据库用户名必需name 是用户定义的唯一必选字段password: Passwd.zabbix # 可选密码可以是 scram-sha-256 哈希字符串或明文pgbouncer: true # 可选默认为 false将此用户添加到 pgbouncer 用户列表roles: [dbrole_admin]comment: Zabbix # 可选此用户/角色的说明与备注字符串- name: grafana # 数据库用户名必需name 是用户定义的唯一必选字段password: pgbouncer: true # 可选默认为 false将此用户添加到 pgbouncer 用户列表roles: [dbrole_admin]comment: grafana # 可选此用户/角色的说明与备注字符串pg_hba_rules:- { user: zabbix ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: zabbix用户不限制登录}- { user: grafana ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: grafana用户不限制登录}pgb_hba_rules: - { user: zabbix ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: zabbix用户不限制登录}- { user: grafana ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: grafana用户不限制登录}pg_libs: timescaledb, pg_stat_statements, auto_explain # 加载时序数据库插件vip_enabled: true # enable vip on this node cluster?vip_address: 172.18.77.99 # node vip address in ipv4 format, required if vip is enabledvip_vrid: 35 # required, integer, 1-254, should be unique among same VLANvip_role: backup # optional, master/backup, backup by default, use as init rolevip_preempt: true # optional, true/false, false by default, enable vip preemptionvip_interface: ens33 # node vip network interface to listen, eth0 by defaultvip_dns_suffix: # node vip dns name suffix, empty string by defaultvip_exporter_port: 9650 # keepalived exporter listen port, 9650 by default全部配置展示(仅参考) 用于Zabbix服务器的时序数据库
1、注意全局密码已经修改为PG-PWD-01
all:children:# infra cluster for proxy, monitor, alert, etc..infra: { hosts: { 172.18.77.33: { infra_seq: 1 } } }# etcd cluster for ha postgresetcd: { hosts: { 172.18.77.33: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }# minio cluster, optional backup repo for pgbackrest#minio: { hosts: { 172.18.77.33: { minio_seq: 1 } }, vars: { minio_cluster: minio } }# postgres cluster pg-meta with single primary instancepg-meta:hosts: { 172.18.77.33: { pg_seq: 1, pg_role: primary } }vars:pg_cluster: pg-metapg_databases: [ { name: meta ,baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [ pigsty ] ,extensions: [{name: postgis, schema: public}] }]pg_users:- { name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [ dbrole_admin ] ,comment: pigsty admin user }- { name: dbuser_view ,password: DBUser.Viewer ,pgbouncer: true ,roles: [ dbrole_readonly ] ,comment: read-only viewer for meta database }pg_libs: pg_stat_statements, auto_explain # add extra extensions to shared_preload_librariesnode_crontab: [ 00 03 * * * postgres /pg/bin/pg-backup full ] # make a full backup every 1ambj-zjy-pg-cu1:hosts:172.18.77.101: { pg_seq: 1, pg_role: primary } 172.18.77.102: { pg_seq: 2, pg_role: replica } 172.18.77.103: { pg_seq: 3, pg_role: replica } vars: pg_cluster: pg-cu1pg_databases:- name: zabbix # 必选name 是数据库定义的唯一必选字段pgbouncer: true # 可选是否将此数据库添加到 pgbouncer 数据库列表默认为 trueextensions: # 可选要安装的附加扩展 扩展对象的数组- { name: timescaledb } # 例如有的扩展会创建并使用固定的模式就不需要指定模式。owner: zabbix # 可选数据库所有者默认为 postgres- name: grafana # 必选name 是数据库定义的唯一必选字段pgbouncer: true # 可选是否将此数据库添加到 pgbouncer 数据库列表默认为 trueowner: grafana # 可选数据库所有者默认为 postgrespg_users: - name: zabbix # 数据库用户名必需name 是用户定义的唯一必选字段password: Passwd.Zabbix # 可选密码可以是 scram-sha-256 哈希字符串或明文pgbouncer: true # 可选默认为 false将此用户添加到 pgbouncer 用户列表roles: [dbrole_admin]comment: Zabbix # 可选此用户/角色的说明与备注字符串- name: grafana # 数据库用户名必需name 是用户定义的唯一必选字段password: Passwd.grafana # 可选密码可以是 scram-sha-256 哈希字符串或明文pgbouncer: true # 可选默认为 false将此用户添加到 pgbouncer 用户列表roles: [dbrole_admin]comment: grafana # 可选此用户/角色的说明与备注字符串pg_hba_rules:- { user: zabbix ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: zabbix用户不限制登录}- { user: grafana ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: grafana用户不限制登录}pgb_hba_rules: - { user: zabbix ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: zabbix用户不限制登录}- { user: grafana ,db: all ,addr: 0.0.0.0/0 ,auth: pwd ,title: grafana用户不限制登录}pg_libs: timescaledb, pg_stat_statements, auto_explain # 加载时序数据库插件 vip_enabled: true # enable vip on this node cluster?vip_address: 172.18.77.99 # node vip address in ipv4 format, required if vip is enabledvip_vrid: 35 # required, integer, 1-254, should be unique among same VLANvip_role: backup # optional, master/backup, backup by default, use as init rolevip_preempt: true # optional, true/false, false by default, enable vip preemptionvip_interface: ens33 # node vip network interface to listen, eth0 by defaultvip_dns_suffix: # node vip dns name suffix, empty string by defaultvip_exporter_port: 9650 # keepalived exporter listen port, 9650 by defaultvars: # global parametersversion: v2.5.1 # pigsty version stringadmin_ip: 172.18.77.33 # admin node ip addressregion: china # upstream mirror region: default,china,europeinfra_portal: # domain names and upstream servershome : { domain: h.pigsty }grafana : { domain: g.pigsty ,endpoint: ${admin_ip}:3000 , websocket: true }prometheus : { domain: p.pigsty ,endpoint: ${admin_ip}:9090 }alertmanager : { domain: a.pigsty ,endpoint: ${admin_ip}:9093 }blackbox : { endpoint: ${admin_ip}:9115 }loki : { endpoint: ${admin_ip}:3100 }#minio : { domain: sss.pigsty ,endpoint: ${admin_ip}:9001 ,scheme: https ,websocket: true }# if you want to use minio as backup repo instead of local fs, uncomment minio related lines# dont forget to configure pgbackrest_repo and change credentials there!#pgbackrest_method: minio# if disabled, original /etc/yum.repos.d will be keptrepo_remove: true # remove existing repo on admin node during repo bootstrapnode_repo_remove: true # remove existing node repo for node managed by pigsty# WARNING: CHANGE THESE PASSWORDS#grafana_admin_username: admingrafana_admin_password: PG-PWD-01#pg_admin_username: dbuser_dbapg_admin_password: PG-PWD-01#pg_monitor_username: dbuser_monitorpg_monitor_password: PG-PWD-01#pg_replication_username: replicatorpg_replication_password: PG-PWD-01#patroni_username: postgrespatroni_password: PG-PWD-01#haproxy_admin_username: adminhaproxy_admin_password: PG-PWD-01# this config template assume you are using pre-packed offline packages# If you wish to download upstream yum packages directly from internet,# consider using ad hoc el7.yml, el8.yml, el9.yml config instead.
...配置元节点密钥免密登录主机节点
Pigsty 会在元节点自动生成一对公私钥将其拷贝到所有主机节点。
ssh-copy-id 172.18.77.101
# 执行后输入yes然后再手动输入主机节点的登录密码即可。
ssh 172.18.77.101
# 确认可直接登录即可所有主机节点都要操作。将集群节点纳入Pigsty 管理并部署PG集群
节点纳入管理
bin/node-add pg-cu1 # 将集群 pg-test1 的3个主机节点纳入 Pigsty 管理PG集群初始化部署注意会根据CPU内存等配置自动优化PG参数建议提前固定好虚拟机配置
bin/pgsql-add pg-cu1 # 初始化一个3节点的 pg-cu1 可用PG集群
# 执行后不到10分钟就将拥有一个服务接入监控备份PITR高可用配置齐全的 PostgreSQL 数据库集群。PG集群架构图 硬件故障由 patroni、etcd 和 Haproxy 提供的自愈高可用架构来兜底在主库故障的情况下默认会在 30 秒内执行自动故障转移Failover。 客户端无需修改配置重启应用Haproxy 利用 patroni 健康检查进行流量分发读写请求会自动分发到新的集群主库中并避免脑裂的问题。 这一过程十分丝滑例如在从库故障或主动切换switchover的情况下客户端只有一瞬间的有感知查询闪断。
软件故障、人为错误和 数据中心级灾难由 pgbackrest 和可选的 MinIO 集群来兜底。这为您提供了本地/云端的 PITR 能力并在数据中心爆炸的情况下提供了跨地理区域复制与异地容灾功能。
管理和使用
默认用户
Pigsty 也有四个默认用户系统用户 超级用户 (postgres)集群的所有者和创建者与操作系统 dbsu 名称相同。 复制用户 (replicator)用于主-从复制的系统用户。 监控用户 (dbuser_monitor)用于监控数据库和连接池指标的用户。 管理用户 (dbuser_dba)执行日常操作和数据库更改的管理员用户。
这4个默认用户的用户名/密码通过4对专用参数进行定义并在很多地方引用 pg_dbsu操作系统 dbsu 名称默认为 postgres最好不要更改它 pg_dbsu_passworddbsu 密码默认为空字符串意味着不设置 dbsu 密码最好不要设置。 pg_replication_usernamepostgres 复制用户名默认为 replicator pg_replication_passwordpostgres 复制密码默认为 DBUser.Replicator pg_admin_usernamepostgres 管理员用户名默认为 dbuser_dba pg_admin_passwordpostgres 管理员密码的明文默认为 DBUser.DBA pg_monitor_usernamepostgres 监控用户名默认为 dbuser_monitor pg_monitor_passwordpostgres 监控密码默认为 DBUser.Monitor 在生产部署中记得更改这些密码不要使用默认值 在部署前可以在pigsty.yml 里面修改。 配置用户
bin/pgsql-user cls username # pgsql-user.yml -l cls -e usernameusername配置HBA
bin/pgsql-hba cls # 重新加载指定集群 cls 的 hba 规则
bin/pgsql-hba cls ip1 ip2... # 重新加载特定实例的 hba 规则创建数据库 bin/pgsql-db cls dbname # pgsql-db.yml -l cls -e dbnamedbname数据库集群访问端口说明
组件端口描述状态备注Postgres5432Pigsty CMDB默认启用Pgbouncer6432Pgbouncer 连接池服务默认启用Patroni8008Patroni 高可用组件默认启用Haproxy Primary5433主连接池读/写服务默认启用Haproxy Replica5434副本连接池只读服务默认启用Haproxy Default5436主直连服务*默认启用Haproxy Offline5438离线直连离线读服务默认启用Haproxy service543xPostgreSQL 定制服务按需定制Haproxy Admin9101监控指标和流量管理默认启用PG Exporter9630PG 监控指标导出器默认启用PGBouncer Exporter9631PGBouncer 监控指标导出器默认启用Node Exporter9100节点监控指标导出器默认启用Promtail9080收集数据库组件与主机日志默认启用vip-manager-将 VIP 绑定到主节点按需启用Docker Daemon9323Docker 守护进程按需启用keepalived-为整个集群绑定 L2 VIP按需启用Keepalived Exporter9650Keepalived 指标导出器按需启用 PS个人推荐使用 5436端口并通过VIP地址访问数据库集群。绕过pgbouncer
使用pgbouncer 则可以使用5433端口并通过VIP地址访问集群。
默认管理员账号为dbuser_dba。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922565.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!