Обзор развертывания Zabbix server¶
Предварительные требования и основные условия¶
Перед развертыванием приложения должны быть соблюдены следующие требования:
-
Операционная система: Ubuntu 22.04 (выводится на основе названия пакета
zabbix-release_latest+ubuntu22.04_all.deb). -
Привилегии: Требуется доступ root для установки пакетов, конфигурации базы данных и управления службами.
-
Домен: Валидная запись домена в зоне
hostkey.in. -
Порты:
-
Внутренний порт приложения:
8080(Apache/HTTP). -
Порт внешнего доступа:
443(HTTPS через прокси Nginx).
Полное доменное имя (FQDN) итоговой консоли¶
Конечный URL для доступа к веб-интерфейсу Zabbix формируется согласно конфигурации хоста. На основе предоставленных переменных:
-
Доменная зона:
hostkey.in -
Формат URL:
<Server ID>.hostkey.in:443/zabbix -
Примечание: В конфигурации переменная
prefixпуста, поэтому структура URL зависит исключительно от ID сервера и домена.
Структура файлов и директорий¶
Развертывание размещает критические компоненты в следующих каталогах:
-
Системная конфигурация:
/etc/zabbix/ -
Основная конфигурация сервера:
/etc/zabbix/zabbix_server.conf -
Конфигурация Apache:
/etc/apache2/ -
Конфигурация портов:
/etc/apache2/ports.conf -
Конфигурация прокси Nginx:
/root/nginx/ -
Файл Docker Compose:
/root/nginx/compose.yml -
Тома Docker:
-
SSL-сертификаты:
/data/nginx/(управляется через томnginx_secrets) -
Конфигурация пользователя Nginx:
/data/nginx/user_conf.d
Процесс установки приложения¶
Приложение устанавливается с помощью следующих шагов:
-
Настройка репозитория: Пакет репозитория Zabbix 7.0 (
zabbix-release) скачивается и устанавливается сhttps://repo.zabbix.com. -
Установка пакетов: Через менеджер пакетов
aptустанавливаются следующие пакеты:-
zabbix-server-mysql -
zabbix-frontend-php -
zabbix-apache-conf -
zabbix-sql-scripts -
zabbix-agent -
mariadb-server -
python3-mysqldb -
locales
-
-
Настройка локалей: Генерируется и активируется локаль
en_US.UTF-8. -
Инициализация базы данных:
-
Сервер MariaDB запускается и добавляется в автозагрузку.
-
Удалены анонимные пользователи и тестовая база данных.
-
Создана база данных с именем
zabbixс набором символовutf8mb4. -
Создан пользователь базы данных
zabbixс полными привилегиями на базуzabbix. -
Начальная схема импортирована из
/usr/share/zabbix-sql-scripts/mysql/server.sql.gz.
-
-
Обновление конфигурации:
-
Конфигурация сервера Zabbix обновлена паролем базы данных.
-
Порт прослушивания Apache изменен с
80на8080.
-
-
Активация служб: Службы
zabbix-server,zabbix-agentиapache2запущены и добавлены в автозагрузку.
Контейнеры Docker и их развертывание¶
Обратный прокси и терминация SSL обрабатываются контейнерами Docker, использующими стек nginx-certbot.
-
Метод развертывания: Docker Compose.
-
Местоположение Compose:
/root/nginx/compose.yml -
Детали службы:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
CERTBOT_EMAIL:hkadm@hostkey.com
-
Тома:
-
nginx_secrets: Смонтирован в/etc/letsencryptвнутри контейнера (внешний том). -
/data/nginx/user_conf.d: Смонтирован в/etc/nginx/user_conf.dвнутри контейнера.
-
Прокси-серверы¶
Приложение доступно через контейнер Nginx, который обрабатывает терминацию SSL и маршрутизацию.
-
ПО прокси: Nginx (через контейнер
jonasal/nginx-certbot). -
Провайдер SSL: Let's Encrypt (Certbot).
-
Внутренний путь:
/zabbix -
Внешний путь:
/zabbix -
Конфигурация:
-
Прокси работает в режиме сети хоста (host) для маршрутизации трафика с порта
443на внутренний порт приложения8080. -
SSL-сертификаты хранятся во внешнем томе
nginx_secrets.
Базы данных¶
Для хранения данных приложение использует локальный экземпляр MariaDB.
-
Движок базы данных: MariaDB Server.
-
Имя базы данных:
zabbix -
Набор символов (Character Set):
utf8mb4 -
Сортировка (Collation):
utf8mb4_bin -
Пользователь базы данных:
zabbix -
Доступ к хосту:
localhost -
Место хранения: Управляется стандартными путями службы MariaDB на хосте.
-
Метод подключения: Локальное соединение через сокет от процесса сервера Zabbix.
-
Настройки безопасности:
-
Анонимные пользователи удалены.
-
База данных
testудалена. -
Настройка
log_bin_trust_function_creatorsвременно включена во время импорта схемы и отключена после этого.
Права доступа и безопасность¶
-
Межсетевой экран (Firewall)/Порты: Служба Apache настроена на прослушивание порта
8080вместо стандартного80для изоляции внутреннего доступа. Внешний трафик обрабатывается через Nginx на порту443. -
Безопасность базы данных: Доступ пользователя root ограничен хостами
127.0.0.1,::1иlocalhost. -
Учетные записи служб: Пользователь
zabbixимеет полные привилегии только для схемы базы данныхzabbix.
Запуск, остановка и обновление¶
Управление службами осуществляется с помощью командной утилиты systemd.
Службы Zabbix:
# Запуск Zabbix Server
systemctl start zabbix-server
# Остановка Zabbix Server
systemctl stop zabbix-server
# Перезапуск Zabbix Server
systemctl restart zabbix-server
# Включение Zabbix Server при загрузке
systemctl enable zabbix-server
Zabbix Agent:
Веб-сервер Apache:
Службы прокси Docker: Стек Nginx/Certbot управляется через Docker Compose в директории /root/nginx:
# Запуск стека прокси
cd /root/nginx && docker compose up -d
# Остановка стека прокси
cd /root/nginx && docker compose down
# Обновление стека прокси (получить последний образ и перезапустить)
cd /root/nginx && docker compose pull && docker compose up -d
Доступные порты для подключения¶
| Порт | Протокол | Назначение | Доступ |
|---|---|---|---|
| 8080 | TCP | Веб-интерфейс Zabbix (внутренний) | Только внутренний (Apache) |
| 443 | TCP | Безопасный веб-доступ (внешний) | Общий (Прокси Nginx) |