MHOSTMHOST

Мониторинг с Zabbix

Zabbix — свободная система мониторинга серверов, сетевых устройств и приложений: собирает метрики (нагрузка CPU, память, диск, сеть, доступность служб) и умеет оповещать о проблемах. В этой статье — как поднять сервер Zabbix на VPS MHost (готовым рецептом в один клик либо вручную из официального репозитория) и как подключить к нему первый узел (host) с агентом.

Что понадобится

  • VPS MHost на одной из систем: Ubuntu 22.04/24.04, Debian 11/12 или AlmaLinux/Rocky Linux 8/9 — для ручной установки ниже; список ОС для готового рецепта смотрите в статье о рецептах.
  • Доступ по SSH под root или пользователем с правами sudo.
  • Публичный IP-адрес сервера — чтобы открыть веб-интерфейс Zabbix в браузере.
  • Если планируете мониторить ещё и другие VPS MHost — SSH-доступ к ним тоже понадобится, для установки агента.

Готовые рецепты: Zabbix в один клик

В VMmanager 6 есть три готовых рецепта под Zabbix — ставятся в один клик, без единой команды в консоли (как запускать рецепты — в статье «Готовые рецепты VMmanager 6»):

  • Zabbix server — полноценный сервер мониторинга: сам Zabbix, база данных и веб-интерфейс в одном рецепте. Вход в веб-интерфейс после установки: логин Admin, пароль zabbix.
  • Zabbix agent2 linux — агент для сервера, который нужно взять под мониторинг (ставится на каждый мониторимый VPS отдельно).
  • Zabbix proxy — прокси в пассивном режиме: собирает метрики с удалённых узлов и передаёт их на Zabbix-сервер, пригождается при большом числе серверов или площадок за NAT.
Важно: пароль zabbix у рецепта «Zabbix server» — общеизвестный дефолт, а не секрет. Смените его сразу после первого входа, до того как открывать веб-интерфейс наружу — см. блок про смену пароля в шаге про первый вход ниже, он одинаков что для рецепта, что для ручной установки.
Совет: рецепт — самый быстрый способ поднять Zabbix, без единой команды в консоли. Дальше в статье — ручная установка того же стека: пригодится, если нужен контроль над версией пакетов, база данных на отдельном сервере или рецепт по каким-то причинам не подходит.

Ручная установка сервера Zabbix

Ниже — установка Zabbix 7.0 (текущая LTS-ветка) с MariaDB и Apache из официального репозитория Zabbix.

Совет: на zabbix.com/download можно выбрать свою ОС и свериться, что 7.0 всё ещё актуальная LTS-версия. Если Zabbix уже выпустил более новую LTS взамен 7.0, подставьте её номер вместо 7.0 в путях и именах пакетов ниже — остальные шаги не изменятся.

Шаг 1. Подключите официальный репозиторий Zabbix

Важно: используйте только официальный репозиторий repo.zabbix.com. Версии Zabbix из репозиториев самих дистрибутивов (особенно Debian) часто устаревшие и не поддерживаются Zabbix.

Ubuntu/Debian:

bash
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

Команда выше — для Ubuntu 24.04. Для другой версии возьмите вместо неё:

  • Ubuntu 22.04 — zabbix-release_latest_7.0+ubuntu22.04_all.deb из .../ubuntu/pool/main/z/zabbix-release/
  • Debian 12 (bookworm) — zabbix-release_latest_7.0+debian12_all.deb из .../debian/pool/main/z/zabbix-release/
  • Debian 11 (bullseye) — zabbix-release_latest_7.0+debian11_all.deb из той же папки для Debian

AlmaLinux/Rocky:

bash
sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm

Команда выше — для AlmaLinux 9. Для другой ОС/версии замените в пути alma на rocky, если у вас Rocky Linux, и 9 на 8, если у вас 8-я версия (например, .../rocky/8/x86_64/zabbix-release-latest-7.0.el8.noarch.rpm).

Шаг 2. Установите MariaDB и пакеты Zabbix

Сначала база данных:

Ubuntu/Debian:

bash
sudo apt install mariadb-server

AlmaLinux/Rocky:

bash
sudo dnf install mariadb-server
bash
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

Скрипт mysql_secure_installation задаст несколько вопросов (задать пароль root, удалить анонимных пользователей, запретить удалённый вход под root, удалить тестовую базу) — на все можно отвечать Y, это безопасные значения по умолчанию.

Теперь пакеты самого Zabbix:

Ubuntu/Debian:

bash
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2

AlmaLinux/Rocky:

