首页主机资讯centos pgadmin集群部署指南

centos pgadmin集群部署指南

时间2025-10-01 01:30:03发布访客分类主机资讯浏览475
导读:CentOS上pgAdmin集群部署指南 一、前置准备 在开始部署前,请确保: CentOS系统已更新至最新版本(sudo yum update -y); 已准备好至少2台服务器(用于pgAdmin多实例部署,实现高可用); 每台服务器已...

CentOS上pgAdmin集群部署指南

一、前置准备

在开始部署前,请确保:

  1. CentOS系统已更新至最新版本(sudo yum update -y);
  2. 已准备好至少2台服务器(用于pgAdmin多实例部署,实现高可用);
  3. 每台服务器已安装PostgreSQL数据库(作为pgAdmin管理的后端集群,参考PostgreSQL集群部署文档);
  4. 确保服务器之间网络互通,防火墙允许相关端口通信(如5432、80/443)。

二、安装pgAdmin

1. 通过YUM安装(推荐)

pgAdmin官方提供了CentOS的YUM仓库,安装步骤如下:

 添加pgAdmin官方YUM仓库
sudo rpm -i https://download.pgadmin.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat.repo

 安装pgAdmin(选择适合CentOS版本的包,如el7/el8)
sudo yum install -y pgadmin4

 启动pgAdmin服务并设置开机自启
sudo systemctl start pgadmin4
sudo systemctl enable pgadmin4

2. 验证安装

安装完成后,通过浏览器访问http://< 服务器IP> :5050(默认端口5050),若出现pgAdmin登录页面,则说明安装成功。

三、配置pgAdmin高可用集群

1. 部署多个pgAdmin实例

在每台服务器上重复上述安装步骤,确保所有实例运行相同版本的pgAdmin。安装完成后,每个实例会自动创建默认配置文件(位于/var/lib/pgadmin/config_local.py)。

2. 配置负载均衡器(核心组件)

使用Nginx作为负载均衡器,将客户端请求分发到多个pgAdmin实例,提升可用性和性能。

(1)安装Nginx

sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

(2)配置Nginx反向代理

编辑Nginx配置文件(/etc/nginx/nginx.conf),添加以下内容:

http {

    upstream pgadmin_cluster {
    
        server <
    pgadmin1_IP>
    :5050;
       替换为第一台pgAdmin服务器IP
        server <
    pgadmin2_IP>
    :5050;
   替换为第二台pgAdmin服务器IP
         可根据需要添加更多实例
    }


    server {
    
        listen 80;
    
        server_name pgadmin.yourdomain.com;
   替换为你的域名或IP

        location / {
    
            proxy_pass http://pgadmin_cluster;
    
            proxy_set_header Host $host;
    
            proxy_set_header X-Real-IP $remote_addr;
    
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
            proxy_set_header X-Forwarded-Proto $scheme;

        }

    }

}
    

保存后重启Nginx:

sudo systemctl restart nginx

3. 配置pgAdmin实例同步

为确保所有pgAdmin实例的用户、服务器配置一致,需启用pgAdmin配置同步

 编辑pgAdmin主配置文件(/etc/pgadmin/config_systemd.py)
sudo vim /etc/pgadmin/config_systemd.py

添加以下内容(替换为你的邮件服务器信息):

 配置邮件服务器(用于发送账户验证邮件)
MAIL_SERVER = &
    x27;
    smtp.yourdomain.com&
    x27;
    
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USERNAME = &
    x27;
    your_email@yourdomain.com&
    x27;
    
MAIL_PASSWORD = &
    x27;
    your_email_password&
    x27;
    

 配置同步存储(使用数据库存储配置)
STORAGE_TYPE = &
    x27;
    sqlalchemy&
    x27;
    
SQLALCHEMY_DATABASE_URI = &
    x27;
    postgresql://pgadmin_user:your_password@<
    PostgreSQL_Server_IP>
    /pgadmin&
    x27;
    

重启pgAdmin服务使配置生效:

sudo systemctl restart pgadmin4

