Zabbix无法连接到PostgreSQL数据库

首先,我正在运行CentOS 6.5并尝试使用Zabbix 2.2.4。 任何主机名已被示例所取代。

我已经在Zabbix机器上安装了以下RPM(主机名为zbx-hostname):

zabbix-java-gateway-2.2.4-1.el6.x86_64 zabbix-web-2.2.4-1.el6.noarch zabbix-agent-2.2.4-1.el6.x86_64 zabbix-server-2.2.4-1.el6.x86_64 zabbix-2.2.4-1.el6.x86_64 zabbix-web-pgsql-2.2.4-1.el6.noarch zabbix-server-pgsql-2.2.4-1.el6.x86_64 

我的PostgreSQL机器上安装了PostgreSQL 9.2,RPMS(主机名为db-hostname):

 postgresql92-9.2.8-1PGDG.rhel6.x86_64 postgresql92-libs-9.2.8-1PGDG.rhel6.x86_64 postgresql92-server-9.2.8-1PGDG.rhel6.x86_64 

我的zabbix_server.conf文件如下所示:

 LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid DBHost=db-hostname DBName=zabbix-dbname DBUser=zabbix-user DBPassword=zabbix-password DBSocket= DBPort=5432 

我的zabbix的PHPconfiguration如下所示:

 $DB['TYPE'] = 'POSTGRESQL'; $DB['SERVER'] = 'db-hostname'; $DB['PORT'] = '5432'; $DB['DATABASE'] = 'zabbix-dbname'; $DB['USER'] = 'zabbix-user'; $DB['PASSWORD'] = 'zabbix-password'; // SCHEMA is relevant only for IBM_DB2 database $DB['SCHEMA'] = ''; $ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?> 

我能够运行以下并成功连接到我的数据库:

 export PGPASSWORD=zabbix; psql -U zabbix-user -d zabbix-dbname -h db-hostname export PGPASSWORD=zabbix; psql -U zabbix-user -d zabbix-dbname -h 192.168.0.1 

但zabbix拒绝连接打印(192.168.0.1是正确parsing的IP地址):

 25015:20150205:112656.236 [Z3001] connection to database 'zabbix-dbname' failed: [0] could not connect to server: Permission denied Is the server running on host "db-hostname" (192.168.0.1) and accepting TCP/IP connections on port 5432? 25015:20150205:112656.236 Database is down. Reconnecting in 10 seconds. 

但在DB主机监视包含TCP通信时,我没有看到任何传入的连接(同时使用tcpdump和iptables)。 看来zabbix甚至没有试图向数据库的请求?

我打开了我的zabbix盒,并反驳它得到相同的错误两次,所以这似乎是我的configuration问题,有没有人知道任何解决scheme?

来自评论以前的评论:

我已经设法解决这个问题,SE Linux被错误地启用,并阻止zabbixnetworking。 为了解决我跑的问题:

 setsebool -P zabbix_can_network 1 

讨论这个话题可以在(警告:俄语):http: //zabbix.com/forum/showthread.php?t=47247

在我的情况下,我需要为httpd授予networking访问权限。 (CentOS 7,zabbix 3)

 sudo setsebool -P httpd_can_network_connect_db 1 sudo setsebool -P httpd_can_network_connect 1 

如果你有错误“setsebool,找不到命令”install policycoreutils-python

 yum install policycoreutils-python