Практикум: Развертывание Zabbix Server

Мониторинг Enterprise-уровня на Ubuntu с PostgreSQL и Nginx.

⚠️ Платформа

Все команды выполняются на чистой установке **Ubuntu Server LTS** с правами root или через sudo. Используем последнюю стабильную версию Zabbix (например, 6.4 или 7.0).

1. Подготовка Системы и Репозиторий

Сначала обновим систему и установим официальный репозиторий Zabbix, который содержит все необходимые пакеты.

  • Обновите локальные пакеты:

    sudo apt update && sudo apt upgrade -y
  • Загрузите и установите пакет репозитория 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. Настройка PostgreSQL (База данных)

PostgreSQL считается более производительной и надежной базой для Zabbix, чем MySQL/MariaDB.

  • Установите PostgreSQL:

    sudo apt install postgresql
  • Создайте базу данных и пользователя Zabbix. Это критически важный шаг для безопасности:

    sudo -u postgres createuser --pwprompt zabbix
    # Введите надежный пароль (например, ZabbixPass2025!)
    
    sudo -u postgres createdb -O zabbix zabbix

    Обязательно запомните пароль!

3. Установка Zabbix Server и Загрузка Схемы

Устанавливаем серверный пакет Zabbix с поддержкой PostgreSQL и импортируем начальную схему базы данных.

  • Установите Zabbix Server и PostgreSQL Connector:

    sudo apt install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql
  • Импортируйте начальную схему и данные в базу Zabbix. **Введите пароль, созданный на Шаге 2**:

    zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
  • Отредактируйте конфигурационный файл Zabbix Server для подключения к БД:

    sudo nano /etc/zabbix/zabbix_server.conf

    Найдите и раскомментируйте/измените следующие строки, используя ваш пароль:

    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=ZabbixPass2025!
  • Запустите сервер Zabbix и добавьте его в автозагрузку:

    sudo systemctl restart zabbix-server
    sudo systemctl enable zabbix-server

4. Установка Веб-Интерфейса (Frontend)

Фронтенд Zabbix написан на PHP и требует установки соответствующих пакетов и настройки.

  • Установите дополнительные пакеты PHP для Nginx и Zabbix Frontend:

    sudo apt install php-fpm nginx
  • Убедитесь, что временная зона правильно настроена в файле конфигурации PHP для Zabbix:

    sudo nano /etc/zabbix/nginx.conf

    Измените строку `php_value date.timezone` на вашу зону (например, `Asia/Bishkek` или `Europe/Moscow`):

    listen 80;
    server_name example.com; # Можно заменить на IP или домен
    ...
        # Установите вашу временную зону
        php_value date.timezone Asia/Bishkek
  • Создайте символическую ссылку на файл конфигурации Nginx Zabbix (для Ubuntu 22.04/20.04):

    sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/sites-enabled/zabbix.conf
  • Удалите стандартный конфигурационный файл Nginx, чтобы избежать конфликтов:

    sudo rm /etc/nginx/sites-enabled/default

5. Финальная Конфигурация Nginx и Запуск

Проверяем синтаксис Nginx и перезапускаем службы. Ваш Zabbix-сервер почти готов!

  • Проверьте конфигурацию Nginx на ошибки:

    sudo nginx -t

    Должно вывести `syntax is ok` и `test is successful`.

  • Перезапустите службы Nginx и PHP-FPM:

    sudo systemctl restart nginx php8.1-fpm
    sudo systemctl enable nginx php8.1-fpm
  • **Доступ к интерфейсу:** Откройте браузер и перейдите по IP-адресу или доменному имени вашего сервера (например, `http://192.168.1.100`). Вы увидите приветственный экран Zabbix.

  • Пройдите веб-установщик:

    • Проверьте, что все зависимости `OK`.
    • На шаге **Configure DB connection** введите данные: `Database type: PostgreSQL`, `User: zabbix`, `Password: ZabbixPass2025!`.
    • Финальный шаг — войдите в систему с логином: Admin и паролем: zabbix.

6. Установка Zabbix Agent (Мониторинг самого сервера)

Чтобы Zabbix мог мониторить себя, нужно установить и настроить локальный агент.

  • Установите пакет Zabbix Agent:

    sudo apt install zabbix-agent
  • Отредактируйте конфигурационный файл агента:

    sudo nano /etc/zabbix/zabbix_agentd.conf

    Измените следующие строки, указав IP вашего Zabbix Server (в данном случае — `localhost` или его IP, если агент стоит на другом хосте):

    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=ZabbixServerHost
  • Перезапустите агент:

    sudo systemctl restart zabbix-agent
    sudo systemctl enable zabbix-agent
  • **Финальный шаг в интерфейсе:** В веб-интерфейсе Zabbix добавьте новый Хост (`Configuration -> Hosts`), указав `Hostname` (`ZabbixServerHost`) и IP `127.0.0.1`. Примените шаблон **Linux by Zabbix Agent**. Через минуту вы увидите зеленую иконку доступности. 🚀

⚠️ Важные замечания по безопасности

После успешной установки немедленно **смените стандартный пароль** (`Admin`/`zabbix`) и настройте **брандмауэр** (`ufw`), разрешив только порты 80/443 (Nginx), 10051 (Zabbix Server) и 10050 (Zabbix Agent).

sudo ufw allow 80/tcp
sudo ufw allow 10051/tcp
sudo ufw enable