Установка zabbix с помощью docker-compose
Всем привет!
В этой статье я расскажу как можно быстро развернуть Zabbix Server из Docker контейнеров с помощью docker-compose.
Ребята из zabbix создали целый репозиторий, который содержит Dockerfile’ы всевозможных способов установки/запуска zabbix сервер. С помощью них мы и будем «устанавливать» zabbix. Вся прелесть заключается еще в том, что при необходимости вы можете легко переключиться на другую версию, выбрав другую ветку git.
Перед тем, как начать, убедитесь, что у вас установлен docker и docker-compose. Как это сделать я описывал тут и тут. И не забудьте поставить git.
Теперь приступим.
Установка
Склонируйте репозиторий github.com/zabbix/zabbix-docker в директорию opt:
cd /opt/
git clone https://github.com/zabbix/zabbix-docker
Далее выберите подходящий вам docker-файл (я выбрал docker-compose_v3_alpine_mysql_latest) и запустите его; при желании можно сделать его копию, указав другое имя, чтобы не путаться среди такого большого количества docker-файлов, а так же указать пути до разделов (по умолчанию данные zabbix будут хорониться в директории ./zbx_env/*)
docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
Далее выждав какое-то время вы можете войти в web-интерфейс и приступить к настройке zabbix server.
Настройка systemd сервиса
Казалось бы все, но в случае перезапуска сервера контейнеры не будут запускаться автоматически. Обойти это можно создав systemd — unit который будет запускать docker-compose файл при загрузке системы.
Создаем файл /etc/systemd/system/zabbix-compose.service
и вставляем в него следующее содержимое:
[Unit]
Description=Zabbix services with docker-compose
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/opt/zabbix-docker/
User=root
Group=docker
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down -v
# Compose up
ExecStart=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
# Compose down, remove containers
ExecStop=/usr/local/bin/docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml down
[Install]
WantedBy=multi-user.target
Теперь выполним следующие команды:
systemctl enable zabbix-compose.service
systemctl daemon-reload
systemctl start zabbix-compose.service
Как редактировать параметры zabbix?
Если вам необходимо установить какие-то нестандартные значения параметров, то сделать это можно в env файлах, которые находятся в директории ./env_vars/
. К примеру, если мне надо увеличить CacheSize
то сделать я это могу в файле env_vars/.env_srv
отредактировав значение переменной ZBX_CACHESIZE
.
Все. Теперь можно приступить к настройке сервера.
Источники:
- https://github.com/zabbix/zabbix-docker
- https://techoverflow.net/2020/10/24/create-a-systemd-service-for-your-docker-compose-project-in-10-seconds/
- https://github.com/docker/compose/issues/4266
- https://www.youtube.com/watch?v=ScKlF0ICVYA