Перейти к содержанию

Veeam Backup & Replication

Сервер Veeam Backup & Replication через его REST API: задания, последний запуск которых завершился сбоем или предупреждением, неудачные сессии за последние 24 часа, заполняющиеся репозитории, лицензия и — по каждому защищаемому компьютеру или ВМ — его последняя успешная резервная копия.

DumbMonit входит под учётной записью Windows, имеющей только роль Veeam Backup Viewer (OAuth2 password grant на /api/oauth2/token, порт 9419), и хранит токен в течение его пятнадцатиминутного срока жизни. Каждый вызов несёт обязательный заголовок x-api-version, по умолчанию 1.1-rev0: ревизия, появившаяся вместе с версией 12.0.

Состояния заданий (/api/v1/jobs/states) — единственное обязательное чтение. Остальное — /api/v1/serverInfo, /api/v1/sessions (созданные за последние 24 часа), /api/v1/backupInfrastructure/repositories/states, /api/v1/license и /api/v1/restorePoints (точки восстановления всех защищаемых объектов по всему серверу, сначала новейшие) — читается, если роль это позволяет. Veeam оставляет некоторые маршруты для роли Backup Administrator, в том числе лицензию в текущих версиях: отказ там показывается как «не читается», а не как ошибка. Сервер, слишком старый, чтобы знать /api/v1/restorePoints (маршрут появился после 12.0), обрабатывается так же: нет устройств, нет ошибки.

Проверено только по документации производителя — на реальной системе ещё не тестировалось

Эта интеграция создана по справочнику REST API и справочному центру Veeam (аутентификация, версионирование, модели заданий, сессий, репозиториев, лицензии и точек восстановления), а не на работающем сервере резервного копирования. Какие маршруты роль Viewer может читать, зависит от версии: расскажите нам, что отклоняет ваш сервер.

За чем он следит

Все метрики имеют префикс dumbmonit_veeam_.

Метрика Метки Значение
version_info version Значение 1: сборка, 12.3.1.1139.
job_enabled, job_running job, type По каждому заданию.
job_failed, job_warning job, type 1, когда последний запуск включённого задания завершился сбоем или предупреждением. Отключённое задание сохраняет свой последний результат, который уже ни о чём не говорит: оно не считается ни тем, ни другим.
job_result_info job, type, result Значение 1: success, warning, failed, none.
job_last_run_age_seconds job, type Время с последнего запуска; отсутствует для задания, которое ни разу не запускалось.
job_progress_percent job, type Пока задание выполняется.
jobs, jobs_failed, jobs_warning, jobs_running, jobs_disabled Счётчики; по одному описывается не более 200 заданий.
sessions_24h, sessions_failed_24h, sessions_warning_24h Сессии, созданные за последние 24 часа, по результату.
repository_capacity_bytes, repository_free_bytes, repository_used_bytes, repository_used_percent repository, type По каждому репозиторию. У репозитория объектного хранилища нет ёмкости: публикуется только занятое место.
license_valid 1, когда статус лицензии Valid.
license_info status, type, edition Значение 1.
license_expiry_seconds, support_expiry_seconds До истечения лицензии и договора поддержки; отсутствует для бессрочной лицензии.
license_instances_licensed, license_instances_used Использование лицензии на экземпляры.
section_readable section: sessions, repositories, license, restore_points 1, когда учётная запись может это читать, 0, когда Veeam отказал.

Применяемые встроенные правила:

  • Veeam job failed: последний запуск включённого задания завершился сбоем (Warning, напоминание ежедневно).
  • Veeam job ended with a warning (Advisory, напоминание ежедневно).
  • Veeam repository nearly full: более 90 % в течение тридцати минут (Advisory).
  • Veeam license expiring: осталось менее 30 дней (Advisory, напоминание ежедневно). Только когда учётная запись может читать лицензию.
  • Client device stale: защищаемый компьютер или ВМ превысил device_stale_days без успешной резервной копии (Advisory, напоминание ежедневно); см. Устройства ниже.

Устройства

Каждый объект хотя бы с одной точкой восстановления — ВМ, физический или виртуальный компьютер, защищаемый агентом, файловый ресурс — публикуется в общем семействе, которое используют все интеграции DumbMonit, отслеживающие защищаемые устройства, — dumbmonit_client_device_*, с префиксом без veeam, полностью описанном в разделе Client devices:

