Einen Arcserve UDP-Check konfigurieren

Richte den Arcserve UDP-Check auf dem Konsolenserver ein: SQL-Instanz finden, Lesezugriff auf die Konsolendatenbank geben und den Check hinzufügen.

Einen Arcserve UDP-Check konfigurieren

Der Arcserve UDP-Check liest die Konsolendatenbank von Arcserve UDP und meldet den Backup-Zustand jedes geschützten Knotens an einer Stelle: wie alt der neueste Recovery Point ist, wie viele Recovery Points existieren, das Ergebnis des letzten Backup-Jobs und wie viel Platz am Backup-Ziel noch frei ist. Ein Check deckt deine gesamte UDP-Landschaft ab — auf den geschützten Knoten selbst installierst du nichts.

Weil der Check mit SQL Server spricht und nicht mit Arcserve, passiert fast die gesamte Einrichtung auf der Datenbankseite: die richtige SQL-Instanz finden und dem Check Lesezugriff geben. Darum geht es in diesem Artikel. Die Schwellenwerte stehen im Check-Editor selbst, und Schritt 3 weiter unten erklärt, was jeder von ihnen tut.

Den Agent auf dem Konsolenserver installieren

Das ist die Entscheidung, die bei diesem Check die meiste Zeit kostet — triff sie also zuerst. Der Check braucht einen Netzwerkweg zu der SQL Server-Instanz, die die Datenbank arcserveUDP hält, und ein Login, das daraus lesen darf — eine Arcserve-Rolle auf dem Gerät, auf dem er läuft, erkennt oder verlangt er nicht. In der Praxis ist die Maschine mit der Arcserve UDP Console der richtige Ort dafür, denn der mitgelieferte Standardwert localhost\ARCSERVE_APP zeigt auf das Gerät, auf dem der Check läuft, und bei einer Standardinstallation liegt diese Instanz auf der Konsole. Geräte, die wie Kandidaten aussehen, es aber nicht sind:

  • ein geschützter Knoten. Knoten führen einen UDP-Agent aus, die Konsolendatenbank liegt aber nicht dort
  • ein Recovery Point Server, der nicht zugleich die Konsole ist, falls du diese Rollen auf mehrere Maschinen verteilt hast — aus demselben Grund
  • jedes Gerät ohne Netzwerkweg zur SQL-Instanz, falls deine Konsolendatenbank auf einen separaten SQL Server verschoben wurde

Liegt die Konsolendatenbank tatsächlich auf einem separaten SQL Server, brauchst du auf diesem Datenbankserver keinen Agent. Belasse den Check auf dem Konsolenhost (oder auf einem beliebigen Windows-Gerät, das die Instanz erreicht) und richte ihn über den Hostnamen auf die Datenbank.

Voraussetzungen

  • Arcserve UDP Console auf einem Windows-Server installiert
  • Der octoja-Agent auf einem Windows-Gerät installiert — üblicherweise ist das der Konsolenserver selbst, der Check verlangt auf dem Gerät, auf dem er läuft, aber keine Arcserve-Rolle. Er wird nur für Windows veröffentlicht, ein Linux- oder macOS-Agent erhält ihn also nie
  • Netzwerkzugriff vom Agent zu der SQL Server-Instanz mit der Konsolendatenbank
  • Ein Login, das drei Tabellen in dieser Datenbank lesen darf (wird weiter unten angelegt)
  • Ein octoja-Konto mit der Berechtigung Monitoring-Check-Verwaltung — sie ist nötig, um einem Gerät einen Check hinzuzufügen

Schritt 1 — Die SQL-Instanz finden

Der Check wird mit den Werten ausgeliefert, die eine Standardinstallation von Arcserve UDP erzeugt: Instanz localhost\ARCSERVE_APP, Datenbank arcserveUDP. Viele Installationen brauchen hier gar keine Änderung — prüfe es trotzdem, statt es anzunehmen, denn ein falscher Instanzname bedeutet, dass der Check die Datenbank nie erreicht. Geht es schief, zeigt das Ergebnis den rohen Fehlertext von SQL Server, ein falscher Instanzname und ein Rechteproblem lesen sich also unterschiedlich — die Tabelle unter Fehlerbehebung trennt beides.

