O Zabbix não pode se conectar a um banco de dados PostgreSQL

3

Primeiro, estou executando o CentOS 6.5 e tentando usar o Zabbix 2.2.4. Quaisquer nomes de host foram substituídos por exemplos.

Eu instalei os seguintes RPMs em minha máquina Zabbix (hostname será 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

Minha máquina PostgreSQL possui o postgreSQL 9.2 instalado com o RPMS (o nome do host será 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

Meu arquivo zabbix_server.conf se parece com:

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

Minha configuração do php zabbix se parece com:     

$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;
?>

Eu posso executar o seguinte e conectar-me com sucesso ao meu banco de dados:

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

Mas o zabbix se recusa a conectar a impressão (192.168.0.1 sendo o endereço IP corretamente resolvido):

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.

Mas no host do banco de dados quando monitora a entrada do tráfego TCP, não vejo nenhuma conexão de entrada (usando tanto o tcpdump quanto o iptables). Parece que o zabbix não está nem tentando fazer um pedido para a caixa do banco de dados?

Tenho que desmontar minha caixa do zabbix e rebatê-la para obter o mesmo erro duas vezes, o que parece ser um problema com a minha configuração, alguém sabe de alguma solução?

    
por Chris Tompkinson 05.02.2015 / 12:40

2 respostas

4

Do comentário anterior:

Eu consegui resolver o problema, o SE Linux foi habilitado incorretamente e estava bloqueando o zabbix da rede. Para resolver o problema, corri:

setsebool -P zabbix_can_network 1

O tópico que aborda isso pode ser encontrado em (Aviso: em russo): link

    
por 06.02.2015 / 10:18
2

Na minha situação, também preciso conceder acesso à rede para o httpd. (CentOS 7, zabbix 3)

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

Se você tiver o erro "setsebool, o comando não foi encontrado", instale o policycoreutils-python

yum install policycoreutils-python
    
por 26.02.2016 / 15:21