Как такого готово модуля под ELK либо Splunk у Veeam Backup and Replication нету и вроде не предвидится. А когда такое происходит приходится что-то придумывать самому, обычно на помощь приходят скрипты. И эта статья не исключение.

Сразу оговорюсь что в этой статье я не буду использовать стандартный функционал Veeam Backup and Replication с оповещениями по email и т.д. Я считаю если есть система мониторинга, то нужно всё добавлять туда и смотреть всё в одном месте, хоть это иногда и сложно.

Veeam.Backup.PowerShell

Для того, чтобы работать с Veeam Backup and Replicationнам понадобится модуль Veeam.Backup.PowerShell, который ставится по умолчанию вместе с самим Veeam Backup and Replication.

Для того чтобы начать работу открываем консоль Veeam Backup and Replication, далее в меню выбираем Console > Powershell.

veeam powershell

Чтобы точно удостоверится что мы всё сделали правильно и у нас всё готово для начала работы можно выполнить команду, которая найдёт нам модуль и выведет по нему информацию.

Get-Module -Name Veeam.Backup.PowerShell
oduleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0        Veeam.Backup.PowerShell             {Add-CTFile, Add-HP3Snapshot, Add-HP3Storage

Также можно вывести список команд, которые мы можем использовать благодаря этому модуля используя команду Get-Help либо Get-VBRCommand. Обратите внимание так как мы используем для мониторинга, то соответственно мы будем использовать только команды Get.

Get-Help Veeam.Backup.PowerShell
Get-VBRHvServerVolume             Cmdlet    Veeam.Backup.PowerShell   Returns volume-specific settings for Microso
Get-VBRInstalledLicense           Cmdlet    Veeam.Backup.PowerShell   Returns details about licenses installed on 
Get-VBRInstanceLicenseSummary     Cmdlet    Veeam.Backup.PowerShell   Returns details on the per-instance license 
Get-VBRSecurityOptions            Cmdlet    Veeam.Backup.PowerShell     
Get-VBRCommand -Verb Get
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-HP3InfrastructureVolume                        1.0        Veeam.Backup.PowerShell
Cmdlet          Get-HP3Snapshot                                    1.0        Veeam.Backup.PowerShell
Cmdlet          Get-HP3Storage                                     1.0        Veeam.Backup.PowerShell
Cmdlet          Get-HP3Volume                                      1.0        Veeam.Backup.PowerShell

Документация

Вы всегда можете найти документацию по той или иной команде на сайте, либо же выполнить команду Get-Help.

Get-Help Connect-VBRServer
SYNOPSIS
    Connects to Veeam backup server.


SYNTAX
    Connect-VBRServer [-Server <String>] [-Port <Int32>] [-Timeout <Int32>] [<CommonParameters>]

Создание пользователя

Конечно правильным тоном в мониторинге считается что вы всегда создаёте отдельного пользователя с ограниченными правами, если это возможно конечно. Вот в случае с Veeam Backup and Replication так как раз и не получится потому что чтобы использовать модуль Veeam.Backup.PowerShell вам необходимо быть в группе Veeam Backup Administrator, жаль конечно.

Для начала нужно создать этого самого пользователя в самой ОС Windows, как это делать я опущу так как считаю, что с этим должен справится даже самый юный сисадмин.

После того как пользователь был добавлен надо добавить его в группу Veeam Backup Administrator в самой консоли Veeam Backup and Replication. Для этого в левом верхнем меню выбираем Users and Roles.

Veeam Backup Reader

Проверка подключения

Теперь, когда у нас есть пользователь остаётся проверить подключение к Veeam Backup and Replication. Для этого используем команду Connect-VBRServer, если получаете ошибку о уже существующей сессии выполните Disconnect-VBRServer.

Disconnect-VBRServer
Connect-VBRServer -Server 127.0.0.1 -U VeeamReader

Если сделали всё правильно, то должны получить пустой ответ, главное без ошибок. Ну а для того чтобы проверить что всё работает можно еще выполнить любую команду и получить от неё ответ.

Get-VBRLocalhost
Description        : Backup server
IsUnavailable      : False
Type               : Local
ApiVersion         : Unknown

Проверка лицензии

Конечно никто не хочет проморгать момент, когда у вас закончится лицензия, тем более иногда нужно узнать об этом заранее чтобы заложить бюджет (привет госаппарату).

Для проверки лицензии используется команда Get-VBRInstalledLicense, или вот вам готовый скрипт.

Get-VBRInstalledLicense
SupportExpirationDate               : 3/15/2023 12:00:00 AM
AutoUpdateEnabled                   : False
FreeAgentInstanceConsumptionEnabled : True
CloudConnect                        : Disabled

Проверка бэкапов

Естественно вам необходимо также мониторить и сами бэкапы, а точнее их состояние, когда выполнялись и т.д. Для этого используется команда Get-VBRBackup, или вот вам готовый скрипт.

Get-VBRBackup
Backup Job 1              VMware Backup   12/3/2021 10:02:5...               1

Проверка подключенных хостов

Используя Veeam Backup and Replicationвы можете бэкапить как виртуальные так и физические сервера, но для начала вам нужно добавить эти в сервера в сам Veeam Backup and Replication. И вот чтобы мониторить какие именно вы добавили сервера используется команда Get-VBRServer, или вот вам готовый скрипт.

Get-VBRServer
Info               : 192.168.0.2 (VMware ESXi server)
Name               : 192.168.0.2
Reference          : host-2
IsUnavailable      : False
Type               : ESXi

Info               : 192.168.0.3 (Microsoft Windows server)
Name               : 192.168.0.3
IsUnavailable      : False
Type               : Windows

Тут, например, можно сделать alert в системе мониторинга если один из серверов со статусом IsUnavailable = True.

Список Job

Для того чтобы получить список всех задач в Veeam Backup and Replication используется команда Get-VBRJob, или вот вам готовый скрипт.

Get-VBRJob
Job Name                  Type            State      Last Result  Description
--------                  ----            -----      -----------  -----------
Backup Job 1        VMware Backup   Stopped    None         Created by asd\Administrator at 12/4/2021 11:57 PM.
Backup Job 3         VMware Backup   Stopped    None         Created by asd\Administrator at 12/4/2021 12:25 AM

Информация о сервере

Ну и уже знакомая нам команда Get-VBRLocalhost, или вот вам готовый скрипт.

Get-VBRLocalhost

```json
Description        : Backup server
IsUnavailable      : False
Type               : Local
ApiVersion         : Unknown

Заключение

Я лишь показал каким образом вы можете получить данные для мониторинга, а то как уже доставить эти данные в систему мониторинга уже придётся решать вам самим, так как у каждого своя система мониторинга.

Могу лишь описать схему как это у меня уже работает со Splunk:

  1. Я добавил все эти скрипты в приложение (Splunk Deployment)
  2. Добавил input
  3. Создал dashboard и alerts

Если у вас агент не может запускаться от имени определённого пользователя, то вам в скриптах придётся еще добавлять подключение используя команду Connect-VBRServer. Но так как Veeam Backup and Replication ставится только на Windows то значит агент скорее всего работает как сервис, а как запустить сервис от определённого пользователя в Windows легко узнать с помощью google.

Также вы можете запускать скрипты через Execbeat и отправлять вывод в Elasticsearch. Подробнее про execbeat по ссылке.

Ну и как мне кажется самый правильный вариант — это выводить содержимое скрипта в текстовый файл и уже с него отправлять данные в систему мониторинга. Что я вскоре планирую реализовать, а может быть уже реализовал.