Liste auf dem Konsolenserver die installierten SQL Server-Instanzen auf:

Get-Service 'MSSQL*' | Select-Object Name, DisplayName, Status

Eine benannte Instanz läuft als Dienst mit dem Namen MSSQL$<instance>, der Teil nach dem $ ist also der Instanzname — MSSQL$ARCSERVE_APP zu sehen bestätigt, dass der Standardwert des Checks stimmt. Die unbenannte Standardinstanz ist die Ausnahme: Der zugehörige Dienst heißt schlicht MSSQLSERVER, ohne $ und ohne Instanznamen.

Was du gefunden hastWas du als SQL-Instanz einträgst
MSSQL$ARCSERVE_APP auf dem Konsolenserverlocalhost\ARCSERVE_APP — der Standard, nichts zu ändern
Eine anders benannte lokale Instanz, z. B. MSSQL$SQLEXPRESSlocalhost\SQLEXPRESS
Ein Dienst, der schlicht MSSQLSERVER heißtlocalhost — dieser Dienst ist die unbenannte Standardinstanz, die kein Backslash-Suffix hat
Kein SQL-Dienst auf dem Konsolenserver (Datenbank liegt woanders)SQLHOST\INSTANCE, oder SQLHOST,1433, um den Port direkt anzusprechen

Bestätige dann den Datenbanknamen auf dieser Instanz. Arcserve nennt sie arcserveUDP:

SELECT name FROM sys.databases ORDER BY name;

Eine benannte Instanz auf einem anderen Server. Um SQLHOST\INSTANCE zu erreichen, muss der Client die Instanz zu einem TCP-Port auflösen, wofür normalerweise der Dienst SQL Server Browser auf dem Datenbankhost laufen muss. Läuft er nicht und kannst du ihn nicht starten, trage die Instanz als Host, Komma, Port ein — zum Beispiel SQLHOST,1433 — und überspringe die Auflösung ganz.

Schritt 2 — Dem Check Lesezugriff geben

Der Check liest ausschließlich. Er führt ein einziges SELECT gegen drei Tabellen der Konsolendatenbank aus: dbo.as_edge_host, dbo.as_edge_host_d2dStatusInfo und dbo.as_edge_recovery_point_summary. Er schreibt nie, und er fasst die Arcserve-Konfiguration nie an.

Wähle eine der beiden Optionen unten und führe die Anweisungen auf der Konsoleninstanz mit einem Konto aus, das Logins anlegen darf (ein SQL Server-sysadmin).

Option A — Windows-Authentifizierung

Lässt du SQL-Benutzername und SQL-Passwort leer, verbindet sich der Check mit der Identität des octoja-Agent-Dienstes. Unter Windows läuft dieser Dienst als LocalSystem, was SQL Server als das Login NT AUTHORITY\SYSTEM sieht. In octoja muss nichts gespeichert werden, und es gibt kein Passwort zu rotieren.

USE master;
IF SUSER_ID('NT AUTHORITY\SYSTEM') IS NULL
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;
GO

USE arcserveUDP;
IF USER_ID('NT AUTHORITY\SYSTEM') IS NULL
    CREATE USER [NT AUTHORITY\SYSTEM] FOR LOGIN [NT AUTHORITY\SYSTEM];
GO

GRANT SELECT ON dbo.as_edge_host TO [NT AUTHORITY\SYSTEM];
GRANT SELECT ON dbo.as_edge_host_d2dStatusInfo TO [NT AUTHORITY\SYSTEM];
GRANT SELECT ON dbo.as_edge_recovery_point_summary TO [NT AUTHORITY\SYSTEM];

Das ist die einfachste Option, wenn Agent und SQL Server auf derselben Maschine liegen. Unhandlich wird sie, wenn nicht: Über das Netzwerk authentifiziert sich LocalSystem als Computerkonto (DOMAIN\CONSOLESERVER$), du müsstest die Rechte also stattdessen diesem Konto geben. Nimm für eine entfernte Konsolendatenbank Option B.

Option B — ein eigenes SQL-Login

Lege ein Login an, das nur für octoja existiert. Das funktioniert unabhängig davon, wo die Datenbank liegt, und du kannst das Passwort rotieren, ohne den Agent anzufassen.

