Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL server不可用。等待5秒_Postgresql_Docker_Zabbix - Fatal编程技术网

PostgreSQL server不可用。等待5秒

PostgreSQL server不可用。等待5秒,postgresql,docker,zabbix,Postgresql,Docker,Zabbix,我在创建zabbix/zabbix web nginx pgsql:latest容器时遇到问题,该容器表示PostgreSQL服务器不可用。等待5秒,它不会在那里发生。我是docker的新手,我不知道为什么会发生这种情况,我在某个地方读到,赋予DB\u SERVER\u ROOT\u USER=“zabbix”价值的问题已经解决了,但没有起作用。我做错了什么 docker run -e DB_SERVER_ROOT_USER="zabbix" zabbix/zabbix-web-nginx-pg

我在创建
zabbix/zabbix web nginx pgsql:latest
容器时遇到问题,该容器表示PostgreSQL服务器不可用。等待5秒,它不会在那里发生。我是docker的新手,我不知道为什么会发生这种情况,我在某个地方读到,赋予
DB\u SERVER\u ROOT\u 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...
image是一个基于Nginx的Zabbix前端,支持PostgreSQL数据库。它里面没有PostgreSQL数据库。Zabbix web界面是Zabbix软件的一部分。它用于管理受监控的资源和查看监控统计信息

它应该作为Zabbix服务器()和postgresql()数据库的一个附件进行部署

有一个
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
上可用

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

我有一个类似的问题,在加入网络后解决了

你可以在这里找到更多细节。

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

步骤1:

docker网络创建zabbix网络

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

docker卷创建zabbix postgres卷

步骤2:运行postgres映像

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

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

docker run-it-d--名称zabbix服务器--网络zabbix网络-p 10051:10051-e DB_服务器_主机=zabbix postgres-e postgres_用户=zabbix -e POSTGRES_PASSWORD=zabbix zabbix/zabbix服务器pgsql

步骤4:

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

docker exec-it zabbix postgres sh


如果一切正常,那么您应该可以在文件./zbx_env/var/lib/postgresql/data/pg_hda.conf中看到在数据库中创建的149个表

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

host    all             all             0.0.0.0/0            trust

非常感谢你的帮助。我有一个问题,这是一个单一的容器或几个,因为我看到它使用3个图像?问题是,我必须只创建一个使用Nginx和PostgreSQL操作的zabbix容器,以监视作为另一个容器的服务器。如果您已经有了zabbix服务器和PostgreSQL的容器,则只需要
zabbix web
部件。例如,我可以装载到CentOS容器上,一个与Nginx和PostgreSQL一起工作的zabbix web服务器。请原谅,如果我的问题很明显或愚蠢,我是新手,有些事情我不太了解@尼科莱
host    all             all             0.0.0.0/0            trust