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

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

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

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu 22.04. Требуется доступ к серверу с правами суперпользователя (root) или возможность выполнения команд через sudo.

Необходимо обеспечить доступность следующих портов: - Порт 8080 для веб-интерфейса Zabbix (Apache). - Порты 80 и 443 для работы прокси-сервера Nginx и получения SSL-сертификатов.

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

Конфигурационные файлы и данные приложения размещаются в следующих директориях:

  • Конфигурация прокси-сервера Nginx и переменные окружения: /root/nginx/.
  • Файл конфигурации Docker Compose: /root/nginx/compose.yml.
  • Конфигурация сервера Zabbix: /etc/zabbix/zabbix_server.conf.
  • Конфигурация веб-сервера Apache: /etc/apache2/ports.conf.
  • Данные и сертификаты Let's Encrypt: /data/nginx/ (включая поддиректорию user_conf.d).
  • Скрипты инициализации базы данных: /usr/share/zabbix-sql-scripts/mysql/.

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

Установка производится на операционной системе Ubuntu 22.04 с использованием пакетного менеджера apt и контейнеризации для прокси-сервера.

  1. Установка репозитория Zabbix версии 7.0:
  2. Скачивается пакет zabbix-release_latest+ubuntu22.04_all.deb в директорию /root.
  3. Пакет устанавливается командой apt.

  4. Установка необходимых компонентов:

  5. Устанавливаются пакеты: zabbix-server-mysql, zabbix-frontend-php, zabbix-apache-conf, zabbix-sql-scripts, zabbix-agent, python3-mysqldb.
  6. Устанавливается база данных mariadb-server.
  7. Устанавливается локаль en_US.UTF-8.

  8. Развертывание прокси-сервера Nginx с Certbot:

  9. Устанавливается Docker.
  10. Создается директория /root/nginx.
  11. Генерируется файл compose.yml в директории /root/nginx.
  12. Запускаются контейнеры через Docker Compose.

Базы данных

В качестве базы данных используется MariaDB. Процесс настройки включает следующие шаги:

  • Запуск и включение сервиса mariadb.
  • Удаление анонимных пользователей и тестовой базы данных test.
  • Установка пароля для пользователя root в MariaDB.
  • Создание базы данных zabbix с кодировкой utf8mb4.
  • Создание пользователя zabbix с правами доступа только к базе zabbix.
  • Импорт начальной схемы базы данных из файла /usr/share/zabbix-sql-scripts/mysql/server.sql.gz.
  • Настройка параметра log_bin_trust_function_creators в глобальной конфигурации MariaDB.
  • Установка пароля базы данных в конфигурационном файле /etc/zabbix/zabbix_server.conf в параметр DBPassword.

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

Для работы прокси-сервера используется Docker Compose. Конфигурация описана в файле /root/nginx/compose.yml.

Используемый образ контейнера: jonasal/nginx-certbot:latest.

Параметры запуска контейнера: - Режим сети: host. - Политика перезапуска: unless-stopped. - Переменная окружения CERTBOT_EMAIL установлена на hkadm@hostkey.com. - Файл переменных окружения: /data/nginx/nginx-certbot.env. - Монтирование тома nginx_secrets в /etc/letsencrypt. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d.

Запуск контейнеров выполняется командой:

docker compose up -d
в директории /root/nginx.

Прокси серверы

В качестве прокси-сервера используется Nginx в контейнере Docker с поддержкой автоматического получения SSL-сертификатов через Certbot.

  • Доменное имя настраивается через внешний механизм (роль invapi-pdns), добавляя A-запись.
  • Сертификаты хранятся в томе nginx_secrets, который монтируется в /etc/letsencrypt внутри контейнера.
  • Пользовательские конфигурации Nginx размещаются в директории /data/nginx/user_conf.d.

Настройки прав

Права доступа к файлам и директориям устанавливаются следующим образом:

  • Директория /root/nginx создается с правами 0644, владельцем root и группой root.
  • Файл /root/nginx/compose.yml создается с правами 0644, владельцем root и группой root.
  • Пакет репозитория Zabbix в /root имеет права 0644.

Запуск, остановка и обновление

Управление сервисами Zabbix и Apache осуществляется через systemd.

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

systemctl restart zabbix-server
systemctl enable zabbix-server
systemctl restart zabbix-agent
systemctl enable zabbix-agent
systemctl restart apache2
systemctl enable apache2

Веб-сервер Apache настроен на прослушивание порта 8080 вместо стандартного порта 80 через изменение файла /etc/apache2/ports.conf.

Для управления контейнерами прокси-сервера используются команды Docker Compose в директории /root/nginx:

docker compose up -d
docker compose down
docker compose restart

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