USE master;
CREATE LOGIN octoja_udp_monitor
    WITH PASSWORD = N'ReplaceThisWithAStrongPassword', CHECK_POLICY = ON;
GO

USE arcserveUDP;
CREATE USER octoja_udp_monitor FOR LOGIN octoja_udp_monitor;
GO

GRANT SELECT ON dbo.as_edge_host TO octoja_udp_monitor;
GRANT SELECT ON dbo.as_edge_host_d2dStatusInfo TO octoja_udp_monitor;
GRANT SELECT ON dbo.as_edge_recovery_point_summary TO octoja_udp_monitor;

Ein SQL-Login funktioniert nur, wenn die Instanz SQL Server-Authentifizierung akzeptiert, also im gemischten Modus läuft. Meldet der Check „Login failed for user“, während dich dieselbe Instanz mit einem Windows-Konto bereitwillig hereinlässt, ist der gemischte Modus das, was du prüfen solltest.

Warum nicht einfach db_datareader? Das Login dieser Rolle hinzuzufügen ist eine Zeile kürzer und funktioniert auch — aber es gewährt Lesezugriff auf jede Tabelle der Konsolendatenbank, einschließlich der Knoten- und Zielkonfiguration. Die drei Grants oben sind genau das, was der Check liest, und nicht mehr.

Schritt 3 — Den Check hinzufügen

  1. Stelle sicher, dass der octoja-Agent auf dem Arcserve UDP-Konsolenserver installiert ist.
  2. Geh zu Geräte und öffne diesen Server.
  3. Klicke auf den Reiter ChecksCheck hinzufügenArcserve UDP.
  4. Lass Zu überwachende Knoten leer, um jeden Knoten zu überwachen, den die Konsole kennt. Das ist für die meisten Installationen die richtige Einstellung — neue Knoten werden automatisch erfasst. Fülle das Feld nur aus, wenn du eine Teilmenge willst, und trage die Namen dann so ein, wie die UDP-Konsole sie anzeigt. Beim Abgleich sind Groß- und Kleinschreibung sowie umgebende Leerzeichen egal, die Schreibweise aber nicht.
  5. Passe Backup-Alter-Warnung (Stunden), Backup-Alter kritisch (Stunden) und Ziel-Speicherplatz-Warnung (GB) an, wenn deine Backup-Fenster von den Standardwerten (26, 50 und 50) abweichen. Beide Alterswerte werden gegen das Alter des neuesten Recovery Points eines Knotens gemessen — Warnung beim ersten, Kritisch beim zweiten. Der Speicherplatzwert wird mit dem verglichen, was am Backup-Ziel des Knotens übrig ist, und 0 schaltet diesen Alarm ab. Der Editor zeigt Hilfetext unter dem Warnungsfeld und unter dem Speicherplatzfeld, aber nicht unter Backup-Alter kritisch (Stunden).
  6. Schalte Erweiterte Optionen anzeigen ein und trage die oben ermittelten Verbindungsdaten ein.
  7. Klicke auf Check hinzufügen.
Erweitertes FeldWas einzutragen ist
SQL-InstanzDie Instanz aus Schritt 1. Standard localhost\ARCSERVE_APP
DatenbankDie Konsolendatenbank. Standard arcserveUDP
SQL-Benutzername / SQL-PasswortFür Option A (Windows-Authentifizierung) beide leer lassen. Trage für Option B das angelegte Login ein
Abfrage-Timeout (Sekunden)Standard 30. Das Feld nimmt jede Zahl an, der Agent begrenzt den verwendeten Wert aber auf den Bereich 10 bis 300. Erhöhe ihn nur, wenn der Check auf einer großen Konsole tatsächlich einen Timeout meldet

Was löst einen Alarm aus?

Jeder überwachte Knoten wird für sich bewertet, und das schlechteste Knotenergebnis wird zum Status des Checks.

