Maintain control of your Microsoft 365 data
Post Reply
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht » 2 people like this post

Hello,

For anyone who uses PRTG and VBO:

I've created a PRTG Advanced monitor for Veeam Backup Office 365. You can download it here: https://gist.github.com/BasvanH

Kind regards,
Bastiaan
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
Mike Resseler
Product Manager
Posts: 8044
Liked: 1263 times
Joined: Feb 08, 2013 3:08 pm
Full Name: Mike Resseler
Location: Belgium
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Mike Resseler »

Bastiaan!

Thank you very much! That's really cool and I am sure many out there will benefit from it!

Cheers
Mike
jorgedlcruz
Veeam Software
Posts: 1355
Liked: 613 times
Joined: Jul 17, 2015 6:54 pm
Full Name: Jorge de la Cruz
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by jorgedlcruz »

This is awesome Bastiaan,
Thank you so much, PRTG it is vastly used out there, so having a sensor for VBO it is indeed what much people are expecting.

Appreciated!
Jorge de la Cruz
Senior Product Manager | Veeam ONE @ Veeam Software

@jorgedlcruz
https://www.jorgedelacruz.es / https://jorgedelacruz.uk
vExpert 2014-2024 / InfluxAce / Grafana Champion
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

I spotted an issue with the statistics.transferredData value of a session. Apperently it's a string with a changing prefix multiplier. I needed to implement some logic to bring this back to workable integer. Would make sense if the API would return something like statistics.transferredDataBytes with an integer in bytes.

Or
statistics.transferredData : 234234
statistics.transferredDataMultiplier : KB

The script has been updated to parse the string to an integer.
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
Polina
Veeam Software
Posts: 2939
Liked: 681 times
Joined: Oct 21, 2011 11:22 am
Full Name: Polina Vasileva
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Polina »

Bastiaan,

This will be fixed in the next version. You may want to check out this recent thread for more details.
DDIT
Expert
Posts: 147
Liked: 28 times
Joined: Oct 29, 2015 5:58 pm
Full Name: Michael Yorke
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by DDIT »

Hello,

Many thanks for sharing your script with the community. I am a Veeam and PRTG users, so very interested in this.

However, I'm stuck during the setup. I have enabled the REST API and assinged an SSL cert. In Instructions say....

In parameters set: -username "%windowsdomain\%windowsuser" -password "%windowspassword" -apiUrl "https://<url-to-vbo-api>:443"

Some questions...
  1. What is the "url-to-vbo-api"? is it just my Veeam server? I have Enterprise Manager running on the same box, so is the URL the same? ie https://backup.company.com:443
  2. What is the port? Your instructions suggest 443, but the default REST API port is 4443 - I have Enterprise Manager running on 443, so I left my settings on 4443, which is what I have set for the parameter in PRTG also
  3. Instructions say "make sure the correct permissions are set in VBO for this user" - where do I set this in VBO? I don't see any fields for entering a REST API user account
Sorry for these dumb questions.
Thanks in advance.
Michael.
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

1) Its the url to your Veeam Backup for Office 365 API. Its the server where you installed VBO, if this happen to be the same server as your VBR, then use that URL.
2) The default API port of VBO is indeed 4443, if you have left it default, use that port.
3) VBO doesnt have RBAC or user management, you need a windows based user which has permission to logon to the server. VBO's documentation isn't very clear on what windows permissions are exactly needed. Just try a local\domain administrator first, if that succeeds try removing permissions.
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

I've did a small fix on the script. If you had large transferred data, the integer got to long for an int32.
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
dr.action
Service Provider
Posts: 16
Liked: 2 times
Joined: Sep 17, 2013 8:53 am
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by dr.action »

....will you provide a v3 version from your really great script, too?
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht » 1 person likes this post

Yes certainly, will start with it as soon as we've updated to v3. Expect within 2 weeks.
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht » 3 people like this post

I've updated the script to be compatible with VBO v3.

https://gist.github.com/BasvanH/2229ca0 ... db36d7bc5c
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
dr.action
Service Provider
Posts: 16
Liked: 2 times
Joined: Sep 17, 2013 8:53 am
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by dr.action »