bash
sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
  • zabbix-server-mysql — сам сервер Zabbix с поддержкой MySQL/MariaDB.
  • zabbix-frontend-php / zabbix-web-mysql — веб-интерфейс (PHP); нужные PHP-модули (mysqli, gd, bcmath, mbstring и др.) подтянутся автоматически как зависимости.
  • zabbix-apache-conf — готовый конфиг Apache для фронтенда, уже с нужными лимитами PHP (memory_limit, upload_max_filesize и т.д.) — руками php.ini подстраивать не придётся.
  • zabbix-sql-scripts — SQL-схема базы данных для следующего шага.
  • zabbix-selinux-policy — на AlmaLinux/Rocky по умолчанию включён SELinux в режиме enforcing; пакет добавляет готовую политику, чтобы Zabbix и Apache могли общаться друг с другом без ручной настройки SELinux.
  • zabbix-agent2 — агент для мониторинга этого же VPS (пригодится в разделе про добавление узла ниже).
Совет: если предпочитаете Nginx вместо Apache, поставьте zabbix-nginx-conf вместо zabbix-apache-conf и раскомментируйте строки listen и server_name в /etc/zabbix/nginx.conf, вписав свой порт и доменное имя.

Шаг 3. Создайте базу данных

bash
sudo mysql <<'EOF'
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
EOF

Замените <password> на свой пароль — он понадобится ещё дважды: при импорте схемы ниже и в настройках сервера в шаге 4.

Импортируйте схему базы данных (команда спросит пароль, который вы только что задали):

bash
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Импорт занимает от нескольких секунд до пары минут — дождитесь возврата в командную строку без ошибок. После этого временную настройку логирования можно выключить обратно:

bash
sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

Шаг 4. Укажите пароль БД, запустите сервисы и откройте порты

Откройте конфиг сервера:

bash
sudo nano /etc/zabbix/zabbix_server.conf

Найдите закомментированную строку # DBPassword= и впишите под ней тот же пароль, что задали в шаге 3:

ini
DBPassword=<password>
Важно: без этой строки zabbix-server не подключится к базе и не запустится (ошибка будет видна в /var/log/zabbix/zabbix_server.log). Параметры DBName=zabbix и DBUser=zabbix в этом файле уже настроены по умолчанию — трогать их не нужно, только пароль.

Запустите службы и включите их автозапуск:

Ubuntu/Debian:

bash
sudo systemctl enable --now zabbix-server zabbix-agent2 apache2

AlmaLinux/Rocky:

bash
sudo systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpm

Проверьте, что сервер поднялся:

bash
sudo systemctl status zabbix-server --no-pager

Ожидаемый статус — active (running). Если нет — причину смотрите в логе: sudo tail -n 30 /var/log/zabbix/zabbix_server.log.

Совет (только AlmaLinux/Rocky): если веб-интерфейс после установки показывает баннер «Zabbix server is not running», хотя служба активна, — обычно дело в SELinux. Пакет zabbix-selinux-policy из шага 2 решает это в большинстве случаев; если баннер всё равно виден, выполните sudo setsebool -P httpd_can_connect_zabbix on и перезапустите httpd.

Откройте порты для веб-интерфейса:

Ubuntu/Debian (ufw):

bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

AlmaLinux/Rocky (firewalld):

bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Важно: если файрвол на сервере ещё не настроен вообще, сначала пройдите статью «Настройка файрвола UFW» — она разрешает SSH ещё до включения файрвола.

Порт 10051/tcp (trapper) нужен, только если планируете добавлять узлы на других VPS — тогда их агенты будут обращаться на этот порт данного сервера. Для мониторинга только текущего сервера открывать его наружу не обязательно; при необходимости открывается так же:

Ubuntu/Debian (ufw):

bash
sudo ufw allow 10051/tcp

AlmaLinux/Rocky (firewalld):

bash
sudo firewall-cmd --permanent --add-port=10051/tcp
sudo firewall-cmd --reload

Шаг 5. Завершите установку в веб-интерфейсе и смените пароль

Откройте в браузере http://<IP-адрес-сервера>/zabbix (для Apache это работает одинаково что на Ubuntu/Debian, что на AlmaLinux/Rocky) — откроется мастер установки веб-интерфейса:

  1. Welcome — выберите язык интерфейса, «Next».
  2. Check of pre-requisites — все пункты (версия PHP, memory_limit, post_max_size, расширения mysqli/bcmath/mbstring и т.д.) должны быть зелёными: пакеты из шага 2 уже настроили нужные значения, руками php.ini подправлять не придётся.
  3. Configure DB connection — Database type: MySQL; Database host: localhost; Database port — оставьте значение по умолчанию (при хосте localhost фронтенд сам подключится через unix-сокет, без TCP); Database name: zabbix; User: zabbix; Password — тот, что задали в шаге 3.
  4. Settings — по желанию имя сервера (отображается в заголовках страниц) и часовой пояс по умолчанию для фронтенда — часовой пояс настраивается именно здесь, лезть в php.ini/apache.conf для этого не нужно.
  5. Pre-installation summary — проверьте и нажмите «Next».
  6. Install → «Finish».
  7. Log in — логин Admin, пароль zabbix.
