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