Letzte Aktualisierung am 12.10.2024, 10:10:54 Uhr
Leider gibt es bisher für Paessler PRTG noch keinen Sensoren für die Sicherungssoftware Veeam Backup & Replication und deren Agenten. Daher habe ich ein bestehendes PowerShell Skript entsprechend als Grundlage genommen und um meine Anforderungen bzw. Wünsche erweitertet.
Produkte | Download Link |
Veeam Backup & Replication 10, Windows Backup Agent 4 | Link |
Veeam Backup & Replication 11 | Link |
Veeam Backup & Replication 12 | Link |
Das Skript muss im Verzeichnis auf der jeweiligen PRTG Probe unter „.\PRTG Network Monitor\Custom Sensors\EXE“ (z.B. C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXE) abgespeichert werden. Ob ihr den Dateinamen beibehaltet oder nicht wird später nicht relevant sein.
Danach in die Weboberfläche von PRTG wechseln. Falls dort noch kein Gerät für den Server, auf dem Veeam Backup & Replication installiert ist, existiert, muss dieses natürlich vorher noch angelegt werden. Anschließend einen neuen Server auf dem Gerät hinzufügen. Wichtig dabei ist, dass dieser Sensor vom Typ „Programm/Skript (Erweitert)“ ist.
Nun erscheint der Dialog für die Allgemeinen- und Sensoreinstellungen für den Neuen.
Parameter:
Als erster Parameter muss der FQDN des Veeam Servers eingetragen werden (z.B. veeam01.lab03.daniel.wydler.eu).
- Falls der FQDN im PRTG Device beim Parameter „Device Name“ bereits verwendet wird, kann die Variable „%device“ (siehe Screenshot) verwendet werden.
- Falls der FQDN anstatt bei „Device Name“ beim Parameter „IPv4 Address/DNS Name“ eingetragen ist, kann die Variable „%host“ genutzt werden.
Gerade wenn man unabhängige Veeam B&R Instanzen in seiner Landschaft hat, ist das PowerShell Skript flexibel und muss nicht unnötig oft dupliziert werden. PRTG speichert den Computernamen des übergeordneten Geräts in der Variablen %device. Das ist auch in der Dokumentation von PRTG nachzulesen.
Als zweiter Parameter muss den exakten Namen des Jobs aus der Veeam Backup & Replication Konsole eingetragen werden. Bitte die Anführungszeichen nicht vergessen. Denn meistens enthalten die Namen der Jobs Leerzeichen, weil es schöner aussieht. 😉
Sicherheitskontext:
Nach einer PRTG Probe Standardinstallation wird der dazugehörige Dienst „PRTG Probe Service“ unter dem Benutzer „Lokales System“ ausgeführt. Mit diesem Systembenutzer ist es nicht möglich über das Netzwerk eine PowerShell Remoteverbindung auf einen entfernen Server aufzubauen. Daher muss die zweite Option ausgewählt werden. In 99% der Fälle ist bereits entsprechende Zugangsdaten im übergeordneten Gerät bzw. in oberste Hierarchie konfiguriert. Denn Sensoren für Windows-Systeme (z.B. WMI) greifen auf dieselben Zugangsdaten zurück.
Sind alle Einstellungen und ein schöner Name für den Sensor vergeben, kann der Sensor über die Schaltfläche „Erstellen“ am rechten Bildschirmrand erzeugt werden.
Das Ergebnis im laufenden Betrieb sieht in meinem LAB aktuell so aus:
Der Code bzw. Sensor ist sozusagen noch BETA. Ich habe die Überarbeitung des Codes nur in meinem LAB getestet, da ich zurzeit keinen Zugriff auf eine größere Umgebung habe. Somit würde ich mich natürlich freuen, wenn sich weitere Tester finden lassen. Viel Spaß beim Ausprobieren.
Hi Daniel
Vielen Dank für das Script.
Leider bekomme ich auch die Meldung:
„Job wurde mit Warnungen ausgefuehrt. (Job ist bisher nicht gelaufen.)“ In Veeam steht der Job aber ganz normal auf Success.
Gibt es da schon eine Lösung?
Das Backup ist auf ein QNAP NAS eingerichtet.
VEEAM Version: 12.1.2.172
PRTG probe service: V24.2.96.1346
PRTG Administration Tool: V24.2.96.1346
Gruss
Alex
Hallo Alex,
um welche Art von Job handelt es sich in deinem Fall?
Bitte probiere es einmal mit dieser Version.
Gruß,
Daniel
Hi Daniel
Cooles Skript 🙂
Funktioniert es auch mit Veeam B&R v12?
Ich erhalte vom PRTG immer die Meldung „Job noch nicht gelaufen“, wenngleich der Job im Veeam erfolgreich verarbeitet wurde.
Wenn ich das Skript auf dem BR Server (der zugleich auch die PRTG Remote Probe beherbergt) ausführe, erhalte ich einen XML Output, welcher die Job-Details anzeigt (Job Status „0“).
Gibt es hier einen Workaround?
Viele Grüsse
David
Hallo David,
bei welcher Art von Veeam Job (Disk, Tape) tritt das Problem auf?
Grüße,
Daniel
Hi Daniel,
habe gerade das gleiche mit v12. Bei mir ist es ein CopyJob, der diese fälschliche Meldung auswirft.
TapeJob und normaler HyperV BackupJob funktionieren.
Hallo Patrick,
entschuldige meine späte Antwort. Meine Testumgebung musste ich erst auf Vordermann bringen. Ich möchte dir vorab eine neue Version zum Testen bereitstellen. Schreib mir dazu bitte eine E-Mail an die Adresse im Impressum.
Gruß,
Daniel
Hallo,
erst mal Danke für das Script.
Ich bekomme (sowohl bei Ausführung in Powershell, als auch bei Einrichtung des Sensors im PRTG) die Rückmeldung, „Job wurde mit Warnungen ausgefuehrt. (Job ist bisher nicht gelaufen.)“ In Veeam steht der Job aber ganz normal auf Success.
Ich führe Veeam B&R in Version 11.0.1.1261 und PRTG auf Version 22.1.75.1594 aus.
Der Backup Job sichert virtuelle Maschinen per VMWare vCenter Server auf rotierende USB-Platten (also kein Tape-Job)
Irgend eine Idee, woran das liegen könnte?
Guten Abend Lucas,
es gab in letzter Zeit ein paar Änderungen. Bitte probiere daher eine ältere Version des Skripts aus.
Um ausschließen zu können, ob es daran (nicht) liegt.
Gruß,
Daniel
Hallo,
in der Version vom 6.1.2022 bekomme ich einen Syntaxfehler in Zeile 224, statt einem Bindestrich wurde ein Gedankenstrich bei ComputerName verwendet.
falsch:
$objQueryResult = Invoke-command –ComputerName $PrtgDevice -Args $VeeamBRJobName -ScriptBlock {
so funktioniert es:
$objQueryResult = Invoke-command -ComputerName $PrtgDevice -Args $VeeamBRJobName -ScriptBlock {
Hallo Stefan,
vielen Dank für den Hinweis.
Ich habe die Korrektur mit der heutigen Version vorgenommen.
Gruß,
Daniel
Hallo zusammen,
für alle die zusätzlich noch Tape Jobs überwachen wollen, müssen folgende Zeilen ergänzt werden:
### Ueberpruefung, ob es bei dem Jobname um ein Backup & Replication Tape Objekt handelt.
elseif (Get-VBRTapeJob -Name $strVeeamBackupJobName -ErrorAction SilentlyContinue) {
### Auslesen des letzten Ausfuehrungsergebnis vom dem angegebenen Veeam Backup Job
$strVeeamBackupJobId = Get-VBRTapeJob -Name $strVeeamBackupJobName
$obVBRSession = Get-VBRSession -Job $strVeeamBackupJobId | Sort -Descending -Property „CreationTime“ | Select -First 1
}
Hallo Steven,
vielen Dank Dank das du deine Erweiterung des Skripts veröffentlicht hast.
Wenn du dafür einen Pull Request auf Github erstellst, übernehme ich diesen gerne in den master Branch.
Gruß,
Daniel
Hallo Steven,
herzlichen Dank für deinen PR.
Ich habe diesen so eben übernommen.
Gruß,
Daniel
Das Script funktioniert soweit sehr gut, leider können die Backup to Tape Jobs nicht ausgelesen werden.
Hallo Daniel,
ich habe leider kein Zugriff auf eine Veeam Umgebung mit Tape Jobs. Daher bin ich auf euch angewiesen, um an die notwendigen Details zu kommen. Wenn du Interesse hast, melde dich per E-Mail bei mir.
Gruß,
Daniel
Hallo Daniel,
seit heute unterstützt das Skript auch Tape Jobs.
Gruß,
Daniel
Hallo Daniel, vielen Dank für das Script!
Wenn ich dieses auf dem PRTG Server direkt ausführe läuft es ohne Probleme und es wird ein xml als Ergebnis angezeigt jedoch wenn es über den Sensor läuft bekomme ich folgende Fehlermeldung:
„XML: Das zurückgelieferte XML entspricht nicht dem erwarteten Schema. (Code: PE233) — JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (#O2). (Code: PE231)“
Ich habe folgende PRTG-Version im Einsatz: 21.4.73.1656+
Wäre super wenn du mir helfen könntest.
Danke im Voraus
Christian
Guten Abend Christian,
welche Version von Veeam Backup&Replication setzt du ein?
hast du evtl. Leerzeichen o.ä., welche du in den Sensoreinstellungen nicht in Anführungszeichen gesetzt hast?
Hat der Benutzer bzw. PRTG Probe nicht das Recht, um auf dem Remote Server das PowerShell Skript auszuführen?
Gruß,
Daniel
Guten Abend Daniel,
1) Veeam Backup & Replication 11 Community Edition (11.0.1.1261 P20211211)
2) Nein, die Parameter-Zeile sieht so aus: %host „Daily-Backup with Guestprocessing“
3) Die Berechtigung müsste passt, denn sonst könnte ich es direkt vom PRTG-Server aus auch nicht ohne Fehler ausführen und ich verwende in den Sensoreinstellungen die selben Logindaten wie wenn ich mich direkt am PRTG-Server anmelde.
Lg
Christian
Hallo Christian,
ich kann das Problem ad-hoc bei mir nicht nachstellen.
2) Funktioniert die Abfrage über PRTG, wenn du den Namen des Veeam Jobs im Skript hart kodierst?
3) In dem Fall beim Sensor einstellen, dass das Ergebnis auf gespeichert werden soll. Evtl. siehst du dort weitere Gründe, warum es nicht klappt.
Gruß,
Daniel
Hallo Daniel, entschuldige bitte die späte Rückmeldung. Ich konnte den Fehler finden. Das hart kodieren des Backupjobs hat nichts gebracht, jedoch konnte ich anhand des gespeicherten Sensorergebnisses dann herausfinden woran es lag. Nur so viel – Es lag nicht an deinem Script, Windows hatte die Powershell Ausführungsrichtlinien nicht sauber übernommen. Obwohl ich das Script am PRTG Server selbst sauber ausführen konnte und die Ausführungsrichtlinien lt. Powershell auch richtig waren hat es über den Sensor nicht funktioniert. Habe dann die ganzen Richtlinien nochmals zurückgesetzt und diese dann nicht über die Powershell gesetzt sondern über die GPO und dann hat es funktioniert.… Weiterlesen »
Hallo Antonio,
hast du entsprechend die Konfiguration vorgenommen, dass PowerShell Remote ausführbar sind? Es gibt dazu von Microsoft einen Artikel.
Gruß,
Daniel
Hallo,
leider gibt mir das Script immer nur folgendes aus:
1 # (Job Result) liegt über dem Grenzwert für Warnungen von 0 # in Job Result. Job wurde mit Warnungen ausgefuehrt. (Job ist bisher nicht gelaufen.)
Eine Idee woran das liegen könnte ? Wir nutzen Veeam in der Version 11
LG
Hallo, erst einmal vielen herzlichen Dank für die Arbeit. Nun habe ich, nachdem ich ein „Update“ des Scripts auf die hier aktuell veröffentlichte Version reichlich Terror gehabt, es lief nicht. Vorher habe ich das alte Script zu Sicherung kopiert. Dateien nach dem Terror wieder getauscht, Server sogar neu gestartet, nun erscheint folgender Fehler: „Antwort nicht wohlgeformt: „(<prtg> <error>1</error> <text>Das Windows PowerShell-Snap-In „VeeamPSSnapIn“ ist auf diesem Computer nicht installiert.</text> </prtg> )“ (Code: PE132)“Credentials sind korrekt, mehrfach getestet, was dann andere Fehler auswirft.SnapIn ist auf den entsprechenden Backupservern natürlich installiert, hier hat sich auch nichts geändert.Einzig auf dem PRTG-Server habe ich die… Weiterlesen »
Und nachdem ich nun den Sensor erneut angelegt habe erscheint folgender Fehler:
XML: Das zurückgelieferte XML entspricht nicht dem erwarteten Schema. (Code: PE233) — JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (No mapping for the Unicode character exists in the target multi-byte code page). (Code: PE231)
Ziemlich ratlos….
Hallo Geert,
führe das Skript einmal manuell über die PowerShell mit dem ensprechenden Jobname auf der Probe aus. Wird in der Ausgabe ein Fehler o.ä. ausgegeben?
Gruß,
Daniel
Hallo,
erstmal vielen Dank für das Script. Ich habe es auf 2 Probes laufen, die auch gleichzeitig unsere Backup Server sind – dort funktioniert es einwandfrei.
Wenn ich jedoch versuche von einer Probe die Jobs eines anderenServers abzufragen, wo Veeam drauf läuft, bekomme ich ebenfalls den unten genanten XML Fehler: XML: The returned xml does not match the expected schema. (code: PE233) — JSON: The returned json does not match the expected structure (Invalid JSON.). (code: PE231)
Gibt es dafür bereits eine Lösung – muss ich etwas anders konfigurieren?
Danke im voraus!
LG Gerrit
Hallo Gerrit,
Veeam hat leider in einer der letzten Versionen (ich vermute mit 10.x) ein paar Änderungen vorgenommen ohne das großartig zu publizieren. Das habe ich in den letzten Tagen mit Hilfe von Christian überarbeitet und erweitert. Die neue Version des PowerShell Skripts gerade hochgeladen. Ich freue mich auf dein Feedback.
Gruß,
Daniel
Hallo Daniel, super Arbeit die du hier veröffentlichst! Leider bekomme ich immer ein Problem in Zeile 299 beim ausführen vom Script: Get-Date : Der Parameter „Date“ kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von „Date“: „NULL kann nicht in den Typ „System.DateTime“ konvertiert werden.“ In Zeile:299 Zeichen:45 + … ut += „`t<text>Start: „+ $(get-date $QueryResult.CreationTime -Format … + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (:) [Get-Date], ParameterBindingException + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand Aus dem PRTG heraus bekomme ich dann den Error: XML: Structural error in xml file, 1 open items. — JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (Invalid… Weiterlesen »
Hallo Christian,
um den Fehler eingrenzen zu können, sind weitere Informationen notwendig.
a) Hast du das Skript via git kopiert oder manuell via Copy & Paste? Falls letzteres zutrifft, hast du das RAW Output genutzt?
b) Führe das Skript manuell direkt auf dem Veeam Server aus. Nicht vergessen die Variablen zu übergeben.
Gruß,
Daniel
Hallo Daniel,
ich habe von Git via Raw Output ein Copy&Paste gemacht. Versuche damit in dem Veeam Server direkt in der PS ISE das kopierte auszuführen, dann fragt er mich nach Servername und Jobname und nach einiger Zeit kommt dann der Fehler
Gruß
Hallo Christian,
hm. Falls der Jobname Leerzeichen enthält, diesen bitte in Anführungszeichen („) setzen.
Falls es daran auch nicht liegt, lass mir einmal von der Job Übersicht aus der Veeam Console und von der Fehlermeldung in der PowerShell per E-Mail zu kommen. Bitte anoymisieren nicht vergessen. 😉
Gruß,
Daniel
Hallo Daniel,
habe es jetzt mal komplett händisch versucht und festgestellt das warum auch immer das snapin gar nicht geladen werden kann. Jetzt muss ich hier erstmal nach dem Fehler suchen gehen.
Guten Abend Christian,
okay. Halte uns bitte auf dem Laufenden. So kann ich die Ursache auch im meinem PowerShell abfangen und eine Fehlermeldung ausgeben.
Gruß,
Daniel
Vielen Dank für deine Arbeit, ich erhalten jedoch folgende Fehlermeldung:
Antwort nicht wohlgeformt: „(<?xml version=“1.0″ encoding=“utf-8″ standalone=“yes“?> <prtg> <result> <channel>Job Result</channel> <value>0</value> <unit>Count</unit> <limitmaxwarning>0</limitmaxwarning> <limitmaxerror>1</limitmaxerror> <limitwarningmsg>Job wurde mit Warnungen ausgefuehrt.</limitwarningmsg> <limiterrormsg>Job wurde mit Fehler ausgefuehrt.</limiterrormsg> <limitmode>1</limitmode> </result> <result> <channel>LaufzeitHour</channel> <value>0</value> <unit>Custom</unit> <customunit>Std.</customunit> </result> <result> <channel>LaufzeitMinutes</channel> <value>46</value> <unit>Custom</unit> <customunit>Min.</customunit> </result> <result> <channel>LaufzeitSeconds</channel> <value>28</value> <unit>Custom</unit> <customunit>Sek.</customunit> </result> <result> <channel>Job BackupSize</channel> <value>674450432</value> <unit>Custom</unit> <volumesize>GigaByte</volumesize> </result> <result> <channel>Job DataSize</channel> <value>3168868120</value> <unit>Custom</unit> <volumesize>GigaByte</volumesize> </result> <result> <channel>Job DedupRatio</channel> <value>98</value> <unit>Custom</unit> </result> <result> <channel>Job CompressRatio</channel> <value>21</value> <unit>Custom</unit> </result> <text>Start: 04.02.2021 12:00:16, Ende: 04.02.2021 12:46:44</text> </prtg> )“ (Code: PE132)
Was mache ich falsch ?
Guten Abend Matthias,
hast du den Quellcode vor dem Abspeichern in PowerShell Skript einmal über den Editor kopiert? So dass alle Formatierungen verloren gehen. Es gab schon öfters Probleme mit den Anführungszeichen, dass diese nicht korrekt dargestellt wurden.
Gruß,
Daniel
Hi, erst einmal: Geniale Arbeit! Vielen Dank hierfür. Ich hatte dasselbe Problem und konnte es lösen, indem ich den erweiterten Sensor verwendet habe. Vielleicht hilft es ja :-).
Viele Grüße!
Guten Abend Jens,
vielen Dank für den Hinweis. Da ist mir doch glatt ein Fehler im Screenshot unterlaufen.
Ich habe den Screenshot gerade ausgetauscht.
Gruß,
Daniel
Gibt es hier mittlerweile eventuell eine Möglichkeit Backup to Tape Jobs abzubilden ?
Hallo Marco,
das ist grundsätzlich möglich. Ich habe allerdings keinen Zugriff auf eine Umgebung, in der Tape Jobs existieren. Daher bin ich auf euch angewiesen, um an die notwendigen Details zu kommen. Wenn du Interesse hast, melde dich per E-Mail bei mir.
Gruß,
Daniel
Hallo Marco,
seit heute unterstützt das Skript auch Tape Jobs.
Gruß,
Daniel
Hi, zuerst besten Dank für dein Script!
Lässt sich das erweitern damit im jeweiligen Job auch die Channels mit den Informationen über „Size“ „Machines“ enthalten sind?
Der Channel „Execution Time“ – woher kommt diese Zeit? Die Zeit für den Job ist es jedenfalls nicht.
Vielen Dank und Gruss
Hallo Stefan,
was verstehst du unter „Size Machines“? Geht es dir um das übertragene Datenvolumen? Letztes habe ich heute mit einer neuen Version meines Skripts für Veeam Backup & ReplicationJobs implementiert.
Der Channel „Execution Time“ kommt vom PRTG Sensor. Dieser gibt an, wie lange das PowerShell gelaufen ist.
Gruß,
Daniel
Hallo zusammen, ich habe das Problem, dass Windows Agents Backup Jobs (über Veeam Backup & Replication konfiguriert) nicht erkannt werden.
Ich bekomme als Ausgabe immer „der Jobs ist noch nie gelaufen“, ob dieser Job genauso wie die anderen Jobs regelmäßig läuft. Somit steht der Sensor auf Warnung.
Woran könnte das liegen?
Hallo Alina,
ich habe heute eine neue Version des Skripts veröffentlicht. Bitte teste, ob damit dein obengeschriebenes Problem gelöst ist. Ich freue mich auf deine Rückmeldung.
Gruß,
Daniel
Hallo und guten Morgen.
Vielen Dank für die Mühen um das Script.
Leider habe ich folgendes Problem:
Wir setzen Veeam in der aktuellsten Version (10.irgendwas) ein. PRTG ebenfalls in der aktuellsten Version.
Wir haben etliche Jobs, die gemonitort werden möchten. Der erste klappt. Jeder weitere angelegte Sensor sagt mir, das es den Job nicht geben würde, obwohl er Namenstechnisch genau so im Veeam zu finden ist.
Vielleicht eine „Korrektur“…es handelt sich wohl ausschließlich um Jobs, auf denen die Dasi auf Tape katapultiert werden soll…lt.Veeam erfolgreich, lt. dem Script gibt es diese Jobs wohl nicht.
Danke und Gruß
Hallo, das liegt daran, dass ich keine Möglichkeit habe und hatte um das Skript für Tape Jobs zu erweitern. Im Artikel habe ich anfangs aufgezählt, welche Arten von Jobs aktuell unterstützt werden. Ich würde mich natürlich freuen, wenn du das Skript entsprechend ergänzt. Dann nehme ich die Änderungen gerne auf. Gruß Daniel
DER war gut…könnte ich PS, wäre ich sicher in der Lage, nur noch vom heimischen Office aus zu arbeiten und würde Geld verdienen…;-). Schade…;-(…sehr schade…;-(. Aber vielleicht gibt es eine Antwort auf die Frage, wieso die Sensoren für die anderen Jobs liefen und dann, nach ca. 30 Minuten, in den Fehlerstatus gingen mit der Meldung: „[[ Bestätigt 5/18/2020 12:39:36 PM von gbadm bis 5/19/2020 12:39:36 PM ]]: Ihre Abfrage hat die erlaubte Zeit überschritten. Abhängig vom verwendeten Sensortyp könnte der Grund dafür sein, dass der Sensor sich nicht mit dem Zielsystem verbinden konnte oder dass ein PowerShell-Skript zu lange für… Weiterlesen »
Es war meinerseits keinenfalls als Vorwurf gemeint. Das Skript ist in meiner Freizeit entstanden, verdiene damit kein Geld und PowerShell habe ich mir über die letzten zwei Jahre im Selbststudium gelernt. Daher kann ich nur Szenerarien testen, welche ich mit Hilfe von VMs nachstellen kann. Funktioniert das Skript bzw. Abfrage, wenn du a) das PowerShell Skript manuell auf der PRTG Probe Server ausführst? b) das PowerShell Skript manuell auf dem Veeam B&R Server ausführst? c) für den Sensor in den Einstellungen einmal die Option „Ergebnis der EXE-Abfrage auf Datenträger schreiben“ aktivierst. Evtl. siehst anschließend in den Logfiles für den Sensor… Weiterlesen »
Hallo Geert,
seit heute unterstützt das Skript auch Tape Jobs.
Gruß,
Daniel
Mit der %device Variable hat es bei uns nicht funktioniert, da wir im PRTG dem Device auch noch eine Beschreibung anfügen. Wird jedoch hinter dem Job die %host Variable mitgegeben, funktioniert es 🙂
Hallo Urs, vielen Dank für den Hinweis. Ich habe dies oben korrigiert. Gruß Daniel
Hallo Daniel,
erst mal Danke für Script. Backupjob Abfrage funktioniert super. (Veeam Backup & Replication 9.5.4)
Was nicht funktioniert ist Abfrage von „Copy Job“ und „Backup to Tape“.
Ich erhalte eine Fehlermeldung „Systemfehler: Der Job hat einen unbekannten Status. 12.01.2020 00:00 (Code: PE022)“
Obwohl Job lauft täglich und hat Status „Success“
Heutige Datum ist 15.01.2020 14:30
Gibt es eine Lösung dafür?
Vielen Dank
Dimi
Hallo Dimi,
ich habe heute eine neue Version des Sensors hochgeladen. Meine Tests mit „Copy Job“ waren soweit erfolgreich. Backup to Tape kann ich leider nicht testen. Gerne kannst du dich per E-Mail bei mir melden, wenn du mir die notwendigen Daten bereitstellen möchtest.
Gruß,
Daniel
Hallo Dimi,
seit heute unterstützt das Skript auch Tape Jobs.
Gruß,
Daniel
Hi, wenn ich den Sensor einrichte kommt als Nachricht, Der Job ist noch nie gelaufen, obwohl er letzte Nacht gelaufen ist.
Was kann dafür die Ursache sein?
Hallo Christian,
handelt es sich bei dem Job um a) einem Windows/Linux Agent; b) Backup von VMs auf ein Tape/CIFS; c) Backup von VMs via Storage Integration? Sonst tu ich mir etwas schwer, dass Problem nachzustellen.
Gruß,
Daniel
Hi,
es handelt sich bei 2 Jobs um einen Windows Agent Job und um einen Hyper-V Backup Job.
Gruß
Christian
Guten Abend Christian,
ich konnte das Problem heute morgen nachstellen. Ich habe eine neue Version des Skripts hochgeladen. Bitte versuche es noch einmal.
Gruß,
Daniel
Hi,
Muss der Backupserver in der Domain sein? Was denn wenn nicht? Wir haben den bewusst rausgelassen und mit anderen Accounts als den Domänen-Accounts versehen.
LG
Alexander
Hallo Alexander,
nein, muss er nicht unbedingt. Wichtig ist, dass du in den Einstellungen des Geräts einen separaten Benutzer angibst, der auf dem Server in der lokalen Benutzerverwaltung exististiert. Ausprobiert habe ichin der Praxis allerdings nicht. Denn die Problematik tritt bei einem Admin-Tiering-Modell eigentlich nicht mehr auf. 😉
Grüße,
Dani
Hallo,
funktioniert super für Jobs der VMs für Backup&Replication.
Leider funktioniert das Skript nicht für unsere (managed) Endpoint Backups.
Als Ergebnis bekommen wir immer:
!! Sensor Veeam Backup Job ………..
Systemfehler: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorld : InvokeMethodOnNull + PSComputername : „Unser Backupserver“: (Code: PE022)
Wir haben Veeam B&R 9.5 U4 im Einsatz.
Danke und viele Grüße
Rüdiger
Hallo Rüdiger,
ich habe heute Vormittag versucht das beschriebene Problem im Lab nachzustellen. Hier hat das Auslesen eines Jobs von Veeam Entpoint Backup (Windows) problemlos funktioniert. Könnte es sein, dass du evtl. die Anführungszeichen in den Einstellungen -> Parameter für den Sensor vergessen hast?!
Gruß,
Dani
Habe nochmal nachgeschaut. die Anführungszeichen sind bei allen Endpoint Jobs gesetzt.
VG
Rüdiger
Hallo Rüdiger,
welche Version von Veeam Entpoint Backup habt ihr im Einsatz?
Gruß,
Dani
Die Version ist die 3.0.1.1039.
Allerdings habe ich jetzt herausgefunden, dass die Abfragen nur
bei den managed Agents fehlschlagen.
Jetzt habe ich mal einen unmanaged Agent getestet und dort funktioniert alles prima.
Viele Grüße
Rüdiger
Guten Abend Rüdiger,
hmm… wie definierst du (Un)managed. Bei mir wird der Veeam Agent im B&R angzeigt. Die Konfiguration wird aber über den Agent auf der jeweiligen VM gepflegt.
/Dani
Hi, cooles Skript!
Unter Nachricht habe ich beim Sensor immer die Anfangszeit des Jobs stehen. Würde nicht die Endzeit sinnvoll sein?
Danke auf jeden Fall!
lg
Hallo Zusammen,
Kann mir jemand sagen, wo ich den besagten Code für die Abfrage des Endpoint-Backups finde? Vielleicht täuschen mich meine Augen, aber ich finde nichts.
Danke für das B&R Script, funktioniert einwandfrei.
Moin,
das Powershellskript kann sowohl für B&R und Veeam Agent genutzt werden. Einfach den Jobnamen angeben. Das Skript prüft den Typ und handelt entsprechend.
Hallo!
Ist ja alles schon etwas älter, aber das Script wäre für mich super…
Leider läuft es bei mir nicht…
der Sensor zeigt einen Fehler:
Zugriff verweigert. Bitte überprüfen Sie Ihre Windows-Zugangsdaten. (Code: PE095)
Habe alle möglichen, Formen ausprobiert. Geht aber nicht…
Hat einer eine Idee??
Vielen Dank!
Moin!
alle beteiligten Maschinen sind in der Domäne?
Ist der angegebene Benutzer für den Sensor/Gerät auf dem Veeam B&R Server in der lokalen Gruppe „Administratoren“?
Welche Meldung erhältest du, wenn du das Powershellskript manuell auf dem Veeam bzw. PRTG ausführst?
Hallo Daniel
Vielen Dank für das Skript!
Lieber Gruss
Poik
Ich kriege es nicht ans Laufen 🙁
Folgenden Fehler erhalte ich immer: Systemfehler: Keine Verbindung zu veeam.domain.local möglich! (Code: PE022)
Wobei veeam.domain.local an dieser Stelle nur ein Platzhalter ist.
Führe ich es manuell auf der Powershell (x86) aus, funktioniert das Skript.
Hast du den Sicherheitskontext für den Sensor wie oben geändert?
Ja, das habe ich getan. Kommt aus auf die Schreibweise in den „Zugangsdaten für Windows Systeme“ an?
domain.local oder DOMAIN.local oder DOMAIN.LOCAL
administrator oder Administrator?
Bei einigen Systemen konnte ich hier bereits Unterschiede verzeichnen. Bei PRTG habe ich damit noch keine Erfahrungen.
Eigentlich nicht… ich habe die Daten wie folgt angegeben:
– Domänenname als NETBIOS (lab01)
– Benutzername alles klein
Der Benutzer, den du dort angibst, muss natürlich das Recht haben, sich am Zielsystem anmelden zu dürfen um das Skript überhaupt ausführen zu dürfen. Anschließend muss in Veeam selber (Users und Roles) der selbe Benutzer eingepflegt werden und der Gruppe Veeam Backup Viewer zugeordnet sein.
Am Besten auf dem PRTG CORE-Server eine Powershell mit dem entsprechenden Windowsbenutzer starten und dann nochmal manuell versuchen das PS-Skript laufen zu lassen.
Super Script, danke!
Wie sieht es mit der Überwachung ob ein Job gelaufen ist aus?
Sprich wenn der Job alle 6h laufen soll, aber bereits 2 Tage nicht läuft – bleibt es grün, weil der letzte Run vor zwei Tagen ok war?
Gäbe es eine Möglichkeit den Schedule auszulesen und dann das Creation Date in ein Verhältnis zu setzen?
Danke,
Gruss Patrick
Hallo Patrick,
das Skript prüft bisher ausschließlich das Result des letzten Jobs.
Dein beschriebenes Szenario kann meiner Meinung nur eintreten, wenn der Job in Veeam deaktiviert wurde. In allen anderen Fällen (z.B. Sicherungsziel nicht erreichbar) müsste unter History ein Job angelegt worden sein.
Gerne darfst du mir dein Szenario genauer schildern. Evtl. übersehe ich auch Anwendungsfall.
Gruß,
Daniel
Müsste es nicht auch möglich sein via Script alle Veeam Jobs abzufragen?
So das als Output für PRTG so etwas steht:
0:Job1:07.09.2016 22:00
1:Job2:07.09.2016 22:10
0:Job3:07.09.2016 22:50
Würde dann doch Sensoren sparen. 🙂
Hallo, sehr schön das Script, besten Dank. Anstelle von &device habe ich den Servernamen in Quota direkt rein geschrieben, funktioniert auch. So konnte ich die Sektion in PRTG ungleich dem Rechnernamen setzen, Nur am Rande. Meine Frage, wie stelle ich es an, dass ich auch die Windows „Agent“ Jobs überwachen kann? Beispiel: Ich habe einen physikalischen Server auf dem ich Veeam Endpoint Backup Free installiert mit der Install Option in das Repository. Im Veeam Backup and Replikation (V9.5) sehe ich auch die Jobs und den Status. Bekomme auch die passenden Mails und zwar vom Veeam Server. Auf der Seite des… Weiterlesen »
Hallo Normen,
die Anführungszeichen habe ich deshalb angegeben um bei Verwendung von Leerzeichen bei der Namensgebung der Veeam Jobs evtl. Fehler des Powershellkripts zu eliminieren.
Das Problem ist dass der Powershellbefehl Get-VBRJob aus dem Toolkit solche Jobs nicht ausgibt. Auf diesem Befehl basiert das ganz Skript. Daher habe ich den Artikel um ein zweites Powershell-Skript hinzugefügt um Entpoint-Jobs zu überwachen.
Gruß,
Daniel
Ich habe heute mein Skript soweit erweitert, dass mit ein und dem selben Skript sowohl B&R als auch Entpoint Backup Jobs abgefragt werden können.
Hallo und Vielen Dank für das Script! nachdem ich einen Fehler in Zeile 41 „Writ-Host“ statt „Write-Host“ —8<— ElseIf ($Args.Count -eq 1) { Writ-host "Die Variable %device ist nicht angegeben!" exit 2; –8<– beseitigt hatte, leider noch das Problem, daß der String %device zu folgendem LOG führt: — 8 < — SERVERNAME : Die Benennung "SERVERNAME" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. In Zeile:1 Zeichen:274 + … SRV01.TEC.DOM (SERVERNAME); exit $LASTEXITCODE +… Weiterlesen »
Hallo Joe,
vielen Dank erstmal für den Hinweis. Ich habe den Buchstaben im Skript ergänzt.
Hast du in der ersten Zeile im Skript „<#" stehen? Denn "Servername" kommt nur im ersten Absatz welcher eigentlich als Kommentar gedacht ist, vor.
Hi Daniel,
danke für dein Script. Allerdings bekomme ich immer die Meldung das „Zu viele Argumente übergeben! (Code: PE022)“.
Hallo Tim,
poste doch einmal die Einstellungen den Sensors. Hast du bei Parameter den Job in Anführungszeichen gepackt?
Hallo,
kann man mit diesem Script nur jeweils einen Job überwachen, oder gibt es auch eine
Möglichkeit mehrere Backupjobs mit unterschiedlichen Namen zu überwachen?
Vielen Dank
Hi,
das Skript überwacht jeweils einen Job. Sprich du kannst in PRTG mehrere Sensoren einrichten und somit verschiedene Veeam Jobs überwachen.
Hallo,
das Script verursacht bei einem laufenden Job eine Fehlermeldung. Erst wenn der Job einwandfrei gelaufen ist, steht der Sensor wieder auf grün. Ebenfalls können keine Jobs mit Sonderzeichen (Klammern z.B.) angesprochen werden.
Danke für Deine Hilfe
Hallo Thorsten,
ich habe das Skript um den Status erweitert. Läuft ein Job noch so wird dieser im PRTG zukünftig „grün“ markiert. Bezüglich der Sonderzeichen müsste ich wissen, welche du nutzt um es nachstellen zu könne.
Gruß,
Daniel
Auch hier das gleiche Problem:
XML: The returned xml does not match the expected schema. (code: PE233) — JSON: The returned json does not match the expected structure (Invalid JSON.). (code: PE231)
Wir setzen Veeam in der Version 9.0.0.1715 Update 2 ein.
Die Ausführung über die Powershell ist über den Veeam-Server und über die Powershell auf dem PRTG-Server erfolgreich.
Die Ausgabe sieht je nach Jobverlauf unter anderem in der Powershell so aus:
0:07.09.2016 22:00
Das Skript liegt im richtigen Verzeichnis (C:\PRTG\Customer Sensors)? Somit muss der Sensortyp „Programm/Skript“ ausgewählt werden. Wenn das passt, würde ich im nächsten Schritt das Ergebnis des Sensors in eine Logfile schreiben lassen. Dazu in den Einstellungen des Sensors zur Option „EXE-Ergebnis“ scrollen und „Ergebnis der EXE-Abfrage auf Datenträger schreiben (Dateiname: „Result of Sensor [ID].txt“) “ aktivieren. Danach den Sensor manuell prüfen. Das Ergebnis wird standardmäßig nach C:\ProgramData\Paessler\PRTG Network Monitor\Logs (Sensors) geschrieben. Was steht dort in der Protokolldatei?
Hallo
ich wollt mal Frage ich kriege bei den Einstellungen wie hier auf der Seite immer wieder XML: The returned xml does not match the expected schema. (code: PE233) — JSON: The returned json does not match the expected structure (Invalid JSON.). (code: PE231)
Kann mir jemand da helfen?
Moin,
welche Veeam-Version setzt du ein? Was wird ausgegeben, wenn du das Skript direkt auf dem Veeam-Server in der Powershell manuell startest?
Hi Robin,
darüber habe ich mir bis jetzt keine Gedanken gemacht…. der Blog ist primär als elektronisches Notizbuch gedacht.
Das Skript darf selbstverständlich auch kommerziell genutzt werden. Verbesserungsvorschläge und Patches gerne via Mail oder hier als Kommentar posten. Ich werde versuchen zeitnah die sinnvollen Änderungen einfließen zu lasssen.
Hi Daniel,
Veeam habe ich bisher noch nicht überwacht aber dein Skript sieht schon mal vielversprechend aus. Vielen Dank für den Blog Beitrag. Unter welcher Lizenz steht den das Skript? (Für die Nutzung und das schreiben von Patches nicht ganz unerheblich).