Will you release an v4 update too...?
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

Well, we moved to other monitoringssoftware. So I can alter the script, but can't debug it anymore. Does is work on VBO v10 ?
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
dr.action
Service Provider
Posts: 16
Liked: 2 times
Joined: Sep 17, 2013 8:53 am
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by dr.action »

I use it only with PRTG and Backup Office 365.
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

VBO is the acronym for Veeam Backup for Office 365. But I made a mistake with the version, as the latest is v4. Does it work from PRTG to VBO v4? Or do you get errors?
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
dfehse
Influencer
Posts: 14
Liked: 1 time
Joined: Aug 15, 2013 7:51 am
Full Name: Daniel Fehse
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by dfehse » 1 person likes this post

tried to use it with latest version of v4 of VBO and I get the error "The underlying connection was closed: Could not establish
trust relationship for the SSL/TLS secure channel". Is this script working wiht this version of VBO? O
Mike Resseler
Product Manager
Posts: 8044
Liked: 1263 times
Joined: Feb 08, 2013 3:08 pm
Full Name: Mike Resseler
Location: Belgium
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Mike Resseler »

Gents,

VBO is version 5 already. Are we sure we are talking about the correct version?
Gaetan
Lurker
Posts: 1
Liked: never
Joined: Jan 18, 2021 3:46 pm
Full Name: Gaetan M
Location: Lyon - France
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Gaetan »

dfehse wrote: Feb 03, 2021 5:50 pm tried to use it with latest version of v4 of VBO and I get the error "The underlying connection was closed: Could not establish
trust relationship for the SSL/TLS secure channel". Is this script working wiht this version of VBO? O
I have the same issue on v5
Mike Resseler
Product Manager
Posts: 8044
Liked: 1263 times
Joined: Feb 08, 2013 3:08 pm
Full Name: Mike Resseler
Location: Belgium
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Mike Resseler »

@Gaetan
I'm afraid that only @b.vanhaastrecht might have an idea
FHFHFH
Lurker
Posts: 1
Liked: 2 times
Joined: Feb 25, 2021 3:34 pm
Full Name: Frank H
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by FHFHFH » 2 people like this post

I tried to fix some problems to allow running the script with V5.
I'm not very familiar with Powershell so please check before using it.
Certificate errors will be ignored. If you don't want this remove the lines between the ###############################################################...

Thanks

Code: Select all

<#
    .SYNOPSIS
    PRTG Veeam Backup for Office 365 (v3) Advanced Sensor.
  
    .DESCRIPTION
    Advanced Sensor will Report Job status, job nested status, repository statistics and proxy status.

    - If not already done, enable the the API in VBO https://helpcenter.veeam.com/docs/vbo365/rest/enable_restful_api.html?ver=20
    - On your probe, add script to 'Custom Sensors\EXEXML' folder
    - In PRTG, on your probe add EXE/Script Advanced sensor
    - Name the sensor eg: Veeam Backup for Office 365
    - In the EXE/Script dropdown, select the script
    - In parameters set: -username "%windowsdomain\%windowsuser" -password "%windowspassword" -apiUrl "https://<url-to-vbo-api>:443"
        - This way the Windows user defined on the probe is used for authenticating to VBO API, make sure the correct permissions are set in VBO for this user
    - Set preferred timeout and interval
    - I've set some default limits on the channels, change them to your preferred levels
	
    .NOTES
    For issues, suggetions and forking please use Github.
   
    .LINK
    https://github.com/BasvanH
    https://gist.github.com/BasvanH
 #>

param (
    [string]$apiUrl = $(throw "<prtg><error>1</error><text>-apiUrl is missing in parameters</text></prtg>"),
    [string]$username = $(throw "<prtg><error>1</error><text>-username is missing in parameters</text></prtg>"),
    [string]$password = $(throw "<prtg><error>1</error><text>-password is missing in parameters</text></prtg>")
)

$vboJobs = @()
$vboRepositories = @()
$vboProxies = @()

