【发布时间】:2020-07-27 13:49:22
【问题描述】:
我正在尝试为 zabbix 配置 docker-compose yaml 并收到此消息:
Creating network "zabbix_default" with the default driver
Creating zabbix_server ... done
Attaching to zabbix_server
server_1 | Preparing Zabbix server
server_1 | Using MYSQL_USER variable from ENV
server_1 | Using MYSQL_PASSWORD variable from ENV
server_1 | Using MYSQL_ROOT_PASSWORD variable from ENV
server_1 | ********************
server_1 | * DB_SERVER_HOST: here-is-my-db-host.mdb.yandexcloud.net
server_1 | * DB_SERVER_PORT: 3306
server_1 | * DB_SERVER_DBNAME: zabbix
server_1 | ********************
server_1 | **** MySQL server is not available. Waiting 5 seconds...
server_1 | **** MySQL server is not available. Waiting 5 seconds...
但是 MySQL 服务器已经准备好了。我想这是因为 mysql ssl сertificate 文件。我们正在使用yandex cloud db,它需要一个。在 python 中,我们有这种格式的连接字符串:
mysql+pymysql://user:password@here-is-my-db-host.mdb.yandexcloud.net/db_name?ssl_ca=/path/to/ssl_cert.crt
我认为对于 docker,我应该以类似的方式指定 ssl_ca,但我不知道如何。
这是我的zabbix_server服务配置:
server:
container_name: zabbix_server
image: zabbix/zabbix-server-mysql:alpine-5.0-latest
external_links:
- "zabbix_gateway:zabbix-java-gateway"
volumes:
- "./.conf:/etc/zabbix/"
ports:
- "10051:10051"
environment:
MYSQL_SERVER_HOST: "here-is-my-db-host.mdb.yandexcloud.net"
MYSQL_USER: "api"
MYSQL_PASSWORD: "password"
MYSQL_ROOT_PASSWORD: "password"
MYSQL_DATABASE: "zabbix"
MYSQL_SSL_CA: "/etc/zabbix/root.crt"
ZBX_JAVAGATEWAY: "zabbix_gateway"
restart: always
正如你在上面看到的,我设置了MYSQL_SSL_CA 变量,试图让 zabbix 应用证书。除此之外,我还尝试了这些变量:
MYSQL_SSL_CERT
MYSQL_SSL_KEY
DB_SSL_CERT_PATH
MYSQL_SSL_CERT_PATH
ZBX_DBTLSCAFILE
还有其他一些(现在我只是不记得是哪些)。还是一样的结果。
我应该怎么做才能让zabbix容器读取这个证书(或者只是连接数据库)?
【问题讨论】:
标签: mysql docker docker-compose zabbix