Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Zabbix 7.0 LTS: обзор ключевых изменений

Zabbix 7.0 вышел как LTS-релиз в конце 2024 года и принёс существенные изменения: новый интерфейс, браузерный мониторинг, асинхронный опрос и улучшенное API. Если вы ещё на 6.x — разберёмся, что нового и стоит ли мигрировать.

Новый UI на Vue.js

Самое заметное изменение для пользователей — переработанный фронтенд на Vue.js. Старый интерфейс на PHP постепенно вытесняется: в 7.0 переписаны основные разделы (дашборды, проблемы, карты сети).

Что изменилось на практике:

  • Дашборды работают заметно быстрее — нет полной перезагрузки страницы при обновлении виджетов
  • Новые типы виджетов: Geomap улучшен, добавлены honeycomb-виджеты для отображения статуса хостов
  • Фильтрация и поиск стали более отзывчивыми
  • Тёмная тема наконец работает нормально

Старый интерфейс пока не удалён — некоторые разделы (IT Services, Administration) остаются на PHP. Полный переход планируется в следующих версиях.

Browser-based мониторинг

Одна из самых интересных новинок — browser monitoring через интеграцию с Selenium/WebDriver. Zabbix теперь может запускать браузер (Chrome, Firefox), выполнять сценарий (авторизация, навигация, клики) и проверять результат.

Сценарий описывается в JSON:

{
  "steps": [
    {"type": "navigate", "url": "https://myapp.example.com/login"},
    {"type": "type", "selector": "#username", "value": "monitor_user"},
    {"type": "type", "selector": "#password", "value": "{$MONITOR_PASSWORD}"},
    {"type": "click", "selector": "button[type=submit]"},
    {"type": "assert_text", "selector": ".dashboard-title", "value": "Dashboard"}
  ]
}

Метрики: время загрузки каждого шага, скриншот при ошибке, итоговый статус. Это решает проблему мониторинга web-приложений, где простой HTTP-запрос не отражает реального пользовательского опыта.

Требования: Zabbix Web Service + Chrome/Chromium на агенте.

Async polling: производительность сервера

В предыдущих версиях Zabbix полеры работали синхронно — каждый поллер ждал ответа от устройства перед следующим запросом. При большом количестве slow-responding хостов (особенно SNMP) это создавало очереди.

Async polling в 7.0 позволяет одному поллеру обрабатывать несколько запросов одновременно. На практике это означает:

  • Меньше поллеров для того же количества хостов
  • Лучшая устойчивость к slow-responding устройствам
  • Снижение нагрузки на сервер

Для включения в zabbix_server.conf:

StartPollers=10
StartAsyncPollers=50

Async polling пока поддерживается не для всех типов проверок — в первую очередь для SNMP и агентных проверок.

Новые типы макросов

В 7.0 появились secret macros с улучшенным управлением и vault macros для интеграции с HashiCorp Vault и CyberArk:

# Макрос из Vault
{$DB_PASSWORD} -> vault:secret/data/zabbix#db_password

Это позволяет не хранить пароли в базе Zabbix напрямую. Конфигурация в zabbix_server.conf:

VaultURL=https://vault.example.com:8200
VaultToken=hvs.XXXXXXXXX

Улучшения в API

Zabbix API в 7.0 получил ряд улучшений:

  • Новый метод token.create для управления API-токенами (без Basic Auth)
  • Улучшенная фильтрация в методах получения данных
  • Новые поля в problem.get для получения деталей тегов
  • Версионирование API: apiinfo.version возвращает 7.0.0

Пример получения активных проблем через API:

curl -s -X POST https://zabbix.example.com/api_jsonrpc.php 
  -H 'Content-Type: application/json' 
  -d '{
    "jsonrpc": "2.0",
    "method": "problem.get",
    "params": {
      "severities": [4, 5],
      "suppressed": false,
      "tags": [{"tag": "service", "value": "prod", "operator": 1}]
    },
    "auth": "YOUR_TOKEN",
    "id": 1
  }'

Миграция с 6.x

Миграция с Zabbix 6.0 LTS или 6.4 в целом прямолинейна, но есть нюансы:

  1. Требования к БД: MySQL 8.0+, PostgreSQL 13+. Если на 5.7 — нужно сначала обновить MySQL.
  2. Изменения в схеме: автоматически применяются при старте сервера. Для больших инсталляций (>1M хостов) — миграция может занять несколько часов.
  3. Deprecated параметры: ряд параметров zabbix_server.conf переименован. Сервер выдаст предупреждения в лог.
  4. Шаблоны: официальные шаблоны для 7.0 несовместимы с 6.x — нужен реимпорт. Пользовательские шаблоны обычно переносятся без изменений.
# Проверка перед миграцией
zabbix_server --version
mysql -u zabbix -p zabbix -e "SELECT COUNT(*) FROM hosts;"
# Бэкап БД обязателен!
mysqldump -u zabbix -p zabbix > zabbix_backup_$(date +%Y%m%d).sql

Zabbix vs Prometheus: для каких задач что лучше

Вопрос, который задают регулярно. Коротко:

Zabbix лучше когда:

  • Смешанная инфраструктура: Linux, Windows, сетевое оборудование (SNMP), VMware
  • Нужен мониторинг «из коробки» без написания экспортёров
  • Важен встроенный агент с активными проверками
  • Команда не готова к Kubernetes-ориентированному стеку

Prometheus лучше когда:

  • Kubernetes-нативная среда
  • Микросервисы с /metrics endpoint
  • Нужны мощные алерты через AlertManager + Grafana
  • Команда знакома с PromQL

На практике их часто комбинируют: Prometheus для k8s, Zabbix для «железа» и сетевого оборудования.

Zabbix 7.0 — зрелый продукт, который закрывает большинство задач enterprise-мониторинга. Новый UI и async polling делают его заметно комфортнее в ежедневной работе.

3 Ответа

  1. Мигрировали с 6.0 на 7.0 на прошлой неделе, около 800 хостов. Миграция базы заняла минут 40, всё прошло штатно. Главный совет — проверьте совместимость версии MySQL заранее, у нас была 5.7 и пришлось сначала обновить её.

  1. Async polling действительно ощущается — у нас много железа с медленным SNMP, раньше постоянно были задержки в очереди. Сейчас намного лучше при тех же ресурсах сервера.

  1. SNMP-шаблоны для нового релиза хорошо переработали, особенно для коммутаторов. Раньше приходилось много допиливать руками, сейчас из коробки покрывает большинство нужного.