###############################################################

add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

###############################################################


#region: Authenticate
$url = '/v5/Token'
$body = @{
    "username" = $username;
    "password" = $password;
    "grant_type" = "password";
}
$headers = @{
    "Content-Type"= "multipart/form-data"
}

$jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Post -UseBasicParsing

Try {
    $result = ConvertFrom-Json($jsonResult.Content)
    $accessToken = $result.access_token
} Catch {
    Write-Error "Error authentication result"
}
#endregion

#region: Get VBO Jobs
$url = '/v5/Jobs?limit=1000000'
$headers = @{
    "Content-Type"= "multipart/form-data";
    "Authorization" = "Bearer $accessToken";
}
$jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Get -UseBasicParsing

Try {
    $jobs = ConvertFrom-Json($jsonResult.Content)
} Catch {
    Write-Error "Error in jobs result"
}
#endregion

#region: Loop jobs and process session results
ForEach ($job in $jobs) {
    # Sessions
    $url = '/v5/Jobs/' + $job.id + '/JobSessions'
    $headers = @{
        "Content-Type"= "multipart/form-data";
        "Authorization" = "Bearer $accessToken";
    }
    $jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Get -UseBasicParsing

    Try {
        $sessions = ConvertFrom-Json($jsonResult.Content)
    } Catch {
        Write-Error "Error in jobsession result"
    }

    # Skip session currently active or user aborted, get last known run status
    if ($sessions.results[0].status.ToLower() -in @('running', 'queued', 'stopped')) {
        $session = $sessions.results[1]
    } else {
        $session = $sessions.results[0]
    }

    # Log items
    $url = '/v5/JobSessions/' + $session.id + '/LogItems?limit=1000000'
    $headers = @{
        "Content-Type"= "multipart/form-data";
        "Authorization" = "Bearer $accessToken";
    }
    $jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Get -UseBasicParsing

    Try {
        $logItems = ConvertFrom-Json($jsonResult.Content)
    } Catch {
        Write-Error "Error in logitems result"
    }

    # Log items to object
    $sCnt = 0;$wCnt = 0;$fCnt = 0

    ForEach ($logItem in $logItems.results) {
        Switch -wildcard ($logItem.title.ToLower()) {
               '*success*' {$sCnt++}
               '*warning*' {$wCnt++}
               '*failed*' {$fCnt++}
               '*stop*' {$fCnt++}
        }
    }

    Switch -wildcard ($session.status.ToLower()) {
               '*success*' {$jobStatus = 0}
               '*warning*' {$jobStatus = 1}
               '*failed*' {$jobStatus = 2}
               default {$jobStatus = 3}
    }

    # Thank you Veeam for fixing this!
    $transferred = $session.statistics.transferredDataBytes

    $myObj = "" | Select Jobname, Status, Start, End, Transferred, Success, Warning, Failed
			    $myObj.Jobname = $job.name
                $myObj.Status = $jobStatus
                $myObj.Start = Get-Date($session.creationTime)
                $myObj.End = Get-Date($session.endTime)
                $myObj.Transferred = $transferred
                $myObj.Success = $sCnt
                $myObj.Warning = $wCnt
                $myObj.Failed = $fCnt

    $vboJobs += $myObj
}

#region: VBO Repositories
$url = '/v5/BackupRepositories'
$headers = @{
    "Content-Type"= "multipart/form-data";
    "Authorization" = "Bearer $accessToken";
}
$jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Get -UseBasicParsing

Try {
    $repositories = ConvertFrom-Json($jsonResult.Content)
} Catch {
    Write-Error "Error in repositories result"
}

ForEach ($repository in $repositories) {
    $myObj = "" | Select Name, Capacity, Free
			    $myObj.Name = $repository.name
                $myObj.Capacity = $repository.capacityBytes
                $myObj.Free = $repository.freeSpaceBytes
    
    $vboRepositories += $myObj
}
#endregion