Метрика Что Метки
last_backup_timestamp_seconds Самая свежая точка восстановления объекта device, type, os, user, kind
stale_seconds Положительна, когда объект превысил device_stale_days (по умолчанию 3) без новой точки восстановления; запускает правило Client device stale device, type, os, user, kind, signal (всегда backup)

Ограничения, о которых стоит знать: задание защищает свои объекты как группу (jobs/states даёт только число, objectsCount); дата по каждому объекту берётся вместо этого из /api/v1/restorePoints, читаемого для всего сервера одним вызовом. Veeam создаёт точку восстановления, только когда резервная копия хотя бы частично удалась, так что самая свежая для каждого объекта уже является «последней успешной резервной копией» — здесь по результату ничего не фильтруется. Veeam не предоставляет «последнее подключение» отдельно от самой резервной копии, поэтому last_seen_timestamp_seconds и сигнал connection никогда не публикуются; в таблице на странице монитора last_connection показывается как «—». type устройства — это собственное название платформы Veeam (VSphere, WindowsPhysical, HyperV…), показываемое как есть.

Страница монитора

Панель Backups одним предложением говорит, что не так, показывает неудавшиеся задания, неудачные сессии за последние 24 часа, выполняющиеся задания и лицензию, затем перечисляет включённые задания — сначала сбои — с их типом и последним запуском, и репозитории с их заполнением и свободным местом. Затем следует таблица защищаемых устройств (имя, платформа, последняя резервная копия, статус) из общего семейства выше.

Выдайте DumbMonit учётную запись Veeam Backup Viewer

  1. На сервере резервного копирования создайте для DumbMonit локальную учётную запись Windows с длинным случайным паролем и без других прав на машине (доменная учётная запись тоже подойдёт).

    net user dumbmonit * /add
    
  2. В консоли Veeam откройте главное меню > Users and Roles > Security, нажмите Add, введите учётную запись (например VBR01\dumbmonit) и назначьте ей только роль Veeam Backup Viewer.

  3. В DumbMonit введите адрес сервера резервного копирования, например «vbr.lan», и учётную запись в виде HOST\dumbmonit или DOMAIN\dumbmonit с её паролем. REST API слушает порт 9419 с самоподписанным сертификатом: отметьте «Accept an unverifiable certificate», если вы не установили собственный.

Warning

Veeam оставляет некоторые маршруты REST API для роли Backup Administrator, в том числе лицензию в текущих версиях. С ролью Viewer DumbMonit читает задания, сессии, репозитории и точки восстановления, а лицензию показывает как не читаемую: он никогда не запрашивает большего.

Учётные данные

Учётные данные Поля
Имя пользователя и пароль Учётная запись с ролью Veeam Backup Viewer в виде HOST\dumbmonit или DOMAIN\dumbmonit.

Адрес: имя хоста или IP сервера резервного копирования, host:port или URL. Параметры:

  • Протокол (https) и Порт (9419): службы REST API.
  • Версия API (1.1-rev0): отправляется как x-api-version. Меняйте её, только если сервер её отклоняет; сервер v13 документирует 1.3-rev1.
  • Accept an unverifiable certificate: собственный сертификат REST API самоподписан.
  • Тайм-аут на запрос (15 с).
  • Устаревание устройства (device_stale_days, по умолчанию 3 дня): см. Устройства выше.

Устранение неполадок

«Veeam refused the login»: имени пользователя нужны хост или домен (VBR01\dumbmonit), либо у учётной записи нет роли Veeam.

«Veeam refused to list the jobs (403)»: у учётной записи роль, не позволяющая читать задания; назначьте ей Veeam Backup Viewer.

«Veeam refused the API version»: задайте в параметре версии API ту, что сервер перечисляет на https://<server>:9419/swagger.

Лицензия показывает «Not readable»: ожидаемо для роли Viewer в текущих версиях; DumbMonit не запрашивает большего.

Нет устройств или панель Devices пуста: restore_points читается как «Not readable», вероятно, потому что сервер старше этого маршрута (всё до более поздних ревизий 12.0), а не из-за проблемы с ролью — точки восстановления являются обычным инвентарём, а не страницей только для администратора.