
Zabbix — это полнофункциональная платформа мониторинга, способная отслеживать серверы, сетевые устройства, приложения, журналы и бизнес-показатели, а затем оповещать вас о неполадках (до того, как их заметят пользователи). В этом руководстве вы развернёте готовый к производственному использованию стек Zabbix на Ubuntu Server с веб-интерфейсом базы данных, а затем выполните «первые 30 минут» укрепления безопасности и начальной настройки.
В этом руководстве рассматриваются следующие темы: установка последних пакетов Zabbix на Ubuntu Server (рекомендуется: Ubuntu 24.04 LTS), настройка MariaDB, настройка NGINX/PHP-FPM для интерфейса, запуск служб, открытие нужных портов и подключение первого хоста с шифрованным трафиком агента. Если вы развертываете систему на новом VPS под Linux, этот процесс пройдет особенно гладко, поскольку вы полностью контролируете брандмауэр, версию PHP и ресурсы сервера.
monitor.your-domain.com для HTTPS позже.| Порт | Кто слушает | Зачем это нужно | Типичное правило брандмауэра |
|---|---|---|---|
| 80/tcp | NGINX | Веб-интерфейс (HTTP) | Разрешить доступ с ваших IP-адресов (или всем, если публичный) |
| 443/tcp | NGINX | Веб-интерфейс (HTTPS) | Разрешить доступ с ваших IP-адресов (рекомендуется) |
| 10051/tcp | Сервер Zabbix | Трапперы, прокси, активные агенты | Разрешить доступ с прокси-серверов/агентов, использующих активные проверки |
| 10050/tcp | Агент Zabbix (на отслеживаемых хостах) | Пассивные проверки (сервер опрашивает агент) | Разрешить на отслеживаемых хостах, не обязательно на сервере Zabbix |
Начните с обновлений, правильного времени и чистой базовой линии. Точное время имеет значение, поскольку 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.
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;
Фронтенд 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
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
На этом шаге создаются таблицы и базовые данные, необходимые 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 для вашей среды.
Откройте конфигурацию сервера и установите пароль к БД, который вы создали ранее.
sudo nano /etc/zabbix/zabbix_server.conf
# Set:
# DBPassword=REPLACE_WITH_STRONG_PASSWORD
Совет по повышению производительности: когда вы начнете мониторить больше хостов, вам, вероятно, понадобится настроить такие параметры, как CacheSize и StartPollers. Не оптимизируйте вслепую с самого начала — сначала измерьте (нагрузку на ЦП, БД, размер очереди), а затем настройте.
Вместе с 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
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
В 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
Откройте в браузере:
http://SERVER_IP/
# or
http://monitor.your-domain.com/
Следуйте инструкциям установщика Zabbix, укажите базу данных MariaDB, затем войдите в систему. Немедленно измените пароль администратора по умолчанию, создайте отдельную учетную запись администратора для себя и сохраните исходную учетную запись «Admin» в качестве аварийной (или отключите ее, если этого требует ваша политика).
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 оправдывает себя (учетные данные и панели мониторинга не должны передаваться в незашифрованном виде). Если ваш интерфейс 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 может подойти лучше).
/etc/zabbix/zabbix_server.conf, убедитесь, что импорт схемы завершен, проверьте /var/log/zabbix/zabbix_server.log.systemctl status php8.3-fpm) и обновите путь к сокету.php.ini, затем перезапустите PHP-FPM.