4. 配置高可用存储(可选但推荐)

为避免单点故障导致数据丢失,建议将pgAdmin的数据目录挂载到高可用文件系统(如GlusterFS、Ceph):

 示例:使用GlusterFS挂载(需提前部署GlusterFS集群)
sudo yum install -y glusterfs-client
sudo mkdir -p /mnt/pgadmin_data
sudo mount -t glusterfs <
    glusterfs_server1_IP>
    :/pgadmin_volume /mnt/pgadmin_data
 将pgAdmin数据目录指向挂载点
sudo sed -i &
    x27;
    s|/var/lib/pgadmin|/mnt/pgadmin_data|g&
    x27;
 /etc/pgadmin/config_systemd.py
sudo systemctl restart pgadmin4

四、配置PostgreSQL集群连接

pgAdmin的核心功能是管理PostgreSQL数据库集群,需先配置pgAdmin与PostgreSQL集群的连接:

  1. 登录pgAdmin Web界面(通过Nginx访问的地址);
  2. 点击左侧“Servers”→右键选择“Create”→“Server”;
  3. 在“General”标签页输入服务器名称(如“PostgreSQL_Cluster”);
  4. 在“Connection”标签页填写以下信息:
    • Host:PostgreSQL集群的主节点IP地址;
    • Port:PostgreSQL监听端口(默认5432);
    • Username:PostgreSQL超级用户(如“postgres”);
    • Password:超级用户密码;
  5. 点击“Save”保存配置,若连接成功,左侧“Servers”下会显示该服务器节点。

五、安全加固

1. 配置SSL加密

为避免数据传输被窃取,建议为pgAdmin和PostgreSQL配置SSL:

(1)pgAdmin配置SSL

编辑Nginx配置文件,添加SSL证书:

server {
    
    listen 443 ssl;
    
    server_name pgadmin.yourdomain.com;
    

    ssl_certificate /path/to/your/certificate.crt;
    
    ssl_certificate_key /path/to/your/private.key;


    location / {
    
        proxy_pass http://pgadmin_cluster;
    
        proxy_set_header Host $host;
    
        proxy_set_header X-Real-IP $remote_addr;
    
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
        proxy_set_header X-Forwarded-Proto $scheme;

    }

}


 重定向HTTP到HTTPS
server {
    
    listen 80;
    
    server_name pgadmin.yourdomain.com;
    
    return 301 https://$host$request_uri;

}
    

重启Nginx:

sudo systemctl restart nginx

(2)PostgreSQL配置SSL

参考PostgreSQL官方文档配置SSL,生成证书并修改postgresql.conf

ssl = on
ssl_cert_file = '/path/to/server.crt'
ssl_key_file = '/path/to/server.key'

2. 防火墙配置

允许Nginx(80/443)和PostgreSQL(5432)端口通过防火墙:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
sudo firewall-cmd --reload

3. 访问控制

  • 限制pgAdmin访问IP:在Nginx配置中添加allow指令,仅允许可信IP访问;
  • 设置强密码:确保pgAdmin用户和PostgreSQL用户使用复杂密码(包含大小写字母、数字、特殊字符);
  • 定期更新:保持pgAdmin、PostgreSQL及系统软件包为最新版本,修复已知漏洞。

六、监控与维护

  1. 监控pgAdmin状态:使用systemctl status pgadmin4查看服务运行状态,通过Nginx的access.logerror.log监控访问情况;
  2. 备份pgAdmin数据:定期备份/var/lib/pgadmin目录(或高可用存储挂载点),确保数据可恢复;
  3. 监控PostgreSQL集群:使用pg_stat_replication视图监控主从复制状态,使用repmgr工具监控节点健康状态。

通过以上步骤,即可在CentOS上完成pgAdmin集群部署,实现高可用性和负载均衡,有效管理PostgreSQL数据库集群。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos pgadmin集群部署指南
本文地址: https://pptw.com/jishu/715054.html
centos pgadmin性能调优技巧 CentOS Dropped后还有哪些选择

游客 回复需填写必要信息