我正在尝试为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с证书文件。我们使用的是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容器读取这个证书(或者简单地连接数据库)?
发布于 2020-07-28 22:35:10
Zabbix docker镜像中没有MYSQL_SSL_CA变量,但目前没有文档记录(至少对于README.md):
configuration | variable
---------------------------------------
DBTLSConnect ZBX_DBTLSCONNECT
DBTLSCAFile ZBX_DBTLSCAFILE
DBTLSCertFile ZBX_DBTLSCERTFILE
DBTLSKeyFile ZBX_DBTLSKEYFILE
DBTLSCipher ZBX_DBTLSCIPHER
DBTLSCipher13 ZBX_DBTLSCIPHER13https://stackoverflow.com/questions/63116783
复制相似问题