#region: VBO Proxies
$url = '/v5/Proxies'
$headers = @{
    "Content-Type"= "multipart/form-data";
    "Authorization" = "Bearer $accessToken";
}
$jsonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $headers -Method Get -UseBasicParsing

Try {
    $proxies = ConvertFrom-Json($jsonResult.Content)
} Catch {
    Write-Error "Error in proxies result"
}

ForEach ($proxy in $proxies) {
    $myObj = "" | Select Name, Status
			    $myObj.Name = $proxy.hostName
                $myObj.Status = $proxy.status
    
    $vboProxies += $myObj
}
#endregion

#region: Jobs to PRTG results
Write-Host "<prtg>"
ForEach ($job in $vboJobs) {
    $channel = "Job - " + $job.Jobname + " - Status"
    $value = $job.Status
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>One</unit>"
               "<showChart>0</showChart>"
               "<showTable>1</showTable>"
               "<LimitMaxWarning>1</LimitMaxWarning>"
               "<LimitMaxError>2</LimitMaxError>"
               "<LimitMode>1</LimitMode>"
               "</result>"
    
    $channel = "Job - " + $job.Jobname + " - Runtime"
    $value = [math]::Round(($job.end - $job.start).TotalSeconds)
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>TimeSeconds</unit>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "</result>"

    $channel = "Job - " + $job.Jobname + " - Transferred"
    $value = [long]$job.Transferred
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>BytesDisk</unit>"
               "<VolumeSize>Byte</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "<LimitMinWarning>20971520</LimitMinWarning>"
               "<LimitMinError>10485760</LimitMinError>"
               "<LimitMode>1</LimitMode>"
               "</result>"

    $channel = "Job - " + $job.Jobname + " - Success"
    $value = $job.Success
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>Count</unit>"
               "<VolumeSize>One</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "</result>"

    $channel = "Job - " + $job.Jobname + " - Warning"
    $value = $job.Warning
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>Count</unit>"
               "<VolumeSize>One</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "<LimitMaxWarning>10</LimitMaxWarning>"
               "<LimitMaxError>20</LimitMaxError>"
               "<LimitMode>1</LimitMode>"
               "</result>"

    $channel = "Job - " + $job.Jobname + " - Failed"
    $value = $job.Failed
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>Count</unit>"
               "<VolumeSize>One</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "<LimitMaxWarning>1</LimitMaxWarning>"
               "<LimitMaxError>2</LimitMaxError>"
               "<LimitMode>1</LimitMode>"
               "</result>"
}

#region: VBO Reposities to PRTG results
ForEach ($repository in $vboRepositories) {
    $channel = "Repository - " + $repository.Name + " - Capacity"
    $value = $repository.Capacity
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>BytesDisk</unit>"
               "<VolumeSize>GigaByte</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "</result>"
    
    $channel = "Repository - " + $repository.Name + " - Free"
    $value = $repository.Free
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<unit>BytesDisk</unit>"
               "<VolumeSize>GigaByte</VolumeSize>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "<LimitMinWarning>1073741824</LimitMinWarning>"
               "<LimitMinError>536870912</LimitMinError>"
               "<LimitMode>1</LimitMode>"
               "</result>"
}
#endregion

#region: VBO Proxies to PRTG results
ForEach ($proxy in $vboProxies) {
    $channel = "Proxy - " + $proxy.Name + " - Status"
    $value = [int]($proxy.Status -like "*Online*")
    Write-Host "<result>"
               "<channel>$channel</channel>"
               "<value>$value</value>"
               "<customunit>Status</customunit>"
               "<showChart>1</showChart>"
               "<showTable>1</showTable>"
               "<LimitMinError>0</LimitMinError>"
               "<LimitMode>1</LimitMode>"
               "</result>"
}
#endregion
Write-Host "</prtg>"
Mike Resseler
Product Manager
Posts: 8044
Liked: 1263 times
Joined: Feb 08, 2013 3:08 pm
Full Name: Mike Resseler
Location: Belgium
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Mike Resseler »

Thanks for doing this @FHFHFH

And welcome to our community forums !
Wasome15
Lurker
Posts: 2
Liked: never
Joined: Apr 21, 2021 9:37 am
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Wasome15 »

