Установка и настройка Zabbix на Ubuntu и Debian

Системные администраторы часто пользуются системами мониторинга, такими как Zabbix, чтобы отслеживать серверы, виртуальные машины, сетевые устройства и многое другое. Zabbix предоставляет удобный веб-интерфейс для централизованного контроля и управления метриками и событиями.
Это руководство упрощает процесс установки Zabbix на Ubuntu и Debian, показывает необходимые предварительные шаги и даёт дополнительные рекомендации по безопасности, настройке и проверке работоспособности.
Что необходимо перед установкой
Коротко — что должно быть готово:
- root-доступ или аккаунт с sudo
- MySQL / MariaDB
- PHP (версия совместимая с Zabbix 5.x)
- Веб-сервер Apache (или Nginx, но дальше — Apache)
- Доступ к порту 80/443 и портам агентов (10050/10051)
Короткое определение: Zabbix — сервер мониторинга и система визуализации метрик и оповещений.
Шаг 1. Установка Apache и PHP
Zabbix использует PHP, поэтому сначала устанавливаем Apache и необходимые модули PHP.
Добавьте PPA (при необходимости для более свежих версий PHP):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade -yУстановите Apache и модули PHP:
sudo apt install -y apache2 php php-mysql php-ldap php-bcmath php-gd php-xml libapache2-mod-phpПроверьте статус Apache:
systemctl status apache2Если сервис не запущен, используйте:
systemctl start apache2
systemctl stop apache2
systemctl restart apache2Важно: для продакшн-среды предпочтительнее применять PHP-FPM + Nginx, но Apache + mod_php подходит для быстрых развёртываний и тестовых стендов.
Шаг 2. Установка и настройка MySQL / MariaDB
Установите MySQL сервер и клиент:
sudo apt install -y mysql-server mysql-clientЗапустите скрипт безопасной настройки:
mysql_secure_installationОтвечайте утилите утвердительно на вопросы (y) для установки root-пароля, удаления анонимных пользователей, отключения удалённого входа root и удаления тестовой базы.
Создайте базу данных и пользователя для Zabbix:
mysql -u root -p
CREATE DATABASE zabbixdb character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ваш_надёжный_пароль';
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit;Совет по безопасности: в продакшне ограничьте привилегии пользователя zabbix только необходимыми командами и используйте отдельный аккаунт для резервного копирования.
Шаг 3. Скачивание и установка Zabbix
Скачайте пакет репозитория Zabbix (пример для Zabbix 5.0 на Debian Buster):
wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
sudo apt ./zabbix-release_5.0-1+buster_all.deb
sudo apt update
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-agentЗагрузите схему базы данных в созданную базу:
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u root -p zabbixdbЗаметка: если вы используете MariaDB, команды те же. Для других версий Zabbix меняется ссылка на пакет репозитория.
Шаг 4. Настройка конфигурации Zabbix Server
Отредактируйте файл конфигурации сервера Zabbix:
sudo nano /etc/zabbix/zabbix_server.confНайдите и измените значения подключения к БД:
DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBPassword=ваш_надёжный_парольСохраните и закройте файл.
Шаг 5. Настройка Apache для Zabbix
Перезагрузите или перечитайте настройки Apache:
sudo systemctl reload apache2Откройте конфигурацию Zabbix для Apache:
sudo nano /etc/zabbix/apache.confНайдите строку php_value date.timezone и установите ваш часовой пояс, например:
php_value date.timezone Europe/MoscowЗатем перезапустите Apache:
sudo systemctl restart apache2Шаг 6. Запуск сервисов и проверка
Запустите и включите сервисы Zabbix:
sudo systemctl start zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent
systemctl status zabbix-serverПроверьте, что состояние «active (running)».
Шаг 7. Настройка брандмауэра (UFW)
Если используется UFW, откройте веб-порты и порты Zabbix агента/сервера при необходимости:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Порты Zabbix по умолчанию
sudo ufw allow 10050/tcp
sudo ufw allow 10051/tcp
sudo ufw reloadВажно: разрешайте порты только между доверенными сетями; для агентов в DMZ используйте VPN/TLS.
Шаг 8. Настройка веб-интерфейса Zabbix
Откройте в браузере:
http://localhost/zabbixЕсли Zabbix установлен на удалённом сервере — используйте IP-адрес или DNS-имя.
Следуйте мастеру установки: проверка зависимостей, ввод пароля базы данных, имя сервера, финальная проверка. После окончания откроется экран логина.
Стандартные учётные данные по умолчанию:
- Login: Admin
- Password: zabbix
Сразу смените пароль администратора после входа.
Рекомендуемые дополнительные шаги безопасности
- Смените пароль Admin и создайте учётные записи по ролям с минимальными правами.
- Настройте шифрование TLS для агентов и сервера (server-to-agent и frontend).
- Ограничьте доступ к веб-интерфейсу через firewall и/или HTTP Basic + SSL.
- Используйте отдельный аккаунт БД с минимальными привилегиями (только INSERT/SELECT/UPDATE/DELETE/CREATE/ALTER, если нужно).
- Регулярно обновляйте пакеты Zabbix и систему безопасности.
Отладка и типичные ошибки
- Ошибка подключения к базе: проверьте DBPassword и права пользователя, а также что MySQL принимает подключения от localhost.
- Неправильная временная зона PHP: проверьте php_value date.timezone в /etc/zabbix/apache.conf.
- Сервис zabbix-server не стартует: смотрите логи в /var/log/zabbix/zabbix_server.log.
- Проблемы с правами файлов: веб-сервер должен иметь доступ к папкам Zabbix frontend.
Чек-лист при развёртывании (роль‑ориентированный)
Системный администратор:
- Установлен Apache/PHP и проверен статус
- MySQL готов и база создана
- Zabbix server и agent установлены и запущены
- Брандмауэр настроен
Младший администратор:
- Проверил веб-интерфейс и вход под Admin
- Сменил пароль администратора
- Добавил первый хост и проверил получение метрик
Офицер безопасности:
- TLS для агентов включён
- Доступ к веб-интерфейсу ограничен по IP
- Проверены и ограничены привилегии БД
SOP: Быстрая пошаговая инструкция для развёртывания
- Обновить систему: apt update && apt upgrade -y
- Установить Apache и PHP
- Установить MySQL и выполнить mysql_secure_installation
- Создать БД zabbixdb и пользователя zabbix
- Установить репозиторий Zabbix и пакеты zabbix-server-mysql, frontend, agent
- Загрузить схему и настроить /etc/zabbix/zabbix_server.conf
- Настроить time.zone в /etc/zabbix/apache.conf
- Перезапустить службы и открыть порты в UFW
- Завершить настройку через веб-интерфейс и сменить пароль Admin
Критерии приёмки
- Веб-интерфейс доступен по адресу http://
/zabbix - Статус zabbix-server — active (running)
- Агент успешно подключается к серверу (проверка по last values)
- Пользователь Admin сменил пароль и созданы роли
- Открыты только необходимые порты и настроен TLS при необходимости
Тестовые кейсы и примеры приёмки
- TC1: Вход в веб-интерфейс под Admin/zabbix — ожидается успешная аутентификация и требование сменить пароль.
- TC2: Добавление хоста с агентом — ожидается приём данных (поля CPU, Memory).
- TC3: Оповещение по триггеру — при создании фиктивного триггера отправка уведомления на e-mail/Telegram (настройте медиум заранее).
- TC4: Проверка отказа БД — остановите MySQL и убедитесь, что Zabbix показывает ошибку, а при восстановлении данные продолжают поступать.
Snippets: часто используемые команды (cheat sheet)
# Apache
sudo systemctl restart apache2
# MySQL
sudo mysql -u root -p
# Zabbix services
sudo systemctl start zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent
# Firewalld/UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10050/tcp
sudo ufw reload
# Импорт схемы
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u root -p zabbixdbКогда этот подход может не подойти (контрпримеры)
- Если нужно масштабируемое кластерное решение с высокой доступностью, рассмотрите Zabbix Proxy, кластер БД и балансировщик для frontend.
- Для сред с ограниченным ресурсом CPU/RAM на клиентской стороне может понадобиться лёгкий агент или SNMP-наборы вместо полноценного Zabbix-агента.
- В средах с жёсткими требованиями к безопасности веб-интерфейса лучше развернуть frontend за обратным прокси с WAF.
Модель зрелости развёртывания (кратко)
- Уровень 1 — простая установка на одной машине (этот гайд).
- Уровень 2 — разделение компонентов (отдельные серверы для БД, сервера, frontend).
- Уровень 3 — высокодоступная архитектура с репликацией БД, load balancer и TLS.
Мермайд: простая логика развёртывания
flowchart TD
A[Подготовка сервера] --> B[Установка Apache/PHP]
B --> C[Установка MySQL]
C --> D[Создание БД zabbixdb]
D --> E[Установка Zabbix пакетов]
E --> F[Импорт схемы и настройка конфигурации]
F --> G[Запуск сервисов и открытие портов]
G --> H[Завершение через веб-интерфейс]Примечания по конфиденциальности и соответствию (GDPR)
- Внимательно оценивайте, какие персональные данные будут храниться и логироваться (usernames, IP-адреса) и ограничьте хранение логов при необходимости.
- Настройте ротацию логов и retention, чтобы не хранить лишние персональные данные дольше, чем требуется по политике.
Короткая сводка: что важно помнить
- Сразу смените дефолтный пароль Admin.
- Ограничьте права БД и доступ к веб-интерфейсу.
- Включите TLS для агентов и веб-интерфейса в продакшн.
- Тестируйте оповещения и проверяйте, что триггеры срабатывают корректно.
Полезные ссылки и миграционные заметки
- Если вы мигрируете с другой версии Zabbix — проверьте совместимость схемы и резервное копирование БД перед апгрейдом.
- Для больших инсталляций используйте Zabbix Proxy для распределения нагрузки и снижения нагрузки на основной сервер.
Теперь вы можете мониторить сеть и устройства — от серверов до виртуальных машин. Для портативного мониторинга можно рассмотреть решения на Raspberry Pi с NEMS, если нужна лёгкая и недорогая платформа для локального контроля.
Похожие материалы
Как объединить PDF на iPhone и iPad
Как тренировать силу воли
Студийное качество звука и видео в Zoom
Убрать туман в Lightroom: Dehaze — руководство
Вредоносная реклама на Facebook: как не заразиться