5.5 KiB
Мониторинг UrBackup для Zabbix 7.x 🚀
Данный репозиторий содержит скрипт и готовый шаблон для интеграции системы резервного копирования UrBackup с системой мониторинга Zabbix. Решение поддерживает автоматическое обнаружение (LLD) клиентов, отслеживание возраста и размеров бэкапов (включая файлы образов .vhd, .vhdz, .raw), а также контроль свободного места в хранилище.
📋 Возможности мониторинга
- Автообнаружение (LLD): Автоматический поиск активных клиентов в директории UrBackup.
- Контроль актуальности: Отслеживание времени (в секундах и unixtime) с момента последнего файлового бэкапа и бэкапа образа.
- Статистика: Подсчет количества успешных копий для каждого клиента.
- Управление емкостью: Мониторинг размера последнего созданного образа диска и процента свободного места на самом сервере бэкапов.
🛠 Инструкция по установке и настройке
Выполните следующие шаги на сервере, где установлен UrBackup Server и Zabbix Agent / Agent2.
Шаг 1. Размещение скрипта
Переместите исполняемый скрипт в директорию бинарных файлов и убедитесь, что он имеет права на выполнение:
mv urbackup_zabbix.sh /usr/local/bin/urbackup_zabbix.sh
chmod +x /usr/local/bin/urbackup_zabbix.sh
Шаг 2. Настройка прав доступа (Важно!)
Папки бэкапов UrBackup по умолчанию закрыты для сторонних пользователей. Чтобы Zabbix-агент мог считывать метаданные и размеры файлов бэкапов, добавьте пользователя zabbix в группу urbackup:
usermod -aG urbackup zabbix
Примечание: Если папки образов внутри хранилища имеют маску прав 700, выполните команду chmod -R g+rX /data/urbackup/ для предоставления доступа группе.
Шаг 3. Конфигурация Zabbix-агента
Добавьте пользовательские параметры (UserParameter) в конфигурационный файл вашего агента (обычно /etc/zabbix/zabbix_agentd.conf или отдельный файл в /etc/zabbix/zabbix_agentd.d/):
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"
После сохранения настроек перезапустите службу агента:
systemctl restart zabbix-agent2
# или для старой версии агента:
systemctl restart zabbix-agent
Шаг 4. Настройка веб-интерфейса Zabbix
- Перейдите в раздел Сбор данных -> Шаблоны (Data collection -> Templates).
- Нажмите Импорт (Import) в правом верхнем углу и выберите файл шаблона из данного репозитория:
zbx_export_templates.yaml(или.xml). - Перейдите в свойства Узла сети (Host) вашего UrBackup-сервера.
- Назначьте импортированный шаблон 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)