PostgreSQL服务器不可用。等待5秒

时间:2018-03-30 04:17:51

标签: postgresql docker zabbix

我在创建zabbix/zabbix-web-nginx-pgsql:latest容器时遇到问题,说PostgreSQL服务器不可用。等待5秒,那里不会发生。我是docker的新手,我不知道为什么会发生这种情况,我在某​​处读到了DB_SERVER_ROOT_USER = "zabbix"的价值已经解决但是没有用。我做错了什么?

docker run -e DB_SERVER_ROOT_USER="zabbix" zabbix/zabbix-web-nginx-pgsql:latest
** Deploying Zabbix frontend (nginx) with postgresql database
** Preparing the system
** Preparing Zabbix web-interface
*********************
* DB_SERVER_HOST: postgres-server
* DB_SERVER_PORT: 5432
* DB_SERVER_DBNAME: zabbix
* DB_SERVER_ZBX_USER: zabbix
* DB_SERVER_ZBX_PASS: zabbix
***********************
**** PostgreSQL server is not available. Waiting 5 seconds...
**** PostgreSQL server is not available. Waiting 5 seconds...
**** PostgreSQL server is not available. Waiting 5 seconds...

4 个答案:

答案 0 :(得分:2)

在新版本的Docker中,使用“网络”被认为是正确的

第1步:

  

docker network创建zabbix-network

为方便起见,您可以为数据库创建一个卷:

  

docker卷创建zabbix-postgres-volume

第2步:运行postgres图像

  

docker run -d -it --name zabbix-postgres --network zabbix-network -e   POSTGRES_USER = zabbix -e POSTGRES_PASSWORD = zabbix -v   zabbix-posgres-volume:/ var / lib / postgresql / data postgres

第3步:运行zabbix服务器映像

  

docker run -it -d --name zabbix-server --network zabbix-network -p   10051:10051 -e DB_SERVER_HOST = zabbix-postgres -e POSTGRES_USER = zabbix   -e POSTGRES_PASSWORD = zabbix zabbix / zabbix-server-pgsql

第4步:

现在您可以通过登录PostgreSQL检查正确的连接

  

docker exec -it zabbix-postgres sh

# su

root@234afbed:/# psql -U zabbix

zabbix=# \dt

如果一切正确,那么您应该看到数据库中创建了149个表

答案 1 :(得分:1)

zabbix/zabbix-web-nginx-pgsql image是一个基于Nginx的Zabbix前端,支持PostgreSQL数据库。它里面没有PostgreSQL数据库。 Zabbix Web界面是Zabbix软件的一部分。它用于管理监视下的资源并查看监视统计信息。

它应该作为Zabbix服务器(zabbix/zabbix-server-pgsql)和PostrgreSQL(postgres)数据库的补充进行部署。

有一个docker-compose.yaml示例,可以帮助您实现目标:

version: '3.1'
services:
  postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
  zabbix-server:
    image: zabbix/zabbix-server-pgsql
    restart: always
    environment:
      DB_SERVER_HOST: postgres
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
    depends_on:
      - postgres
  zabbix-web:
    image: zabbix/zabbix-web-nginx-pgsql
    restart: always
    environment:
      ZBX_SERVER_HOST: zabbix-server
      DB_SERVER_HOST: postgres
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: zabbix
      POSTGRES_DB: zabbix
    depends_on:
      - postgres
      - zabbix-server
    ports:
      - 8080:80

高于docker-compose.yaml允许部署PostgreSQL,Zabbix服务器和Zabbix Web前端。

docker-compose up之后localhost:8080 Zabbix接口可用。

答案 2 :(得分:0)

请尝试使用--network = host(仅适用于Linux)运行zabbix容器

我遇到了类似的问题,并在加入--network后解决了该问题

您可以在此处找到更多详细信息。 From inside of a Docker container, how do I connect to the localhost of the machine?

答案 3 :(得分:0)

在文件./zbx_env/var/lib/postgresql/data/pg_hda.conf

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

更改为

host    all             all             0.0.0.0/0            trust