1. Что такое Zabbix и из чего состоит система?
Zabbix — это универсальная система мониторинга enterprise-уровня с открытым исходным кодом. Она позволяет в реальном времени отслеживать состояние серверов, виртуальных машин, сетевого оборудования, приложений и баз данных, а также своевременно оповещать администраторов об инцидентах.
Архитектура Zabbix состоит из трех ключевых компонентов:
- Zabbix Server: Ядро системы, выполняющее сбор метрик (по SNMP, агентам, ICMP, HTTP), обработку правил обнаружения проблем, калькуляцию триггеров и отправку оповещений.
- База данных (PostgreSQL / MySQL): Хранилище исторической информации (метрики, события, алерты), а также всей конфигурации узлов сети и пользователей.
- Веб-интерфейс (Zabbix Frontend): Панель управления на PHP/Nginx для визуализации графиков, настройки узлов, просмотра текущих триггеров и распределения прав доступа.
- Нативная установка (Bare-metal / Native): Службы запускаются прямо в ОС из системных репозиториев (`apt`). Обеспечивает максимальную производительность, прямой доступ к системным ресурсам и простоту администрирования на отдельном сервере.
- Контейнеризация (Docker Compose): Компоненты упакованы в изолированные контейнеры. Упрощает миграцию между серверами, обновление версий и изоляцию окружений.
• Официальный мастер установки и репозитории Zabbix
• Официальное руководство по установке Zabbix в Docker
2. Способ 1: Нативная установка Zabbix 6.4 в Ubuntu/Debian
Рассмотрим пошаговый процесс установки Zabbix Server с СУБД PostgreSQL и веб-сервером Nginx напрямую в операционную систему.
Шаг 2.1. Подключение официального репозитория Zabbix
# Скачиваем и устанавливаем deb-пакет репозитория Zabbix 6.4
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update
Шаг 2.2. Установка серверов, веб-интерфейса и PostgreSQL
sudo apt install -y zabbix-server-pgsql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts postgresql
Шаг 2.3. Создание базы данных и импорт схемы
Выполните настройки базы данных PostgreSQL:
# Входим в консоль PostgreSQL и создаем пользователя/БД
sudo -u postgres psql -c "CREATE USER zabbix WITH PASSWORD 'DB_SECURE_PASSWORD';"
sudo -u postgres psql -c "CREATE DATABASE zabbix OWNER zabbix;"
# Импортируем начальную схему и данные Zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Шаг 2.4. Конфигурация и запуск служб
Укажите пароль от БД в файле /etc/zabbix/zabbix_server.conf:
DBPassword=DB_SECURE_PASSWORD
Запустите и добавьте службы в автозагрузку:
sudo systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
3. Способ 2: Развертывание Zabbix 6.4 в Docker Compose
Альтернативный метод — запуск всех компонентов системы в контейнерах Docker.
Шаг 3.1. Создание каталога и файла .env
mkdir -p /opt/zabbix && cd /opt/zabbix
cat << 'EOF' > .env
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=DB_SECURE_PASSWORD
POSTGRES_DB=zabbix
ZBX_SERVER_HOST=zabbix-server
PHP_TZ=Europe/Kyiv
EOF
Шаг 3.2. Файл конфигурации docker-compose.yml
version: '3.8'
services:
zabbix-db:
image: postgres:15-alpine
container_name: zabbix-db
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- zabbix_db_data:/var/lib/postgresql/data
networks:
- zabbix-net
zabbix-server:
image: zabbix/zabbix-server-pgsql:ubuntu-6.4-latest
container_name: zabbix-server
restart: always
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: zabbix-db
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
depends_on:
- zabbix-db
networks:
- zabbix-net
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:ubuntu-6.4-latest
container_name: zabbix-web
restart: always
ports:
- "8080:8080"
environment:
DB_SERVER_HOST: zabbix-db
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: ${PHP_TZ}
depends_on:
- zabbix-db
- zabbix-server
networks:
- zabbix-net
volumes:
zabbix_db_data:
networks:
zabbix-net:
driver: bridge
Запустите контейнеры командой:
docker compose up -d
4. Авторизация и первичная настройка безопасности
• URL веб-интерфейса:
http://<IP_СЕРВЕРА>/ (при нативной установке) или http://<IP_СЕРВЕРА>:8080 (при запускe в Docker)• Логин:
Admin• Пароль:
zabbix
Admin в разделе меню User settings → Profile → Change password.