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 в целом прямолинейна, но есть нюансы:
- Требования к БД: MySQL 8.0+, PostgreSQL 13+. Если на 5.7 — нужно сначала обновить MySQL.
- Изменения в схеме: автоматически применяются при старте сервера. Для больших инсталляций (>1M хостов) — миграция может занять несколько часов.
- Deprecated параметры: ряд параметров
zabbix_server.confпереименован. Сервер выдаст предупреждения в лог. - Шаблоны: официальные шаблоны для 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 делают его заметно комфортнее в ежедневной работе.
Мигрировали с 6.0 на 7.0 на прошлой неделе, около 800 хостов. Миграция базы заняла минут 40, всё прошло штатно. Главный совет — проверьте совместимость версии MySQL заранее, у нас была 5.7 и пришлось сначала обновить её.