Как работают Scheduled reports в Zabbix
Схема работы плановых отчётов выглядит следующим образом:
Zabbix Server
│
▼
Zabbix Web Service
│
▼
Frontend Zabbix
│
▼
Dashboard → PDF
│
▼
E-mail получателя
Zabbix Server передаёт задачу на формирование отчёта компоненту zabbix-web-service. Web Service обращается к frontend Zabbix, открывает нужный Dashboard с помощью браузера и формирует PDF.
После этого готовый отчёт отправляется подписчикам через настроенный в Zabbix Email media type.
Устанавливаем Zabbix Web Service
Начнём с установки пакета zabbix-web-service из репозитория Zabbix:
dnf install -y zabbix-web-service
После установки пока не спешим создавать отчёт — сначала необходимо установить браузер и настроить взаимодействие Web Service с Zabbix Server.
Устанавливаем Google Chrome
Zabbix Web Service использует браузер для формирования PDF из Dashboard.
В нашем примере устанавливаем Google Chrome.
Создаём файл репозитория:
nano /etc/yum.repos.d/google-chrome.repo
Добавляем:
[google-chrome]
name=google-chrome
baseurl=https://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
После этого устанавливаем браузер:
dnf install -y google-chrome-stable
Проверить установленную версию можно командой:
google-chrome --version
Настраиваем Zabbix Server
Теперь необходимо указать Zabbix Server, где находится Web Service, и запустить процессы формирования отчётов.
Открываем конфигурацию:
nano /etc/zabbix/zabbix_server.conf
Добавляем или изменяем параметры:
StartReportWriters=1
WebServiceURL=http://localhost:10053/report
Параметр:
StartReportWriters=1
запускает процесс report writer, отвечающий за обработку заданий плановых отчётов.
А параметр:
WebServiceURL=http://localhost:10053/report
указывает адрес Zabbix Web Service.
Настраиваем AllowedIP в Zabbix Web Service
Zabbix Web Service должен принимать запросы только от разрешённых Zabbix Server или Proxy.
Открываем:
nano /etc/zabbix/zabbix_web_service.conf
Находим параметр:
AllowedIP=
Если Zabbix Server и Web Service находятся на одном сервере, можно использовать loopback-адреса:
AllowedIP=127.0.0.1,::1
При раздельной установке указываем адрес Zabbix Server. Например:
AllowedIP=192.168.10.20
Также параметр поддерживает список разрешённых адресов.
Запускаем службы
После настройки включаем Zabbix Web Service и перезапускаем Zabbix Server:
systemctl enable --now zabbix-web-service.service
systemctl restart zabbix-server.service
Проверяем обе службы:
systemctl status zabbix-web-service.service
systemctl status zabbix-server.service
Обе должны находиться в состоянии:
active (running)
При необходимости можно сразу посмотреть журнал Web Service:
journalctl -u zabbix-web-service.service -n 100 --no-pager
Настраиваем Frontend URL
Следующий обязательный шаг — указать URL веб-интерфейса Zabbix.
В интерфейсе Zabbix открываем:
Administration → General
и задаём Frontend URL.
Например:
https://zabbix.example.com/
Готовим Dashboard для отчёта
Scheduled report формируется на основе выбранного Dashboard. Поэтому сначала необходимо подготовить дашборд с той информацией, которую мы хотим видеть в PDF.
Для примера используем стандартный Dashboard:
Zabbix server health
Его можно дополнить собственными виджетами, графиками и показателями.
Добавляем Top Triggers
В нашем примере добавим виджет Top Triggers.
Он позволяет вывести наиболее часто возникавшие проблемы и учитывать выбранный временной диапазон Dashboard, что удобно для ежедневных или еженедельных отчётов.
После настройки сохраняем Dashboard.
Создаём Scheduled report
Переходим:
Reports → Scheduled reports
и нажимаем:
Create report
Указываем владельца и название
В открывшемся окне задаём:
- Owner — владельца отчёта;
- Name — название отчёта.
Выбираем Dashboard
В поле Dashboard нажимаем Select и выбираем подготовленный ранее Dashboard.
В нашем случае:
Zabbix server health
Настраиваем период и расписание
Далее задаём расписание формирования отчёта.
Можно определить:
- период данных, отображаемых в отчёте;
- частоту формирования;
- день отправки;
- время отправки;
- дату начала действия отчёта;
- при необходимости — дату окончания.
Настраиваем тему и текст письма
Zabbix позволяет настроить тему и текст сообщения, сопровождающего отчёт.
Можно использовать HTML и поддерживаемые макросы Zabbix.
Пример темы письма
Weekly demo report From {{TIME}.fmttime(%d %B,-1w/w)} to {{TIME}.fmttime(%d %B %Y,-1w/w+6d)}
В результате даты будут автоматически рассчитываться при каждом формировании отчёта.
Пример тела письма
<b>Week from {{TIME}.fmttime(%d/%m/%y,-1w/w)} to {{TIME}.fmttime(%d/%m/%y,-1w/w+6d)}</b><br>
Week from {{TIME}.fmttime(%d/%B/%Y,-1w/w)} to {{TIME}.fmttime(%d/%B/%Y,-1w/w+6d)}<br>
Week number {{TIME}.fmttime(%W,-1w/w)}<br>
Макросы позволяют автоматически формировать тему и содержимое письма в зависимости от даты создания отчёта.
Добавляем получателей отчёта
В разделе Subscriptions выбираем пользователей или группы пользователей, которым необходимо отправлять отчёт.
Для доставки отчёта у пользователя должен быть настроен подходящий Email media, а сам Email media type в Zabbix должен корректно отправлять почту.
При необходимости из групповой подписки можно исключить отдельных пользователей.
Тестируем отчёт перед сохранением
Перед созданием отчёта нажимаем кнопку Test.
Это позволяет проверить:
- может ли Zabbix сформировать отчёт;
- правильно ли открывается Dashboard;
- корректно ли отображаются виджеты;
- как выглядит итоговый PDF.
Если тест прошёл успешно, нажимаем Add и сохраняем Scheduled report.
Как выглядит готовый отчёт
После срабатывания расписания пользователь получает электронное письмо с сформированным отчётом.
Таким образом можно автоматически отправлять состояние инфраструктуры администраторам, инженерам, руководителям или заказчикам без необходимости вручную заходить в Zabbix и делать скриншоты Dashboard.
Многостраничные Dashboard
Zabbix поддерживает Dashboard, состоящие из нескольких страниц.
При использовании такого Dashboard для Scheduled report его страницы могут быть представлены отдельными страницами итогового PDF.
Пример многостраничного отчёта:
Скачать пример PDF-отчёта Zabbix
Это удобно для комплексной отчётности. Например:
- первая страница — общее состояние инфраструктуры;
- вторая — доступность серверов;
- третья — основные проблемы;
- четвёртая — загрузка ресурсов;
- пятая — показатели конкретной системы.
Что делать, если Scheduled report не формируется
Если при нажатии Test возникает ошибка или отчёты не приходят по расписанию, проверяем настройку последовательно.
Сначала состояние Web Service:
systemctl status zabbix-web-service.service
Затем его журнал:
journalctl -u zabbix-web-service.service -n 100 --no-pager
Проверяем Zabbix Server:
systemctl status zabbix-server.service
И журнал сервера:
journalctl -u zabbix-server.service -n 100 --no-pager
После этого проверяем:
- StartReportWriters;
- WebServiceURL;
- AllowedIP;
- Frontend URL;
- доступность frontend с сервера Web Service;
- наличие и работу браузера;
- Email media type;
- Media у получателя отчёта.
FAQ
Для чего нужен zabbix-web-service?
Zabbix Web Service используется для формирования Scheduled reports. Он обращается к frontend Zabbix и с помощью браузера создаёт PDF-представление выбранного Dashboard.
Нужно ли устанавливать графическую оболочку Linux?
Нет. Для формирования Scheduled reports полноценный графический рабочий стол на сервере не требуется.
Можно ли установить Zabbix Web Service на отдельный сервер?
Да. В этом случае необходимо указать его адрес в WebServiceURL, разрешить Zabbix Server через AllowedIP и обеспечить необходимую сетевую доступность.
Почему отчёт создаётся, но не приходит на почту?
Если PDF успешно формируется через Test, но письмо не приходит, проверьте Email media type, настройки SMTP, Media пользователя и список Subscriptions в Scheduled report.
Можно ли отправлять разные Dashboard разным пользователям?
Да. Можно создать несколько Scheduled reports, выбрать для них разные Dashboard, расписания и наборы подписчиков.
Можно ли сначала проверить PDF без ожидания расписания?
Да. Для этого при настройке Scheduled report используется кнопка Test.
Что попадёт в PDF при многостраничном Dashboard?
Scheduled report формируется на основе выбранного Dashboard. При использовании многостраничного Dashboard его страницы могут быть представлены отдельными страницами PDF-отчёта.
Заключение
Scheduled reports в Zabbix позволяют превратить обычный Dashboard в автоматический PDF-отчёт и регулярно отправлять его администраторам, инженерам, руководителям или заказчикам.
Для работы механизма необходимо настроить несколько компонентов: Zabbix Web Service, браузер, параметры StartReportWriters и WebServiceURL, Frontend URL, Email media и подписчиков отчёта.
После первоначальной настройки дальнейшая работа достаточно проста: создаём нужный Dashboard, выбираем период и расписание, добавляем получателей и проверяем результат через Test. После этого Zabbix самостоятельно формирует PDF и отправляет его по заданному расписанию.
Особенно удобно использовать отдельные Dashboard для разных задач: технический отчёт для администраторов, сводку доступности для руководителя или еженедельный отчёт по состоянию инфраструктуры для заказчика.
Также рекомендую статью Как настроить двухфакторную аутентификацию (2FA) в Zabbix 7.0.