Thank you for reading this post, don't forget to subscribe!
Выполним предварительные действия. Предполагается, что мы будем хранить наш файл docker-compose в каталоге /opt/zabbix.
Создаем каталог:
mkdir /opt/zabbix
Перейдем в него:
cd /opt/zabbix
Создаем файл docker-compose.yml:
vi docker-compose.yml
Мы готовы к написанию сценария.
Docker-compose
Пример нашего файла compose:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
version: "3.9" services: zabbix-mariadb: image: mariadb container_name: zabbix-mariadb hostname: zabbix-mariadb restart: unless-stopped environment: TZ: "Europe/Moscow" MYSQL_ROOT_USER: root MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass networks: - default volumes: - /opt/zabbix/mariadb/data:/var/lib/mysql zabbix-server: image: zabbix/zabbix-server-mysql container_name: zabbix-server hostname: zabbix-server restart: unless-stopped environment: TZ: "Europe/Moscow" DB_SERVER_HOST: zabbix-mariadb MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass networks: default: ipv4_address: 172.28.0.254 depends_on: - zabbix-mariadb zabbix-web: image: zabbix/zabbix-web-nginx-mysql container_name: zabbix-web hostname: zabbix-web restart: unless-stopped environment: TZ: "Europe/Moscow" DB_SERVER_HOST: zabbix-mariadb MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass ZBX_SERVER_HOST: zabbix-server PHP_TZ: "Europe/Moscow" ports: - 8080:8080 - 8443:8443 networks: - default depends_on: - zabbix-mariadb - zabbix-server networks: default: ipam: driver: default config: - subnet: 172.28.0.0/16 |
Описание сценария
Кратко опишем, что выполнит наш сценарий
1 | Версия docker-compose файла. От нее зависит то, какие директивы мы можем использовать. Лучше прописывать более актуальную версию, но некоторые опции могут быть недоступны и их нужно будет заменить. Однако, с версии docker-compose 1.27.0 является опциональной. |
5 - 20 | Поднимаем сервер баз данных из образа mariadb. |
14 - 16 | Создаем базу данных, а также логин и пароль для подключения к ней. |
19 - 20 | Храним данные СУБД на хостовой машине в каталоге /opt/zabbix/mariadb/data. |
22 - 36 | Запускаем сервер zabbix. |
29 - 31 | Прописываем данные для подключения к базе mariadb. |
34 | Для сервера укажем статический IP-адрес. |
38 - 57 | Веб-интерфейс для управления мониторингом zabbix (Zabbix Frontend). |
45 - 47 | Прописываем данные для подключения к СУБД. |
48 | Указываем адрес сервера Zabbix. В нашем случае имя сервиса с контейнером zabbix-server. |
59 - 64 | Описываем сеть. В нашем примере это нужно для использования подсети 172.28.0.0/16. Подсеть может быть любой. |
Запуск
Находясь в каталоге с файлом docker-compose, выполним команду:
docker-compose up -d
При первом запуске система загрузит необходимые образы и запустит контейнеры.
Посмотреть состояние контейнеров можно командой:
docker ps
В нашем примере веб-интерфейс будет доступен по порту 8080. Для проверки можно ввести команду:
curl http://localhost:8080
Также мы можем открыть браузер на любом компьютере в сети и перейти по адресу http://<IP-адрес хоста docker>:8080. Мы должны увидеть окно запроса логина и пароля. Для входа используем стандартные данные — логин: Admin (с большой буквы) и пароль: zabbix.