【问题标题】:PostgreSQL server is not available. Waiting 5 secondsPostgreSQL 服务器不可用。等待 5 秒
【发布时间】:2018-03-30 04:17:51
【问题描述】:

我在创建 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...

【问题讨论】:

    标签: postgresql docker zabbix


    【解决方案1】:

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

    第一步:

    docker 网络创建 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

    第三步:运行zabbix-server镜像

    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

    第四步:

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

    docker exec -it zabbix-postgres sh

    # su
    
    root@234afbed:/# psql -U zabbix
    
    zabbix=# \dt
    

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

    【讨论】:

      【解决方案2】:

      zabbix/zabbix-web-nginx-pgsql 图像是基于 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 之后 Zabbix 接口将在localhost:8080 上可用。

      【讨论】:

      • 非常感谢您的帮助。我有一个问题,这是一个容器还是多个容器,因为我看到它使用了 3 个图像?问题是我必须只创建一个使用 Nginx 和 PostgreSQL 运行的 zabbix 容器来监控另一个容器的服务器。
      • 上面的例子有三个容器。如果您已经拥有带有 Zabbix 服务器和 PostgreSQL 的容器,则只需要 zabbix-web 部分。
      • 例如,我可以挂载在 CentOS 容器上,这是一个与 Nginx 和 PostgreSQL 一起工作的 Zabbix Web 服务器。如果我的问题非常明显或愚蠢,请原谅我是新手,有些事情我不太了解。 @尼古拉
      【解决方案3】:

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

      我有一个类似的问题并在包含 --network 后解决了

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

      【讨论】:

        【解决方案4】:

        在文件 ./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
        

        【讨论】:

          猜你喜欢
          • 2015-05-12
          • 2017-05-30
          • 1970-01-01
          • 1970-01-01
          • 2010-12-22
          • 2017-03-04
          • 2016-05-05
          • 1970-01-01
          • 2021-03-12
          相关资源
          最近更新 更多