通过 WAN 安全地进行 Postgresql 数据聚合

通过 WAN 安全地进行 Postgresql 数据聚合

需要一些关于如何处理这种情况的建议:我目前的情况是,我在各个位置和数据中心部署了多个 postgresql (50+) 框,并在主基地位置设置了一个强大的 postgresql 框。所有部署的框都具有相同的数据库布局。我正在寻找一种可以解决一些问题的解决方案。我意识到其中一些选项重叠,而有些可能只包含互斥的解决方案。但是,我很想听听你的想法 :)

  1. 远程查询已部署的盒子并将结果拉回基地盒子进行处理。

  2. 每晚(远程)“同步”或将部署的盒子的数据库转储到主库盒子上的主数据库。虽然每个远程盒子的表布局相同,但实际数据却各不相同。能够将所有这些数据远程转储到主数据库中将是理想的选择。

  3. 从主基地箱远程推送表格条目到所有已部署的箱子。

  4. 确保传输中数据和远程部署箱的安全。

到目前为止,我一直在使用自制的多线程 python/perl 系统,该系统通过 SSH 远程连接到这些盒子,这些盒子被 ACL 锁定到家庭服务器并通过 ssh 连接拉取(或推送)原始查询结果。我甚至触及了 #2(远程同步),因为我知道这会很快变得很糟糕。我对任何可以扩展并坚持我的 FreeBSD/Linux 环境的更优雅的解决方案的想法都很感兴趣。

答案1

1 远程查询已部署的盒子,并将结果拉回主站盒子进行处理

启用 SSL 并“强制”的标准连接将提供您正在寻找的内容(参见#4 的答案)。

2 每晚(远程)“同步”或将部署的盒子的数据库转储到主库盒子上的主数据库。虽然每个远程盒子的表布局相同,但实际数据却各不相同。能够将所有这些数据远程转储到主数据库中将是理想的选择。

3 从主基地箱远程推送表格条目到所有已部署的箱子。

您是否考虑过有多种复制解决方案可用,包括 Slony?

4 确保传输中的数据和远程部署箱的安全

PostgreSQL 开箱即用地支持 SSL。您还可以强制每个服务器实例要求SSL 用于连接。这将在传输层提供加密。如果您想增加一层安全性,我相信较新的版本还支持客户端证书。

答案2

在我看来,您有多个数据库存储相同的信息,但没有复制方案。

我的建议是:

(1) 考虑通过安全传输进行复制。我更倾向于使用 VPN 而不是 SSH。

(2)访问 irc.freenode.net 上的 #postgresql 获取一些更好的建议。

(3) 确保您的远程设备都已锁定。如果您想要确保这一点,请使用 OpenBSD 而不是 Freebsd/Linux。心安是一件非常宝贵的事情!

相关内容