Перейти к содержимому

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), обрабатывается так же: нет устройств, нет ошибки.

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

МетрикаМеткиЗначение
version_infoversionЗначение 1: сборка, 12.3.1.1139.
job_enabled, job_runningjob, typeПо каждому заданию.
job_failed, job_warningjob, type1, когда последний запуск включённого задания завершился сбоем или предупреждением. Отключённое задание сохраняет свой последний результат, который уже ни о чём не говорит: оно не считается ни тем, ни другим.
job_result_infojob, type, resultЗначение 1: success, warning, failed, none.
job_last_run_age_secondsjob, typeВремя с последнего запуска; отсутствует для задания, которое ни разу не запускалось.
job_progress_percentjob, 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_percentrepository, typeПо каждому репозиторию. У репозитория объектного хранилища нет ёмкости: публикуется только занятое место.
license_valid1, когда статус лицензии Valid.
license_infostatus, type, editionЗначение 1.
license_expiry_seconds, support_expiry_secondsДо истечения лицензии и договора поддержки; отсутствует для бессрочной лицензии.
license_instances_licensed, license_instances_usedИспользование лицензии на экземпляры.
section_readablesection: sessions, repositories, license, restore_points1, когда учётная запись может это читать, 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 staledevice, 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 часа, выполняющиеся задания и лицензию, затем перечисляет включённые задания — сначала сбои — с их типом и последним запуском, и репозитории с их заполнением и свободным местом. Затем следует таблица защищаемых устройств (имя, платформа, последняя резервная копия, статус) из общего семейства выше.

  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», если вы не установили собственный.

Учётные данныеПоля
Имя пользователя и парольУчётная запись с ролью 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), а не из-за проблемы с ролью — точки восстановления являются обычным инвентарём, а не страницей только для администратора.