Перейти к содержанию

Обзор развертывания 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

Процесс установки приложения

Приложение устанавливается с помощью следующих шагов:

  1. Настройка репозитория: Пакет репозитория Zabbix 7.0 (zabbix-release) скачивается и устанавливается с https://repo.zabbix.com.

  2. Установка пакетов: Через менеджер пакетов apt устанавливаются следующие пакеты:

    • zabbix-server-mysql

    • zabbix-frontend-php

    • zabbix-apache-conf

    • zabbix-sql-scripts

    • zabbix-agent

    • mariadb-server

    • python3-mysqldb

    • locales

  3. Настройка локалей: Генерируется и активируется локаль en_US.UTF-8.

  4. Инициализация базы данных:

    • Сервер MariaDB запускается и добавляется в автозагрузку.

    • Удалены анонимные пользователи и тестовая база данных.

    • Создана база данных с именем zabbix с набором символов utf8mb4.

    • Создан пользователь базы данных zabbix с полными привилегиями на базу zabbix.

    • Начальная схема импортирована из /usr/share/zabbix-sql-scripts/mysql/server.sql.gz.

  5. Обновление конфигурации:

    • Конфигурация сервера Zabbix обновлена паролем базы данных.

    • Порт прослушивания Apache изменен с 80 на 8080.

  6. Активация служб: Службы 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:

# Перезапуск Zabbix Agent
systemctl restart zabbix-agent

Веб-сервер Apache:

# Перезапуск Apache
systemctl restart apache2

Службы прокси 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)
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×