Zabbix server config в Docker
Есть забикс сервер, приложения развёрнуты в докере. Здача внести изменения конфиг(zabbix_server.conf). Копирую этот файл на хостовую машину, вношу изменения, копирую файл назад. Перезапускаю контейнер, но конфиг остаётся старый. Подскажите, что я делаю не так?
Ответы (2 шт):
Вы вносите изменения в conf файл слепка контейнера. У себя нашел как минимум 4 файла zabbix_server.conf. Поэтому изменения не применяются. введите сюда код
Требуется найти файл docker-config.uml (в моей сборке на Centos 9 - /opt/zabbix/)
Читайте официальную документацию! Там есть все ответы!
Если кратко, то у вас есть 2 варианта изменить конфигурацию:
Установить их, используя переменные окружения
1.1 Если запускаете через командную строку, типа
docker run ...., то передавать переменные окружения нужно, с использованием ключа -e. Например, чтобы передать заббиксу настройки подключения к MySQL, параметры передаются следующим образом:docker run --name zabbix-server-mysql -t \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --network=zabbix-net \ -p 10051:10051 \ --restart unless-stopped \ -d zabbix/zabbix-server-mysql1.2 Если запускаете сервер, с использованием
docker compose, то в конфигурационном файлdocker-compose.ymlможно передать переменные среды в блокеenvironment:services: ... zabbix-server-mysql: image: zabbix/zabbix-server-mysql environment: DB_SERVER_HOST: "mysql-server" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix_pwd" MYSQL_ROOT_PASSWORD: "root_pwd" networks: - zabbix-net ports: - "10051:10051" restart: unless-stopped ...или указать путь к
.envфайлу и определить все параметры в нёмservices: ... zabbix-server-mysql: image: zabbix/zabbix-server-mysql env_file: .env networks: - zabbix-net ports: - "10051:10051" restart: unless-stopped ...Пример .env файла:
DB_SERVER_HOST="mysql-server" MYSQL_DATABASE="zabbix" MYSQL_USER="zabbix" MYSQL_PASSWORD="zabbix_pwd" MYSQL_ROOT_PASSWORD="root_pwd"Примонтировать
zabbix_server.confк контейнеру. Для этого создайте файл конфигурации, например, в/opt/zabbix/zabbix_server.conf, опишите там ВСЕ настройки сервера и примонтируйте его к контейнеру2.1 при запуске из консоли
docker run --name zabbix-server-mysql -t \ --volume=/opt/zabbix/zabbix_server.conf:/etc/zabbix/zabbix_server.conf --network=zabbix-net \ -p 10051:10051 \ --restart unless-stopped \ -d zabbix/zabbix-server-mysql2.2 в
docker-compose.ymlservices: ... zabbix-server-mysql: image: zabbix/zabbix-server-mysql volumes: - /opt/zabbix/zabbix_server.conf:/etc/zabbix/zabbix_server.conf networks: - zabbix-net ports: - "10051:10051" restart: unless-stopped ...