创建 UDP 套接字时出现问题

创建 UDP 套接字时出现问题

我们的生产服务器在 Red Hat Enterprise Linux Server 版本 5(Tikanga)上运行 PostgreSQL v8.2.3。

由于某种原因,PostgreSQL 中的统计收集器不起作用。

甚至在 PostgreSQL 邮件列表中发布了这个问题:统计信息收集器未收集服务器活动

他们说导致无法启动统计收集器的原因是:

  1. 操作系统防火墙
  2. 此机器上运行的防病毒程序
  3. 任何其他不寻常的安全功能,如 SE-Linux
  4. 创建 UDP 套接字时出现问题

我们的服务器上没有运行任何防病毒程序或启用 SE-Linux。

到目前为止,我还确信就我而言,这是由于第 4 个原因,即创建 UDP 套接字时出现问题。

我不是 Linux iptables 专家。我需要在 iptables 中允许/删除什么才能创建 UDP 套接字吗?

笔记:数据库以“postgres”用户身份运行。

以下是我的iptables参赛作品:

[root@myserver ~]# more /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Sep 14 20:04:30 2009
*nat
:PREROUTING ACCEPT [10934:1556118]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [111392:6686084]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 5050
-A POSTROUTING -j MASQUERADE
-A OUTPUT -d 192.168.0.200 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.200:5050
-A OUTPUT -d 127.0.0.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:5050
COMMIT
# Completed on Mon Sep 14 20:04:30 2009
# Generated by iptables-save v1.3.5 on Mon Sep 14 20:04:30 2009
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -j ACCEPT
-A FORWARD -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Mon Sep 14 20:04:30 2009

非常感谢专家为解决该统计收集器启动问题提供建议。

更新:从我们遇到这个问题的第一天起,我们就对 iptables 防火墙产生了些许怀疑。所以我们最终决定在服务器中禁用 iptables 防火墙并尝试一下。因此,如果我通过执行完全禁用/停止 iptables 防火墙,service iptables stop然后重新启动 PostgreSQL 服务,那么一切就绪了!!在 iptables 防火墙被禁用/停止的情况下,PostgreSQL 统计信息收集器可以正常工作。

答案1

我想知道这怎么可能与 iptables 有关,因为默认情况下,一切似乎都处于 ACCEPT 状态。PostgreSQL 服务器是否恰好有 192.168.0.200 IP 地址?虽然与统计收集器相关的任何内容都不应在端口 80 上运行...

您是否绝对、肯定地确定您的 PostgreSQL 配置没有问题?接下来我会检查一下。

答案2

发现并解决了创建 UDP 套接字时出现的问题。这是由于操作系统防火墙 ( iptables) 限制创建 UDP 套接字造成的。

我彻底刷新/清除了所有现有的 iptables 规则,然后重新启动了 iptables 服务。它现在正在运行,PostgreSQL 统计信息收集器也已开始按预期工作。

请参阅我发布的与此相关的问答: iptables 命令清除所有现有规则

相关内容