diff --git a/README.md b/README.md index e69de29..b187109 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,69 @@ +# Мониторинг 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.yaml` (или `.xml`). +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)