BedingungSchweregrad
Die Konsolendatenbank ist nicht erreichbar oder nicht abfragbar (falsche Instanz, Anmeldung fehlgeschlagen, fehlende SELECT-Berechtigung). Der SQL-Fehler steht im ErgebnisFehler
Die Abfrage wird nicht rechtzeitig fertigFehler
Die Datenbank enthält überhaupt keine KnotenWarnung
Ein unter Zu überwachende Knoten gelisteter Knoten existiert in der Konsole nichtWarnung
Ein Knoten wurde noch nie gesichertKritisch
Ein Knoten hat keine Recovery PointsKritisch
Der letzte Backup-Job eines Knotens ist fehlgeschlagenKritisch
Der letzte Backup-Job eines Knotens endete in einem anderen, nicht erfolgreichen ZustandWarnung
Der neueste Recovery Point eines Knotens ist älter als die kritischen StundenKritisch
Der neueste Recovery Point eines Knotens ist älter als die Warnungs-StundenWarnung
Das Backup-Ziel eines Knotens ist nicht erreichbarKritisch
Der freie Speicherplatz am Ziel eines Knotens liegt unter dem GB-SchwellenwertWarnung
Jeder überwachte Knoten ist sauberOK

Fehlerbehebung

Was im Ergebnis stehtWas das meistens bedeutet
Ein SQL-Fehler, der den Server oder Netzwerkinstanzen erwähntDer Wert unter SQL-Instanz lässt sich nicht auflösen. Führe den Befehl Get-Service aus Schritt 1 erneut aus und probiere bei einer entfernten benannten Instanz die Form SQLHOST,1433
Ein SQL-Fehler über eine fehlgeschlagene Anmeldung oder eine verweigerte BerechtigungDie Grants aus Schritt 2 wurden nicht angewendet, wurden auf die falsche Datenbank angewendet oder — bei Option B — die Instanz erlaubt keine SQL-Authentifizierung
„Keine Knoten in der Arcserve UDP-Datenbank gefunden.“Die Abfrage lief und kam leer zurück: Die Konsole enthält keine geschützten Knoten. Ein falscher Wert unter Datenbank erzeugt diese Meldung nicht — er erzeugt stattdessen einen SQL-Fehler
„Konfigurierter Knoten … wurde in der UDP-Konsole nicht gefunden.“Ein Name unter Zu überwachende Knoten passt nicht. Kopiere ihn aus der UDP-Konsole oder leere das Feld, um alles zu überwachen
„Arcserve UDP-Abfrage nach … abgelaufen.“Erhöhe Abfrage-Timeout (Sekunden). Eine Konsole mit sehr langer Recovery-Point-Historie braucht länger für die Zusammenfassung

Tipps

  • Der Check läuft alle 60 Minuten. Dieses Intervall ist vom Check fest vorgegeben und lässt sich im Editor nicht ändern — was zum Backup-Monitoring passt, denn der Backup-Zustand ändert sich im Takt eines Backup-Fensters und nicht im Minutentakt.
  • Setze Ziel-Speicherplatz-Warnung (GB) auf 0, um diesen Alarm abzuschalten. Das lohnt sich bei deduplizierenden Zielen oder Cloud-Zielen, wo der gemeldete freie Speicherplatz keine aussagekräftige Zahl ist.
  • Das Alter eines Knotens wird ab dem neuesten Recovery Point gemessen und ersatzweise ab der letzten Backup-Startzeit, wenn kein Recovery Point erfasst ist — ein Job, der startet und nie einen Wiederherstellungspunkt erzeugt, altert also trotzdem aus.
  • Betreibst du mehr als eine UDP-Konsole, installiere den Agent auf jedem Konsolenserver und füge pro Konsole einen Check hinzu. Um dieselben Einstellungen auf einmal überall auszurollen, packe den Check in ein Konfigurationspaket, statt ihn Gerät für Gerät hinzuzufügen.
  • Halte das Login nur lesend. Der Check hat keinen Schreibpfad, ein breiterer Grant bringt also nichts und vergrößert nur, was ein abhandengekommener Zugangsdatensatz preisgibt.

Nach dem ersten Check-Intervall erscheint das Ergebnis im Reiter Checks des Geräts: eine Liste der aktuellen Probleme, gefolgt von einer Zeile pro Knoten mit dem Alter des neuesten Recovery Points, der Anzahl seiner Recovery Points und dem freien Speicherplatz an seinem Ziel.

Siehe auch: Checks · Checks mit Konfigurationspaketen zuweisen