Мониторинг с 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 7.0 (текущая LTS-ветка) с MariaDB и Apache из официального репозитория Zabbix.
Шаг 1. Подключите официальный репозиторий Zabbix
Ubuntu/Debian:
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:
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:
sudo apt install mariadb-serverAlmaLinux/Rocky:
sudo dnf install mariadb-serversudo systemctl enable --now mariadb
sudo mysql_secure_installationСкрипт mysql_secure_installation задаст несколько вопросов (задать пароль root, удалить анонимных пользователей, запретить удалённый вход под root, удалить тестовую базу) — на все можно отвечать Y, это безопасные значения по умолчанию.
Теперь пакеты самого Zabbix:
Ubuntu/Debian:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2AlmaLinux/Rocky:
sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2zabbix-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 (пригодится в разделе про добавление узла ниже).
Шаг 3. Создайте базу данных
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.
Импортируйте схему базы данных (команда спросит пароль, который вы только что задали):
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixИмпорт занимает от нескольких секунд до пары минут — дождитесь возврата в командную строку без ошибок. После этого временную настройку логирования можно выключить обратно:
sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"Шаг 4. Укажите пароль БД, запустите сервисы и откройте порты
Откройте конфиг сервера:
sudo nano /etc/zabbix/zabbix_server.confНайдите закомментированную строку # DBPassword= и впишите под ней тот же пароль, что задали в шаге 3:
DBPassword=<password>Запустите службы и включите их автозапуск:
Ubuntu/Debian:
sudo systemctl enable --now zabbix-server zabbix-agent2 apache2AlmaLinux/Rocky:
sudo systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpmПроверьте, что сервер поднялся:
sudo systemctl status zabbix-server --no-pagerОжидаемый статус — active (running). Если нет — причину смотрите в логе: sudo tail -n 30 /var/log/zabbix/zabbix_server.log.
Откройте порты для веб-интерфейса:
Ubuntu/Debian (ufw):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpAlmaLinux/Rocky (firewalld):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadПорт 10051/tcp (trapper) нужен, только если планируете добавлять узлы на других VPS — тогда их агенты будут обращаться на этот порт данного сервера. Для мониторинга только текущего сервера открывать его наружу не обязательно; при необходимости открывается так же:
Ubuntu/Debian (ufw):
sudo ufw allow 10051/tcpAlmaLinux/Rocky (firewalld):
sudo firewall-cmd --permanent --add-port=10051/tcp
sudo firewall-cmd --reloadШаг 5. Завершите установку в веб-интерфейсе и смените пароль
Откройте в браузере http://<IP-адрес-сервера>/zabbix (для Apache это работает одинаково что на Ubuntu/Debian, что на AlmaLinux/Rocky) — откроется мастер установки веб-интерфейса:
- Welcome — выберите язык интерфейса, «Next».
- Check of pre-requisites — все пункты (версия PHP,
memory_limit,post_max_size, расширения mysqli/bcmath/mbstring и т.д.) должны быть зелёными: пакеты из шага 2 уже настроили нужные значения, руками php.ini подправлять не придётся. - Configure DB connection — Database type:
MySQL; Database host:localhost; Database port — оставьте значение по умолчанию (при хостеlocalhostфронтенд сам подключится через unix-сокет, без TCP); Database name:zabbix; User:zabbix; Password — тот, что задали в шаге 3. - Settings — по желанию имя сервера (отображается в заголовках страниц) и часовой пояс по умолчанию для фронтенда — часовой пояс настраивается именно здесь, лезть в php.ini/apache.conf для этого не нужно.
- Pre-installation summary — проверьте и нажмите «Next».
- Install → «Finish».
- Log in — логин
Admin, парольzabbix.
Добавьте узел и агента для мониторинга
Шаг 1. Установите агент на нужный VPS
Если будете мониторить тот же VPS, где стоит Zabbix-сервер, — агент (zabbix-agent2) уже установлен в шаге 2 раздела «Ручная установка сервера Zabbix» выше, отдельно ставить не нужно: переходите сразу к шагу 2 ниже (настройка агента).
Если хотите добавить в мониторинг другой VPS MHost — подключите на нём тот же официальный репозиторий Zabbix (шаг 1 раздела «Ручная установка сервера Zabbix» выше) и поставьте только агент:
Ubuntu/Debian:
sudo apt install zabbix-agent2AlmaLinux/Rocky:
sudo dnf install zabbix-agent2Шаг 2. Настройте агент: Server, ServerActive, Hostname
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-сервером и уникальное имя нового узла:
Server=192.0.2.10
ServerActive=192.0.2.10
Hostname=vps-01192.0.2.10— замените на реальный IP-адрес VPS, где стоит Zabbix-сервер.vps-01— любое уникальное имя; тем же именем узел добавляется в веб-интерфейсе на следующем шаге.
Перезапустите агент и включите автозапуск:
sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2Ubuntu/Debian (ufw):
sudo ufw allow 10050/tcpAlmaLinux/Rocky (firewalld):
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.
- Interfaces → Agent — IP-адрес этого VPS, порт
10050.
Нажмите Add.
Через минуту-другую в списке узлов иконка доступности ZBX должна стать зелёной — значит, сервер уже получает данные от агента.
Что дальше
Полный список готовых рецептов VMmanager 6 — в статье «Готовые рецепты VMmanager 6». Если ещё не заходили в панель управления сервером — начните со статьи «Как войти в VMmanager 6».