*Cube-Host– облачный хостинг!!

Установка и начальная настройка сервера мониторинга Zabbix на Ubuntu Server

Server monitoring and alerting concept

Подготовка Ubuntu к надежному мониторингу

Zabbix — это полнофункциональная платформа мониторинга, способная отслеживать серверы, сетевые устройства, приложения, журналы и бизнес-показатели, а затем оповещать вас о неполадках (до того, как их заметят пользователи). В этом руководстве вы развернёте готовый к производственному использованию стек Zabbix на Ubuntu Server с веб-интерфейсом базы данных, а затем выполните «первые 30 минут» укрепления безопасности и начальной настройки.

В этом руководстве рассматриваются следующие темы: установка последних пакетов Zabbix на Ubuntu Server (рекомендуется: Ubuntu 24.04 LTS), настройка MariaDB, настройка NGINX/PHP-FPM для интерфейса, запуск служб, открытие нужных портов и подключение первого хоста с шифрованным трафиком агента. Если вы развертываете систему на новом VPS под Linux, этот процесс пройдет особенно гладко, поскольку вы полностью контролируете брандмауэр, версию PHP и ресурсы сервера.

Перед началом: версии, размеры и краткий чек-лист

  • ОС: Ubuntu Server 24.04 LTS — наиболее удобная базовая платформа для текущих выпусков Zabbix.
  • Процессор/ОЗУ: для небольшой среды (до ~50 хостов) начните с 2 виртуальных ядер / 2–4 ГБ ОЗУ; увеличивайте ресурсы по мере добавления объектов, истории и панелей мониторинга.
  • Диск: настоятельно рекомендуется SSD. Базы данных мониторинга быстро растут; запланируйте минимум 20–50 ГБ и пересмотрите объем через неделю работы с реальными данными.
  • Сеть: стабильное подключение к мониторируемым хостам; решите, будут ли проверки пассивными (сервер → агент) или активными (агент → сервер).
  • Доступ: права sudo и (в идеале) DNS-имя типа monitor.your-domain.com для HTTPS позже.
ПортКто слушаетЗачем это нужноТипичное правило брандмауэра
80/tcpNGINXВеб-интерфейс (HTTP)Разрешить доступ с ваших IP-адресов (или всем, если публичный)
443/tcpNGINXВеб-интерфейс (HTTPS)Разрешить доступ с ваших IP-адресов (рекомендуется)
10051/tcpСервер ZabbixТрапперы, прокси, активные агентыРазрешить доступ с прокси-серверов/агентов, использующих активные проверки
10050/tcpАгент Zabbix (на отслеживаемых хостах)Пассивные проверки (сервер опрашивает агент)Разрешить на отслеживаемых хостах, не обязательно на сервере Zabbix

Шаг 1: подготовка базового сервера

Начните с обновлений, правильного времени и чистой базовой линии. Точное время имеет значение, поскольку Zabbix сопоставляет события, тренды и оповещения по временным меткам.

sudo apt update
sudo apt -y upgrade

# Set timezone (example: Europe/Berlin)
sudo timedatectl set-timezone Europe/Berlin

# Time sync (Chrony is a solid default on servers)
sudo apt -y install chrony
sudo systemctl enable --now chrony

# Optional but recommended: basic tools
sudo apt -y install curl wget gnupg lsb-release unzip

Совет для VPS: если вы запускаете Zabbix на VPS-хостинге, используйте также мониторинг со стороны провайдера (графики ЦП/ОЗУ/диска в панели управления). Это поможет вам понять, вызваны ли оповещения Zabbix самим хостом или приложением внутри VPS.

Шаг 2: установка и защита базы данных (MariaDB)

Zabbix хранит конфигурацию и метрики в базе данных. MariaDB — популярный выбор для стеков мониторинга Linux. Для небольших и средних установок она быстрая, предсказуемая и проста в обслуживании.

sudo apt -y install mariadb-server
sudo systemctl enable --now mariadb

# Basic hardening wizard (set root password, remove test DB, etc.)
sudo mysql_secure_installation

Создайте базу данных Zabbix и выделенного пользователя. Используйте надежный пароль (относитесь к нему как к производственному секрету).