Hey there Bastiaan,

Loving your script so far.
however, we've run into a little snag and we can't seem to find a proper solution.
We have a master and slave PRTG server.
The master server is reading out the info without a problem.
The slave server however dosnt seem to read out any info, giving us the following error:
"
The file you want to monitor cannot be found. To resolve this issue, use a file system activity monitoring tool to check if your sensor tries to access a locked or hidden file. Also check if the file exists on the computer your local or remote probe is running on. Enter the full local path. UNC paths are not allowed. (code: PE008)
"
It seems to not be able to create or readout the info the script collects. I can't find it in the script itself, but i dont see how or where the script writes away it's info for PRTG to be read.
Could you please tell me where the script is supposed to dump this info, i think we would be able to troubleshoot from there.

Thanks in advance!
Wasome15
Lurker
Posts: 2
Liked: never
Joined: Apr 21, 2021 9:37 am
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Wasome15 »

Nevermind, we've found the problem lies in our failover monitoring server.
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht »

The script has been updated to work with v5, you can download it here: https://gist.github.com/BasvanH/2229ca0 ... db36d7bc5c
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
A.Rogers
Enthusiast
Posts: 32
Liked: 12 times
Joined: Jan 08, 2021 5:05 pm
Full Name: Alan Rogers
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by A.Rogers »

Thanks for sharing!
SITSAGCH
Novice
Posts: 3
Liked: never
Joined: Nov 08, 2022 2:37 pm
Full Name: SITS AG Support
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by SITSAGCH »

Hi,

Thx for Sharing!
Actually i'm new to Monitoring and tried to Add it to, but i get always some Errors.
Not Sure what the Default Api URL i should use?

I Use this URL, API Post configured is 4443
https://xxxx.xxxx-xxxx.xx:4443

I get this error:
201 Invoke-WebRequest : Unable to connect to the remote server At line:45 char:15 + ... sonResult = Invoke-WebRequest -Uri $apiUrl$url -Body $body -Headers $ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Any suggestions?
Do i have to Configure the Restore Portal to?

BR
vito
Mildur
Product Manager
Posts: 8549
Liked: 2223 times
Joined: May 13, 2017 4:51 pm
Full Name: Fabian K.
Location: Switzerland
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Mildur »

Hi vito

Do you have enabled the Veeam Backup for Microsoft 365 Rest API service?
https://helpcenter.veeam.com/docs/vbo36 ... tml?ver=60

If that is no help, please open a case with our support.
They cannot help for the custom script. But they wil help you to check if the VB365 RestAPI is working correctly.

Thanks
Fabian
Product Management Analyst @ Veeam Software
dfehse
Influencer
Posts: 14
Liked: 1 time
Joined: Aug 15, 2013 7:51 am
Full Name: Daniel Fehse
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by dfehse »

Hi
does the last relase version of the script on github also supports V6 of VBO? If so, I always get this error: XML: Das zurückgelieferte XML entspricht nicht dem erwarteten Schema. (Code: PE233) -- JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (Invalid JSON.). (Code: PE231). Any Idea?
Thx
Polina
Veeam Software
Posts: 2939
Liked: 681 times
Joined: Oct 21, 2011 11:22 am
Full Name: Polina Vasileva
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by Polina »

Hi Daniel,

From the comments on Github, it seems that the script has not been updated to v6. And since this script is a community effort, it'd be best to add your request for updating on Git.

Thanks!
b.vanhaastrecht
Service Provider
Posts: 833
Liked: 154 times
Joined: Aug 26, 2013 7:46 am
Full Name: Bastiaan van Haastrecht
Location: The Netherlands
Contact:

Re: PRTG Advanced monitor for Veeam Backup Office 365

Post by b.vanhaastrecht » 1 person likes this post

Hi,

Actually, the script is updated to v6. If you have any issues, please consult the comments on gist or post your question there. We will help you out.

Regards,
Bastiaan
======================================================
Veeam ProPartner, Service Provider and a proud Veeam Legend
Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests