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

Обзор развертывания Zabbix на сервере

Предварительные требования

Для корректной работы системы должны быть соблюдены следующие условия:

  • Операционная система: Ubuntu (версия определяется автоматически в процессе установки).

  • Доступ к репозиториям пакетов через интернет.

  • Наличие установленного Docker и Docker Compose.

  • Открытые порты: 8080 (внутренний для веб-интерфейса) и 443 (внешний HTTPS).

FQDN итоговой панели на домене hostkey.in

Параметр Значение
Префикс
Домен hostkey.in
Полный шаблон {{ prefix }}{Server_ID_from_Invapi}.hostkey.in/zabbix

Структура файлов и каталогов

Основные компоненты системы расположены по следующим путям:

  • /etc/zabbix/ — конфигурационные файлы сервера Zabbix.

  • /etc/apache2/ — конфигурации веб-сервера Apache.

  • /root/nginx/ — рабочая директория для контейнера Nginx с поддержкой SSL.

  • /data/nginx/user_conf.d — пользовательские конфигурации Nginx.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для Certbot.

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

Установка выполняется в несколько этапов:

  1. Подготовка системы:

  2. Загрузка и установка официального репозитория Zabbix.

  3. Обновление кэша пакетов apt.

  4. Установка локалей (en_US.UTF-8).

  5. Установка компонентов:

  6. Установка основного программного обеспечения: zabbix-server-mysql, zabbix-frontend-php, zabbix-apache-conf, zabbix-sql-scripts, zabbix-agent и python3-mysqldb.

  7. Установка серверной части базы данных MariaDB.

  8. Настройка базы данных:

  9. Создание базы данных zabbix с кодировкой utf8mb4.

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

  11. Импорт начальной схемы данных из файла /usr/share/zabbix-sql-scripts/mysql/server.sql.gz.

  12. Конфигурация веб-сервера и сервисов:

  13. Настройка Apache для прослушивания порта 8080.

  14. Редактирование конфигурации Zabbix Server для установки пароля к базе данных.

  15. Развертывание SSL-прокси:

  16. Создание директории /root/nginx и развертывание контейнера Nginx с Certbot через Docker Compose.

Права доступа и безопасность

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

  • Пользователь базы данных zabbix имеет доступ только к своей базе данных.

  • Сервисы работают под системными пользователями, установленными пакетами Zabbix.

  • Для работы SSL используется изолированный контейнер Nginx.

Базы данных

В качестве системы управления база данных используется MariaDB.

Параметр Значение
Имя базы данных zabbix
Пользователь zabbix
Кодировка utf8mb4
Хранение Локально на сервере

Контейнеры Docker и их запуск

Для обеспечения работы веб-интерфейса по защищенному протоколу HTTPS используется следующий контейнер:

Nginx Certbot

  • Образ: jonasal/nginx-certbot:latest

  • Порты: Использует сетевой режим host.

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt — для хранения SSL-сертификатов.

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d — пользовательские конфиги.

  • Переменные окружения:

  • CERTBOT_EMAIL=hkadm@hostkey.com

  • Политика перезапуска: unless-stopped.

Инструкция по обновлению приложения

Для обновления основного программного обеспечения Zabbix необходимо выполнить обновление системных пакетов:

apt update && apt upgrade zabbix-server-mysql* zabbix-agent*

Если используется контейнер Nginx, для его обновления выполните:

cd /root/nginx && docker compose pull && docker compose up -d

Расположение конфигурационных файлов и данных

Тип Путь
Конфигурация сервера Zabbix /etc/zabbix/zabbix_server.conf
Конфигурация Apache /etc/apache2/ports.conf
Данные базы данных MariaDB Стандартное расположение MariaDB (обычно /var/lib/mysql)

Доступные порты для подключения

  • 443 — внешний доступ к веб-интерфейсу через HTTPS.

  • 8080 — внутренний порт веб-сервера Apache.

Запуск, остановка приложения

Управление основными сервисами выполняется следующими командами:

Запуск всех компонентов:

systemctl start zabbix-server zabbix-agent apache2 mariadb

Остановка компонентов:

systemctl stop zabbix-server zabbix-agent apache2 mariadb

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×