69 lines
5.4 KiB
Markdown
69 lines
5.4 KiB
Markdown
# Мониторинг 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)
|