sudo mysql -uroot -p

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'REPLACE_WITH_STRONG_PASSWORD';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Шаг 3: установите NGINX и PHP-FPM для веб-интерфейса

Фронтенд Zabbix — это приложение на PHP. Самый простой подход на Ubuntu — это NGINX и PHP-FPM. Позже мы также установим Certbot (опционально) для включения HTTPS.

sudo apt -y install nginx php-fpm
sudo systemctl enable --now nginx

Теперь настройте несколько параметров PHP, которые часто вызывают предупреждения «требования не выполнены» в установщике Zabbix (часовой пояс и ограничения ввода). Ваша версия PHP может отличаться (Ubuntu 24.04 обычно использует PHP 8.3).

# Find your installed PHP-FPM version directory
ls /etc/php/

# Example for PHP 8.3:
sudo nano /etc/php/8.3/fpm/php.ini

# Set/verify:
# date.timezone = Europe/Berlin
# max_execution_time = 300
# max_input_time = 300
# post_max_size = 16M
# max_input_vars = 10000

sudo systemctl restart php8.3-fpm

Шаг 4: установите последние пакеты сервера Zabbix

Zabbix предоставляет официальные репозитории для Ubuntu. Стандартный алгоритм: установите zabbix-release пакет, обновите APT, затем установите сервер, интерфейс, скрипты SQL и агент.

Примечание: если ваша компания предпочитает долгосрочную стабильность, выберите последнюю ветку LTS. Если вы предпочитаете новейшие функции и улучшения, выберите последнюю стабильную ветку. Порядок установки остается тем же — меняется ссылка на репозиторий.

# Example: Zabbix 7.4 repository for Ubuntu 24.04 (adjust version if needed)
cd /tmp
wget https://repo.zabbix.com/zabbix/7.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.4-1 ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.4-1 ubuntu24.04_all.deb

sudo apt update

# Install Zabbix server   frontend   NGINX config   SQL scripts   Agent 2
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Шаг 5: импорт начальной схемы в базу данных Zabbix

На этом шаге создаются таблицы и базовые данные, необходимые Zabbix. Это может занять несколько минут в зависимости от скорости диска.

# Import schema (recommended: use zcat to avoid manual unpacking)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

Если импорт завершился с ошибкой, проверьте сообщение об ошибке. Распространенные причины: неверный пароль, недостаточно места на диске или слишком строгие настройки MySQL/MariaDB для вашей среды.

Шаг 6: настройте подключение сервера Zabbix к базе данных

Откройте конфигурацию сервера и установите пароль к БД, который вы создали ранее.

sudo nano /etc/zabbix/zabbix_server.conf

# Set:
# DBPassword=REPLACE_WITH_STRONG_PASSWORD

Совет по повышению производительности: когда вы начнете мониторить больше хостов, вам, вероятно, понадобится настроить такие параметры, как CacheSize и StartPollers. Не оптимизируйте вслепую с самого начала — сначала измерьте (нагрузку на ЦП, БД, размер очереди), а затем настройте.

Шаг 7: настройте NGINX для интерфейса Zabbix

Вместе с zabbix-nginx-confZabbix поставляется с шаблоном сайта для NGINX. Обновите имя сервера (ваш домен) и убедитесь, что сокет/версия PHP-FPM соответствуют вашей системе.

sudo nano /etc/zabbix/nginx.conf

# Common edits:
# listen 80;
# server_name monitor.your-domain.com;
# (and verify the PHP-FPM socket path if your distro differs)

Затем перезапустите NGINX:

sudo systemctl restart nginx

Шаг 8: запустите службы и проверьте стек

sudo systemctl enable --now zabbix-server zabbix-agent2
sudo systemctl status zabbix-server --no-pager
sudo systemctl status zabbix-agent2 --no-pager

Если сервер Zabbix не запускается, немедленно проверьте журналы:

sudo tail -n 200 /var/log/zabbix/zabbix_server.log

Шаг 9: безопасно откройте порты брандмауэра

В Ubuntu UFW часто является самым простым вариантом. В идеале ограничьте доступ к веб-интерфейсу IP-адресами вашего офиса/VPN и ограничьте доступ к порту 10051 известными прокси/агентами.

sudo apt -y install ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Zabbix server port (only if you use proxies/active agents from outside)
sudo ufw allow 10051/tcp

