Php
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 機器安裝了帶有 RPMS 的 postgreSQL 9.2(主機名將是 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 php 配置如下:
$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是正確解析的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.
但是在數據庫主機上,當我監控傳入的 TCP 流量時,我看不到任何傳入連接(同時使用 tcpdump 和 iptables )。看來zabbix甚至沒有嘗試向數據庫框發出請求?
我已經拆掉了我的 zabbix 盒子並重新安裝它兩次得到相同的錯誤,所以這似乎是我的配置問題,有人知道任何解決方案嗎?
從之前的評論:
我已經設法解決了這個問題,SE Linux 啟用不正確並且阻止了 zabbix 聯網。為了解決我跑的問題:
setsebool -P zabbix_can_network 1
討論這個話題可以在(警告:俄語)找到:http: //zabbix.com/forum/showthread.php?t= 47247
在我的情況下,我也需要為 httpd 授予網路訪問權限。(CentOS 7、zabbix 3)
sudo setsebool -P httpd_can_network_connect_db 1 sudo setsebool -P httpd_can_network_connect 1
如果您有錯誤“setsebool,找不到命令”安裝 policycoreutils-python
yum install policycoreutils-python