Важно: сразу после первого входа смените пароль — независимо от того, ставили вы Zabbix рецептом или вручную, дефолт Admin / zabbix одинаковый и общеизвестный. В левом меню внизу нажмите на значок пользователя → Profile → вкладка User → кнопка Change password → введите старый пароль (zabbix) и новый дважды → Update. После смены все текущие сессии Admin разлогинятся — войдите заново уже с новым паролем.
Готово: вы вошли в веб-интерфейс под новым паролем — сервер Zabbix настроен и работает.

Добавьте узел и агента для мониторинга

Шаг 1. Установите агент на нужный VPS

Если будете мониторить тот же VPS, где стоит Zabbix-сервер, — агент (zabbix-agent2) уже установлен в шаге 2 раздела «Ручная установка сервера Zabbix» выше, отдельно ставить не нужно: переходите сразу к шагу 2 ниже (настройка агента).

Если хотите добавить в мониторинг другой VPS MHost — подключите на нём тот же официальный репозиторий Zabbix (шаг 1 раздела «Ручная установка сервера Zabbix» выше) и поставьте только агент:

Ubuntu/Debian:

bash
sudo apt install zabbix-agent2

AlmaLinux/Rocky:

bash
sudo dnf install zabbix-agent2
Совет: вместо ручной установки на другом VPS можно применить готовый рецепт «Zabbix agent2 linux» — см. раздел про рецепты выше.

Шаг 2. Настройте агент: Server, ServerActive, Hostname

bash
sudo nano /etc/zabbix/zabbix_agent2.conf

Если агент стоит на том же сервере, что и Zabbix-сервер, — файл трогать не нужно: из коробки в нём уже прописано Server=127.0.0.1, ServerActive=127.0.0.1 и Hostname=Zabbix server — агент по умолчанию уже настроен слать данные на локальный сервер под именем узла, который Zabbix создаёт для себя сам при установке (см. шаг 3 ниже).

Если агент — на другом VPS, укажите в этих трёх параметрах адрес VPS с Zabbix-сервером и уникальное имя нового узла:

ini
Server=192.0.2.10
ServerActive=192.0.2.10
Hostname=vps-01
  • 192.0.2.10 — замените на реальный IP-адрес VPS, где стоит Zabbix-сервер.
  • vps-01 — любое уникальное имя; тем же именем узел добавляется в веб-интерфейсе на следующем шаге.

Перезапустите агент и включите автозапуск:

bash
sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
Важно: на этом (агентском) VPS откройте порт 10050/tcp — именно на него Zabbix-сервер будет обращаться за данными. Если файрвол ещё не настроен — см. статью «Настройка файрвола UFW».

Ubuntu/Debian (ufw):

bash
sudo ufw allow 10050/tcp

AlmaLinux/Rocky (firewalld):

bash
sudo firewall-cmd --permanent --add-port=10050/tcp
sudo firewall-cmd --reload

Шаг 3. Добавьте узел в Data collection → Hosts

В веб-интерфейсе Zabbix-сервера откройте в левом меню Data collection → Hosts.

Если мониторите тот же сервер, где стоит Zabbix, — узел с именем Zabbix server там уже есть (создаётся автоматически при установке, имя совпадает с Hostname из конфига агента по умолчанию). Откройте его и проверьте, привязан ли в поле Templates шаблон вроде Linux by Zabbix agent — если нет, добавьте его.

Если мониторите отдельный VPS — нажмите Create host и заполните:

  • Host name — то же имя, что указали в Hostname агента (например, vps-01).
  • Host groups — существующая группа или название новой.
  • Templates — например, Linux by Zabbix agent.
  • InterfacesAgent — IP-адрес этого VPS, порт 10050.

Нажмите Add.

Через минуту-другую в списке узлов иконка доступности ZBX должна стать зелёной — значит, сервер уже получает данные от агента.

Готово: узел добавлен и передаёт метрики — данные смотрите в Monitoring → Latest data, а дальше настраивайте триггеры и уведомления под свои задачи.

Что дальше

Полный список готовых рецептов VMmanager 6 — в статье «Готовые рецепты VMmanager 6». Если ещё не заходили в панель управления сервером — начните со статьи «Как войти в VMmanager 6».