sudo ufw enable
sudo ufw status

Шаг 10: завершите настройку в веб-инсталляторе и защитите учетную запись администратора

Откройте в браузере:

http://SERVER_IP/
# or
http://monitor.your-domain.com/

Следуйте инструкциям установщика Zabbix, укажите базу данных MariaDB, затем войдите в систему. Немедленно измените пароль администратора по умолчанию, создайте отдельную учетную запись администратора для себя и сохраните исходную учетную запись «Admin» в качестве аварийной (или отключите ее, если этого требует ваша политика).

Шаг 11: подключите свой первый хост (Agent 2) с шифрованием

Zabbix Agent 2 — это современный агент с поддержкой плагинов и лучшей расширяемостью. На том же сервере вы можете включить шифрование PSK, чтобы метрики не отправлялись в виде открытого текста.

На агенте (этом сервере): сгенерируйте файл PSK и обновите настройки агента.

sudo openssl rand -hex 32 | sudo tee /etc/zabbix/agent2.psk > /dev/null
sudo chmod 600 /etc/zabbix/agent2.psk

sudo nano /etc/zabbix/zabbix_agent2.conf

# Set/verify:
# Server=127.0.0.1
# ServerActive=127.0.0.1
# TLSConnect=psk
# TLSAccept=psk
# TLSPSKIdentity=PSK-LOCAL-001
# TLSPSKFile=/etc/zabbix/agent2.psk

sudo systemctl restart zabbix-agent2

В интерфейсе Zabbix: перейдите в «Сбор данных» → «Хосты», откройте нужный хост, затем установите интерфейс «Агент» и настройте шифрование, указав тот же идентификатор PSK и значение PSK (содержимое файла /etc/zabbix/agent2.psk). Привяжите шаблон Linux (например, «Linux by Zabbix agent») и убедитесь, что данные начали поступать.

Необязательно: включите HTTPS с помощью бесплатного SSL-сертификата

Даже для внутреннего мониторинга HTTPS оправдывает себя (учетные данные и панели мониторинга не должны передаваться в незашифрованном виде). Если ваш интерфейс Zabbix доступен через доменное имя, вы можете выпустить сертификат с помощью Let’s Encrypt.

sudo apt -y install certbot python3-certbot-nginx
sudo certbot --nginx -d monitor.your-domain.com

Если вы все еще выбираете серверное ПО для своей системы мониторинга, ознакомьтесь также с вариантами VPS под Linux и подумайте, нужны ли вашей среде инструменты, специфичные для Windows (в таком случае VPS под Windows может подойти лучше).

Контрольный список по устранению неполадок (быстрые решения для типичных сбоев)

  • Сервер Zabbix не запускается: проверьте пароль к БД в /etc/zabbix/zabbix_server.conf, убедитесь, что импорт схемы завершен, проверьте /var/log/zabbix/zabbix_server.log.
  • Веб-интерфейс показывает ошибку 502 Bad Gateway: несоответствие между конфигурацией NGINX и сокетом/версией PHP-FPM. Убедитесь, что служба запущена (systemctl status php8.3-fpm) и обновите путь к сокету.
  • Установщик выдает ошибку, связанную с настройками PHP: установите часовой пояс и увеличьте лимиты в php.ini, затем перезапустите PHP-FPM.
  • Нет данных от агента: проверьте направление брандмауэра (пассивные или активные проверки), убедитесь, что агент работает, проверьте IP/DNS интерфейса хоста в интерфейсе Zabbix.
  • Диск быстро заполняется: настройте срок хранения истории/трендов, включите стратегию очистки, рассмотрите возможность разбиения на разделы или переноса БД на отдельный диск.

Что делать дальше, чтобы сделать мониторинг по-настоящему «производственного уровня»

  • Настройте резервное копирование базы данных (ежедневно) и протестируйте восстановление.
  • Ограничьте доступ к интерфейсу пользователя с помощью правил брандмауэра или VPN.
  • Включите каналы оповещения (электронная почта/Telegram/и т. д.) и протестируйте полный поток инцидентов.
  • Добавьте Zabbix Proxy для удаленных сайтов, чтобы уменьшить зависимость от WAN.
  • Мониторинг мониторинга: CPU/RAM/IO на самом VPS Zabbix.
Prev
Menu