1. Зачем использовать Grafana поверх Zabbix?
Хотя Zabbix прекрасно справляется со сбором метрик и вычислением триггеров, его стандартные графики менее гибкие и визуально устарели. **Grafana** позволяет объединить метрики из Zabbix, Prometheus, PostgreSQL и Loki на едином интерактивном дашборде.
2. Развертывание Grafana в Docker Compose с автоустановкой плагина
Чтобы интегрировать Zabbix и Grafana, нам потребуется плагин alexanderzobnin-zabbix-app. Мы можем установить его автоматически прямо при старте контейнера с помощью переменной окружения GF_INSTALL_PLUGINS.
Шаг 2.1. Добавление Grafana в docker-compose.yml
version: '3.8'
services:
grafana:
image: grafana/grafana-enterprise:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=SuperSecretPassword123
- GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app
volumes:
- grafana_storage:/var/lib/grafana
restart: always
volumes:
grafana_storage:
Запустите контейнер: docker compose up -d grafana
3. Настройка сервисного пользователя в Zabbix для API
В целях безопасности не следует использовать учетную запись `Admin` для связки с Grafana. Создадим отдельного пользователя с правами **Read-Only**:
1. Перейдите в Users → User groups и создайте группу
Grafana API Group с правами Read-only на все группы хостов.2. Перейдите в Users → Users и создайте пользователя
grafana_api.3. Задайте надежный пароль и включите пользователя в группу
Grafana API Group.
4. Интеграция Zabbix Data Source в Grafana
- Откройте Grafana по адресу
http://<IP_СЕРВЕРА>:3000. - Перейдите в Administration → Plugins, найдите **Zabbix** и нажмите **Enable**.
- Перейдите в Connections → Data Sources → Add data source и выберите **Zabbix**.
-
Укажите URL для API Zabbix:
http://172.17.0.1:8080/api_jsonrpc.php(если Grafana обращается к Zabbix через хост-мост Docker) или внутреннее имя контейнераhttp://zabbix-web:8080/api_jsonrpc.php. - В блоке **Zabbix API Details** введите логин (
grafana_api) и пароль. - Нажмите **Save & test**. Вы должны увидеть зелёное уведомление *«Zabbix API version: 6.4.x»*.
5. Создание интерактивных панелей (Panels & Dashboards)
Теперь вы можете создавать графики, показатели загрузки ЦП, памяти и сетевых интерфейсов:
• Group:
Routers• Host:
MikroTik-Main• Item:
Interface ether1: Bits received и Bits sent• Visualization type: Time series или Stat