НАЗНАЧЕНИЕ
Необходимо развернуть систему мониторинга Zabbix через docker.
ПРИМЕНЕНИЕ
Для мониторинга клиентских ПК, других серверов и роутеров с помощью Zabbix-agent.
УСЛОВИЕ
-
Debian-based дистрибутивы Linux в качестве хоста (можно и другие);
-
Доступность портов 10051 и 8080 (или другого, если планируется сменить порт).
ШАГИ
- Провести первичные действия (за «#» будет комментарий к каждому действию):
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin nginx #установить docker, связанные с ним утилиты и веб-сервер nginx
sudo usermod -aG docker $USER && newgrp docker #дать самому себе права к docker
mkdir ~/zabbix && cd ~/nextcloud #создать папку zabbix и переходим на нее сразу
nano docker-compose.yml #создать конфигурацию docker для Zabbix и открываем
- Составить конфигурацию в docker-compose.yml:
services:
mysql:
container_name: zabbix-mysql
image: mysql:8.0
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix_srv
MYSQL_PASSWORD: PASSWORD
MYSQL_ROOT_PASSWORD: RootPASSWORD
volumes:
- ./mysql-data:/var/lib/mysql
restart: unless-stopped
zabbix-server:
container_name: zabbix-server
image: zabbix/zabbix-server-mysql:7.4-alpine-latest
environment:
DB_SERVER_HOST: mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix_srv
MYSQL_PASSWORD: PASSWORD
MYSQL_ROOT_PASSWORD: RootPASSWORD
ports:
- 10051:10051
depends_on:
- mysql
restart: unless-stopped
zabbix-web:
container_name: zabbix-web
image: zabbix/zabbix-web-nginx-mysql:7.4-alpine-latest
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix_srv
MYSQL_PASSWORD: PASSWORD
MYSQL_ROOT_PASSWORD: RootPASSWORD
PHP_TZ: Europe/Moscow
ports:
- 8080:8080
depends_on:
- zabbix-server
- mysql
restart: unless-stopped
zabbix-agent:
container_name: zabbix-agent
image: zabbix/zabbix-agent2:7.4-alpine-latest
environment:
ZBX_HOSTNAME: Services VM
ZBX_SERVER_HOST: zabbix-server
ZBX_ACTIVE_ALLOW: 'true'
ZBX_SERVER_PORT: '10051'
volumes:
- /:/rootfs:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
privileged: true
depends_on:
- zabbix-server
restart: unless-stopped
После сохранить и выйти;
Порядок действий таков:
- Запустить docker:
docker compose up -d
Для выключения docker, если нужно править конфиги, ввести следующее:
docker compose down
РЕЗУЛЬТАТ
Все, сервер Zabbix развернут, остается лишь начать производить первоначальные настройки в веб-конфигураторе.
ТИПОВЫЕ ОШИБКИ
❌ Проблема: не установился docker, выдалась ошибка.
✅ Решение: проверить конфиг docker-compose.yml на наличие опечаток.
❌ Проблема: не дает отредактировать файл docker-compose.yml или запустить docker.
✅ Решение: нет прав — либо выполнять через sudo, либо от root.
❌ Проблема: не заходит на веб-конфигуратор — ничего не грузится.
✅ Решение: проверить состояние docker и его конфигурацию — возможно, что порт не тот или достаточно перезапустить контейнер.



