Установка Zabbix Docker на Synology

Цель моей работы - предложение широкого ассортимента IT услуг на постоянно высоком качестве. Для этого я постоянно прохожу дополнительное обучение и совершенствую свои навыки на практике.
5 Марта 2019

Docker на Synology

Уже так много написано на тему насколько хороши контейнеры, что повторять написанное уже не имеет смысла. И вот хороший пример. У меня трудиться уже довольно старая модель NAS сервера Synology DS713+ . В своё время я ему сменил планку оперативной памяти на 4 Гб. И вот этот сервер уже столько лет тихо трудится, особо не напрягаясь. И возвращаясь к контейнерам можно сказать, что с Docker у меня появилась возможность поставить на свой NAS сервер практически любое ПО. Но что ещё больше радует, что при всём при этом я не загрязняю свою систему. Всё ПО изолированно в своём контейнере, прям как в виртуальной машине. При этом ресурсов процессора и оперативной памяти потребляется столько, сколько надо именно ПО. В общем нештяков море, но слова словами, а когда видишь это всё в реальности, оргазм обеспечен.

Итак, что нам потребуется что бы установить Zabbix в Docker на Synology? Если обратиться к официальной документации Zabbix ( https://www.zabbix.com/documentation/3.2/ru/manual/installation/containers ), которая кстати на русском языке, можно увидеть, что глобально Zabbix состоит из трёх больших частей:

База данных
Тут будут храниться часть настроек, все собранные данные, в общем практически всё.
Сам сервер Zabbix
Собственно это и есть сам Zabbix.
Web интерфейс для сервера Zabbix
Так сказать Web морда, в которой рисуются красивые графики, выводятся всякие предупреждения и можно производить настройки.

Конечно существуют ещё модули, но они именно для тех, кому нужен конкретный, уникальный функционал. И что самое приятное выбор есть. Я же буду разворачивать базовый продукт Zabbix, с базой данных MySQL и web сервером Nginx. Итак, первым делом заходит в DSM – Docker – Реестр и качаем оттуда три образа, БД MySQL, сервер Zabbix (zabbix/zabbix-server-mysql) и Web морду с Nginx (zabbix/zabbix-web-nginx-mysql). Однако с образом MySQL не всё так просто. С последней стабильной версией (latest) MySQL Zabbix не заработал. А вот с версией MySQL 5.7 заработал без проблем. Вы можете сами выбрать версию MySQL, я же остался на версии 5.7. Остальные образы можно смело качать последней стабильной версии.

Добавление образов в Docker сервера Synology

Обратите внимание на размер образов, просто копейки по сравнению с размерами образов виртуальных машин. Здорово, не правда ли? Теперь на основе этих образов можно создать рабочие контейнеры. И снова обращаюсь к официальной документации Zabbix и начинаем с контейнера, в котором будет работать сервер MySQL.

Развёртывание контейнера сервера MySQL

Выбираем образ mysql и жмём кнопку Запустить. Появиться окно настроек. В окне имя контейнера придумываем какое ни будь имя для себя, чтобы потом самому себе было понятно, в каком контейнере что работает. Я написал просто, Server-MySQL. Далее жмём кнопку Дополнительные настройки. В этом месте производятся основные настройки по запуску контейнера. Переходим в раздел Том. Здесь мы укажем какую папку в контейнере надо сохранять нам на физический диск. Дело в том, что все изменения в контейнере не сохраняются после остановки. Как оперативная память. А нам надо что бы база данных не обнулялась каждый раз, при запуске – остановке контейнера. Поэтому папку с базой данных я буду хранить именно на физическом диске. При установке Docker Synology создаёт папку docker. Логично в этой папке хранить данные и настройки контейнеров. Итак создаём папку /docker/Zabbix/DB-MySQL и в разделе Том указываем, что папку в контейнере /var/lib/mysql мы будем хранить на физическом диске /docker/Zabbix/DB-MySQL.

Подключение тома для контейнера сервера MySQL

Переходим в раздел Защита окружающей среды и добавляем следующие параметры:

  • MYSQL_DATABASE = zabbix – имя базы данных Забикса
  • MYSQL_USER = zabbix – пользователь для БД Забикса
  • MYSQL_PASSWORD = пароль БД – пароль для БД Забикса
  • MYSQL_ROOT_PASSWORD = root пароль – а это главный root пароль MySQL
Добавление параметров контейнеру в среде DSM Synology

Запускаем контейнер. Если всё правильно сделали, то контейнер должен запуститься, а в папке /docker/Zabbix/DB-MySQL должны появиться файлы

Файлы на физическом диске БД MySQL проброшенные из контейнера.

Развёртывание контейнера сервера Zabbix

Здесь также как и при создании контейнера БД, сначала задаём имя контейнера, к примеру Server-Zabbix, переходим в дополнительные настройки – ссылки. Тут надо указать, что наш контейнер Server-Zabbix должен взаимодействовать с контейнером Server-MySQL. Поэтому жмём на плюсик и выбираем контейнер Server-MySQL и придумываем псевдоним, к примеру mysql.

Ссылка на связанный контейнер с которым требуется взаимодействие.

В разделе защиты окружающей среды добавляем

  • DB_SERVER_HOST = Server-MySQL
  • MYSQL_DATABASE = zabbix – имя базы данных Забикса
  • MYSQL_USER = zabbix – пользователь для БД Забикса
  • MYSQL_PASSWORD = пароль БД – пароль для БД Забикса
  • MYSQL_ROOT_PASSWORD = root пароль – а это главный root пароль MySQL

Запускаем контейнер и переходим к созданию последнего контейнера, web интерфейса.

Развёртывание контейнера web интерфейса

Как и два предыдущих контейнера начинаем создание с имени, к примеру Server-web-Zabbix, в настройках ссылки указываем уже два сервера, Server-MySQL и Server-Zabbix, так как контейнеру с Nginx надо взаимодействовать со всеми этими контейнерами.

Ссылки на связанные контейнеры с которым требуется взаимодействие.

Переходим в окружающею среду и заполняем уже знакомые поля

  • DB_SERVER_HOST = Server-MySQL
  • MYSQL_DATABASE = zabbix – имя базы данных Забикса
  • MYSQL_USER = zabbix – пользователь для БД Забикса
  • MYSQL_PASSWORD = пароль БД – пароль для БД Забикса
  • MYSQL_ROOT_PASSWORD = root пароль – а это главный root пароль MySQL
  • PHP_TZ = Europe/Volgograd – вы укажите свой часовой пояс

Теперь переходим в раздел Настройки портов и указываем на каких портах будет работать Web интерфейс Забикса. Выбирайте любые порты, которые у вас не заняты. Я выбрал порты 5080 и 5443.

Указание по каким портам можно взаимодействовать с контейнером.

Ну вот и всё, с контейнерами разобрались. Теперь если у вас включен FireWall надо разрешить порты 5080, 5443 для web интерфейса. Открываем браузер, вводим ip адрес NAS сервера с выбранным нами портом и получаем Zabbix.

Web интерфейс Zabbix-а

А вот потребление ресурсов всеми контейнерами

Потребление ресурсов контейнеров Zabbix-а в Docker Synology.

Вот вам и контейнеры. Виртуальная машина в которой развернут Zabbix будет гораздо больше ресурсов потреблять и для простенького NAS сервера это будет значительная нагрузка. А вот контейнеры для простеньких компьютеров просто находка!

Товары

Корпоративные сети и ПО
1600р
Вернуться к списку