# Мониторинг UrBackup для Zabbix 7.x 🚀 Данный репозиторий содержит скрипт и готовый шаблон для интеграции системы резервного копирования **UrBackup** с системой мониторинга **Zabbix**. Решение поддерживает автоматическое обнаружение (LLD) клиентов, отслеживание возраста и размеров бэкапов (включая файлы образов `.vhd`, `.vhdz`, `.raw`), а также контроль свободного места в хранилище. --- ## 📋 Возможности мониторинга * **Автообнаружение (LLD):** Автоматический поиск активных клиентов в директории UrBackup. * **Контроль актуальности:** Отслеживание времени (в секундах и unixtime) с момента последнего файлового бэкапа и бэкапа образа. * **Статистика:** Подсчет количества успешных копий для каждого клиента. * **Управление емкостью:** Мониторинг размера последнего созданного образа диска и процента свободного места на самом сервере бэкапов. --- ## 🛠 Инструкция по установке и настройке Выполните следующие шаги на сервере, где установлен **UrBackup Server** и **Zabbix Agent / Agent2**. ### Шаг 1. Размещение скрипта Переместите исполняемый скрипт в директорию бинарных файлов и убедитесь, что он имеет права на выполнение: ```bash mv urbackup_zabbix.sh /usr/local/bin/urbackup_zabbix.sh chmod +x /usr/local/bin/urbackup_zabbix.sh ``` ### Шаг 2. Настройка прав доступа (Важно!) Папки бэкапов UrBackup по умолчанию закрыты для сторонних пользователей. Чтобы Zabbix-агент мог считывать метаданные и размеры файлов бэкапов, добавьте пользователя `zabbix` в группу `urbackup`: ```bash usermod -aG urbackup zabbix ``` *Примечание: Если папки образов внутри хранилища имеют маску прав `700`, выполните команду `chmod -R g+rX /data/urbackup/` для предоставления доступа группе.* ### Шаг 3. Конфигурация Zabbix-агента Добавьте пользовательские параметры (**UserParameter**) в конфигурационный файл вашего агента (обычно `/etc/zabbix/zabbix_agentd.conf` или отдельный файл в `/etc/zabbix/zabbix_agentd.d/`): ```ini UserParameter=urbackup.discovery[*],/usr/local/bin/urbackup_zabbix.sh discovery "$1" UserParameter=urbackup.last_age[*],/usr/local/bin/urbackup_zabbix.sh last_age "$1" "$2" "$3" UserParameter=urbackup.last_ts[*],/usr/local/bin/urbackup_zabbix.sh last_ts "$1" "$2" "$3" UserParameter=urbackup.count[*],/usr/local/bin/urbackup_zabbix.sh count "$1" "$2" "$3" UserParameter=urbackup.image_size[*],/usr/local/bin/urbackup_zabbix.sh image_size "$1" "$2" UserParameter=urbackup.disk_free_pct[*],/usr/local/bin/urbackup_zabbix.sh disk_free_pct "$1" ``` После сохранения настроек перезапустите службу агента: ```bash systemctl restart zabbix-agent2 # или для старой версии агента: systemctl restart zabbix-agent ``` ### Шаг 4. Настройка веб-интерфейса Zabbix 1. Перейдите в раздел **Сбор данных** -> **Шаблоны** (*Data collection -> Templates*). 2. Нажмите **Импорт** (*Import*) в правом верхнем углу и выберите файл шаблона из данного репозитория: `zbx_export_templates.json`. 3. Перейдите в свойства Узла сети (*Host*) вашего UrBackup-сервера. 4. Назначьте импортированный шаблон **UrBackup** данному узлу сети. --- ## ⚙️ Макросы шаблона После привязки шаблона вы можете скорректировать макросы на уровне узла сети под ваши требования: * `{$URBACKUP.PATH}` — Путь к корневой директории бэкапов (по умолчанию: `/data/urbackup`). * `{$URBACKUP.FILE.WARN}` / `{$URBACKUP.FILE.HIGH}` — Пороги предупреждения и критического алерта для возраста файлового бэкапа в секундах. * `{$URBACKUP.IMAGE.WARN}` / `{$URBACKUP.IMAGE.HIGH}` — Пороги предупреждения и критического алерта для возраста бэкапа образов в секундах. * `{$URBACKUP.DISK.WARN}` / `{$URBACKUP.DISK.HIGH}` — Лимиты свободного места на диске хранилища в процентах. --- **Версия шаблона:** 7.0+ (совместимо с Zabbix 7.x)