Citrix Virtual Apps and Desktops

Konfigurationsprotokollierung

Die Konfigurationsprotokollierung dient zum Erfassen der Sitekonfigurationsänderungen und Administratoraktivitäten in einer Datenbank. Das Feature ist in der Standardeinstellung aktiviert. Sie können den protokollierten Inhalt folgendermaßen verwenden:

  • Diagnose und Behandlung von Problemen nach Konfigurationsänderungen. Das Protokoll liefert eine Breadcrumbspur.
  • Hilfe beim Änderungsmanagement und der Nachverfolgung von Konfigurationen.
  • Bericht über Administratoraktivitäten.

Zum Festlegen der Einstellungen für die Konfigurationsprotokollierung, zum Anzeigen der Konfigurationsprotokolle und zum Generieren von HTML- und CSV-Berichten verwenden Sie Citrix Studio. Sie können die Anzeige des Konfigurationsprotokolls anhand von Datumsbereichen und Ergebnissen der Volltextsuche filtern. Ist die verbindliche Protokollierung aktiviert, verhindert sie, dass Änderungen an der Konfiguration vorgenommen werden, es sei denn diese können protokolliert werden. Mit der entsprechenden Berechtigung können Sie Einträge aus dem Konfigurationsprotokoll löschen. Sie können das Feature der Konfigurationsprotokollierung nicht zum Bearbeiten des Inhalts von Protokollen verwenden.

Die Konfigurationsprotokollierung verwendet ein PowerShell-SDK und den Konfigurationsprotokollierungsdienst. Der Konfigurationsprotokollierungsdienst wird auf jedem Controller der Site ausgeführt. Wenn ein Controller ausfällt, übernimmt automatisch der Dienst auf einem anderen Controller die Verarbeitung von Protokollanforderungen.

Standardmäßig ist die Konfigurationsprotokollierung aktiviert und verwendet die Datenbank, die zusammen mit der Site erstellt wurde (die Sitekonfigurationsdatenbank). Sie können einen anderen Speicherort für die Datenbank angeben. Die Konfigurationsprotokollierungsdatenbank unterstützt dieselben Features für hohe Verfügbarkeit wie die Sitekonfigurationsdatenbank.

Der Zugriff auf die Konfigurationsprotokollierung wird über die delegierte Administration mit den Einstellungen “Protokollierungseinstellungen bearbeiten” und “Konfigurationsprotokolle anzeigen” gesteuert.

Konfigurationsprotokolle werden bei der Erstellung lokalisiert. Beispiel: Ein auf Englisch erstelltes Protokoll wird unabhängig vom Gebietsschema des Lesers auf Englisch gelesen.

Gegenstand der Protokollierung

Konfigurationsänderungen und Administratoraktivitäten, die von Studio, Director und PowerShell-Skripts ausgehen, werden protokolliert. Beispiele protokollierter Konfigurationsänderungen sind Arbeiten (Erstellen, Bearbeiten, Löschen, Zuweisen) mit:

  • Maschinenkataloge
  • Bereitstellungsgruppen (einschließlich Ändern der Energieverwaltungseinstellungen)
  • Administratorrollen und Geltungsbereiche
  • Hostressourcen und Verbindungen
  • Citrix Richtlinien über Studio

Beispiele protokollierter Administratoraktivitäten:

  • Energieverwaltung für eine virtuelle Maschine oder einen Benutzerdesktop
  • Senden einer Nachricht an einen Benutzer von Studio oder Director aus

Die folgenden Vorgänge werden nicht protokolliert:

  • Autonome Vorgänge wie das Einschalten virtueller Maschinen per Poolverwaltung.
  • Über die Gruppenrichtlinien-Verwaltungskonsole implementierte Richtlinienaktionen; verwenden Sie Microsoft-Tools, um Protokolle dieser Aktionen anzuzeigen.
  • Über die Registrierung vorgenommene Änderungen, direkter Zugriff von der Datenbank oder von anderen Quellen als Studio, Director oder PowerShell.
  • Wenn die Bereitstellung initialisiert wird, steht die Konfigurationsprotokollierung ab dem Zeitpunkt zur Verfügung, zu dem die erste Instanz des Konfigurationsprotokollierungsdiensts sich beim Konfigurationsdienst registriert. Daher werden die frühen Phasen der Konfiguration nicht protokolliert (z. B., wenn das Datenbankschema bei der Initialisierung eines Hypervisors abgerufen und angewendet wird).

Verwalten der Konfigurationsprotokollierung

Standardmäßig wird für die Konfigurationsprotokollierung die Datenbank verwendet, die zusammen mit einer Site erstellt wird (die Sitekonfigurationsdatenbank). Citrix empfiehlt aus folgenden Gründen, einen anderen Speicherort für die Konfigurationsprotokollierungsdatenbank und die Überwachungsdatenbank zu wählen:

  • Die Backupstrategie für die Konfigurationsprotokollierungsdatenbank unterscheidet sich wahrscheinlich von der Backupstrategie für die Sitekonfigurationsdatenbank.
  • Die Menge der für die Konfigurationsprotokollierung (und den Überwachungsdienst) gesammelten Daten kann den für die Sitekonfigurationsdatenbank verfügbaren Speicherplatz zu stark limitieren.
  • Eine einzelne Fehlerquelle für die drei Datenbanken wird beseitigt (d. h. aufgeteilt).

Produkteditionen, die keine Konfigurationsprotokollierung unterstützen, haben keinen Knoten namens “Protokollierung” in Studio.

Aktivieren/Deaktivieren der Konfigurationsprotokollierung und der verbindlichen Protokollierung

Standardmäßig ist die Konfigurationsprotokollierung aktiviert und die verbindliche Protokollierung ist deaktiviert.

  1. Melden Sie sich bei Web Studio an und wählen Sie im linken Bereich Protokollierung.
  2. Wählen Sie in der Aktionsleiste Einstellungen. Das Dialogfeld “Konfigurationsprotokollierung” enthält die Datenbankinformationen und Angaben dazu, ob Konfigurationsprotokollierung und verbindliche Protokollierung aktiviert oder deaktiviert sind.
  3. Wählen Sie die gewünschte Aktion:

    Zum Aktivieren der Konfigurationsprotokollierung wählen Sie Aktivieren. Dies ist die Standardeinstellung. Wenn nicht in die Datenbank geschrieben werden kann, werden die Informationen verworfen, der Vorgang wird jedoch fortgesetzt.

    Zum Deaktivieren der Konfigurationsprotokollierung wählen Sie Deaktivieren. Wenn die Protokollierung zuvor aktiviert war, können bereits vorhandene Protokolle weiterhin mit dem PowerShell-SDK gelesen werden.

    Zum Aktivieren der obligatorischen Protokollierung wählen Sie Keine Änderungen der Sitekonfiguration ohne Datenbankzugriff. Es wird dann keine Konfigurationsänderung oder administrative Aktivität, die normalerweise protokolliert würde, zugelassen, es sei denn, sie kann in die Konfigurationsprotokollierungsdatenbank geschrieben werden. Sie können die verbindliche Protokollierung nur aktivieren, wenn die Konfigurationsprotokollierung aktiviert ist. Tritt bei dem Dienst für die Konfigurationsprotokollierung ein Fehler auf, und die hohe Verfügbarkeit wird nicht verwendet, beginnt die verbindliche Protokollierung. In solchen Fällen werden Vorgänge, die normalerweise protokolliert würden, nicht ausgeführt.

    Zum Deaktivieren der obligatorischen Protokollierung wählen Sie Änderungen der Sitekonfiguration ohne Datenbankzugriff. Konfigurationsänderungen und administrative Aktivitäten sind dann zulässig, selbst wenn kein Zugriff auf die Konfigurationsprotokollierungsdatenbank besteht. Dies ist die Standardeinstellung.

Ändern des Speicherorts für die Konfigurationsprotokollierungsdatenbank

Sie können den Speicherort der Datenbank nicht ändern, wenn die verbindliche Protokollierung aktiviert ist, da bei der Standortänderung eine kurze Trennung verursacht wird, die nicht protokolliert werden kann.

  1. Erstellen Sie einen Datenbankserver mit einer unterstützten SQL Server-Version.
  2. Melden Sie sich bei Web Studio an und wählen Sie im linken Bereich Protokollierung.
  3. Wählen Sie in der Aktionsleiste Einstellungen.
  4. Klicken Sie im Dialogfeld “Protokollierungseinstellungen” auf Protokollierungsdatenbank ändern.
  5. Geben Sie im Dialogfeld “Protokollierungsdatenbank ändern” den Speicherort des Servers mit dem neuen Datenbankserver ein. Informationen zu gültigen Formaten finden Sie unter Datenbankadressformate.
  6. Damit die Datenbank von Studio erstellt wird, klicken Sie auf OK. Wenn Sie dazu aufgefordert werden, klicken Sie auf OK und die Datenbank wird automatisch erstellt. Studio versucht, mit den Anmeldeinformationen des aktuellen Studio-Benutzers auf die Datenbank zuzugreifen. Wenn dies fehlschlägt, werden Sie zur Eingabe der Anmeldeinformationen des Datenbankbenutzers aufgefordert. Das Datenbankschema wird dann von Studio in die Datenbank hochgeladen. (Die Anmeldeinformationen werden nur während der Datenbankerstellung gespeichert.)
  7. Zum manuellen Erstellen der Datenbank klicken Sie auf Datenbankskript erstellen. Das generierte Skript enthält Anweisungen zum manuellen Erstellen der Datenbank. Stellen Sie vor dem Hochladen des Schemas sicher, dass die Datenbank leer ist und dass mindestens ein Benutzer Zugriffs- bzw. Änderungsberechtigung für die Datenbank hat.

Die Daten der Konfigurationsprotokollierung aus der älteren Datenbank werden nicht in die neue Datenbank importiert. Die Protokolle beider Datenbanken können beim Abrufen von Protokollen nicht aggregiert werden. Der erste Protokolleintrag in der neuen Datenbank für die Konfigurationsprotokollierung gibt an, dass eine Datenbankänderung stattfand; die vorherige Datenbank wird jedoch nicht identifiziert.

Anzeigen des Konfigurationsprotokolls

Beim Initiieren von Konfigurationsänderungen und bei Verwaltungsaktivitäten werden die von Studio und Director bewirkten High-Level-Operationen im oberen mittleren Bereich von Studio angezeigt. Eine High-Level-Operation führt zu mindestens einem Dienst- und SDK-Aufruf, bei dem es sich um eine Low-Level-Operation handelt. Wenn Sie eine High-Level-Operation im oberen Bereich auswählen, werden im unteren Bereich die Low-Level-Operationen angezeigt.

Schlägt eine Operation vor der Beendigung fehl, kann die Protokollierung in der Datenbank evtl. nicht abgeschlossen werden. Beispielsweise hat ein Startdatensatz dann keinen entsprechenden Stoppdatensatz. In solchen Fällen wird im Protokoll angezeigt, dass Informationen fehlen. Wenn Sie Protokolle auf Zeitbereichsbasis anzeigen, werden unvollständige Protokolle angezeigt, wenn die Daten in den Protokollen mit den Kriterien übereinstimmen. Beispiel: Wenn alle Protokolle für die letzten fünf Tage angefordert werden und ein Protokoll eine in den letzten fünf Tagen gelegene Startzeit aber keine Endzeit hat, wird dieses ebenfalls angezeigt.

Wenn Sie bei Verwendung eines Skripts zum Aufrufen von PowerShell-Cmdlets eine Low-Level-Operation erstellen ohne die übergeordnete High-Level-Operation anzugeben, wird von der Konfigurationsprotokollierung eine Ersatz-High-Level-Operation erstellt.

Zum Anzeigen des Inhalts des Konfigurationsprotokolls wählen Sie im Studio-Navigationsbereich Protokollierung. Standardmäßig wird im mittleren Bereich der Protokollinhalt chronologisch (neueste Einträge zuerst), angezeigt, wobei die Einträge durch das Datum getrennt sind. Sie haben folgende Möglichkeiten:

  • Sortieren der Anzeige nach Spaltenüberschrift.
  • Filtern der Anzeige, indem Sie ein Tagesintervall angeben oder Text in das Feld Suchen eingeben. Um nach dem Suchen zur Standardanzeige zurückzukehren, löschen Sie den Text im Feld Suchen.

Erstellen von Berichten

Sie können CSV- und HTML-Berichte mit Konfigurationsprotokolldaten generieren.

  • Der CSV-Bericht enthält alle Protokolldaten aus einem angegebenen Zeitintervall. Die hierarchischen Daten in der Datenbank werden in eine einzelne CSV-Tabelle vereinfacht. Kein Aspekt der Daten hat Vorrang in der Datei. Es wird keine Formatierung verwendet und keine Lesbarkeit angenommen. Die Datei (unter dem Namen “MyReport”) enthält die Daten in einem allgemein verwendbaren Format. CSV-Dateien werden oft für die Archivierung oder als Datenquelle für ein Tool zur Bearbeitung von Berichten oder Daten (z. B. Microsoft Excel) verwendet.
  • Der HTML-Bericht enthält Protokolldaten aus einem angegebenen Zeitintervall in lesbarem Format. Er bietet eine strukturierte Ansicht für die Prüfung auf Änderungen, durch die navigiert werden kann. Der HTML-Bericht umfasst zwei Dateien: Zusammenfassung und Details. Die Zusammenfassung enthält High-Level-Operationen mit Informationen zu Zeitpunkt, Auslöser und Ergebnis. Klicken Sie auf den Link Details neben jedem Vorgang, um zu den Low-Level-Operationen in der Detailsdatei zu navigieren, die zusätzliche Informationen bietet.

Zum Generieren eines Konfigurationsprotokollierungsberichts wählen Sie im Studio-Navigationsbereich Protokollierung und dann in der AktionsleisteBenutzerdefinierten Bericht erstellen.

  • Wählen Sie den Datumsbereich für den Bericht.
  • Wählen Sie das Berichtsformat: CSV, HTML oder beides.
  • Navigieren Sie zu dem Speicherort, an dem Sie den Bericht speichern möchten.

Löschen des Konfigurationsprotokolls

Zum Löschen des Konfigurationsprotokolls müssen Sie über bestimmte Rechte der delegierten Administration und Berechtigungen für die SQL Server-Datenbank verfügen.

  • Delegierte Administration: Sie müssen eine Rolle der delegierten Administration haben, mit der die Bereitstellungskonfiguration gelesen werden kann. Die Volladministratorrolle hat diese Berechtigung. Für eine benutzerdefinierte Rolle muss für die Kategorie “Andere Berechtigungen” “Lesen” oder “Verwalten” aktiviert sein.

    Wenn Sie ein Backup der Konfigurationsprotokolldaten vor dem Löschen anlegen möchten, muss die benutzerdefinierte Rolle in der Kategorie der Protokollierungsberechtigungen Lese- oder Verwaltungsberechtigung haben.

  • SQL Server-Datenbank: Sie müssen einen Anmeldenamen für SQL Server haben und zum Löschen von Datensätzen aus der Datenbank berechtigt sein. Dies kann mit zwei Möglichkeiten erreicht werden:

    • Verwenden Sie zur Anmeldung für die SQL Server-Datenbank die Serverrolle “sysadmin”, mit der Sie beliebige Aktivitäten auf dem Datenbankserver durchführen können. Auch die Serverrollen serveradmin oder setupadmin sind zum Löschen von Vorgängen berechtigt.

    • Wenn Ihre Bereitstellung mehr Sicherheit erfordert, verwenden Sie Anmeldeinformationen einer anderen Rolle als “sysadmin”, die einem Datenbankbenutzer zugeordnet sind, der zum Löschen von Datensätzen aus der Datenbank berechtigt ist.

      1. Erstellen Sie in SQL Server Management Studio eine SQL Server-Anmeldung mit einer anderen Serverrolle (nicht “sysadmin”).
      2. Ordnen Sie die Anmeldung einem Benutzer in der Datenbank zu. SQL Server erstellt automatisch einen Benutzer in der Datenbank mit dem gleichen Namen.
      3. Geben Sie für die Datenbankrollen-Mitgliedschaft mindestens eines der Rollenmitglieder für den Datenbankbenutzer an: ConfigurationLoggingSchema_ROLE oder dbowner.

      Weitere Informationen finden Sie in der Dokumentation zu SQL Server Management Studio.

Löschen der Konfigurationsprotokolle:

  1. Melden Sie sich bei Web Studio an und wählen Sie im linken Bereich Protokollierung.
  2. Wählen Sie in der Aktionsleiste Protokolle löschen.
  3. Sie haben nun die Möglichkeit, vor dem Löschen ein Backup der Protokolle anzulegen. Wenn Sie eine Backupdatei erstellen, navigieren Sie zu dem Speicherort, an dem diese gespeichert wird. Das Backup wird als CSV-Datei erstellt.

Nach dem Löschen der Konfigurationsprotokolle wird das Löschen des Protokolls als erste Aktivität im leeren Protokoll erfasst. Dieser Eintrag enthält Details darüber, wann und von wem die Protokolle gelöscht wurden.

API- und PowerShell-Protokolle anzeigen

Um API-Anfragen zu überwachen, die während Ihrer aktuellen Sitzung gestellt wurden, klicken Sie auf die Registerkarte APIs. API-Protokolle werden gelöscht, nachdem Sie sich von Web Studio abmelden.

Um PowerShell-Befehle anzuzeigen, die den von Ihnen im Tagesverlauf ausgeführten Benutzeroberflächenaktionen entsprechen, klicken Sie auf die Registerkarte PowerShell.

Metadaten zu Konfigurationsprotokollen zuordnen

Sie können Metadaten Konfigurationsprotokolle anfügen, indem Sie den Protokolldatensätzen das MetadataMap-Paar name-value zuordnen.

Hinweis:

  • Sie können Metadaten nur High-Level-Operation-Objekten anfügen.
  • Die Metadaten werden den vorhandenen Datensätzen zum Zeitpunkt der Ausführung zugeordnet.

Metadaten festlegen

Führen Sie den PowerShell-Befehl Set-LogHighLevelOperationMetadata aus, um einem Protokolldatensatz MetadataMap anzufügen. Set-LogHighLevelOperationMetadata hat folgende Parameter:

  • Id: ID der High-Level-Operation.
  • InputObject: High-Level-Operationen, zu denen Sie die Metadaten hinzufügen. Dies ist eine Alternative zu Parameter Id, mit dem ein High-Level-Operationsobjekt (bzw. eine Objektliste) an den PowerShell-Befehl übergeben wird.
  • Name: Eigenschaftsname der Metadaten, die hinzugefügt werden sollen. Die Eigenschaft muss für die angegebene High-Level-Operation eindeutig sein. Die Eigenschaft darf keines der folgenden Zeichen enthalten: ()/;:#.*?=<> []”’.
  • Value: Wert der Eigenschaft.
  • Map: Wörterbuch von name-value-Paaren für die Eigenschaften. Dies ist eine Alternative zum Festlegen der Metadaten mithilfe der Parameter -Name und -Value.

Führen Sie beispielsweise den folgenden PowerShell-Befehl aus, um die Metadaten an alle High-Level-Protokolldatensätze mit der ID 40 anzufügen:

Get-LogHighLevelOperation – Id 40 | Set-LogHighLevelOperationMetadata -Name A -Value B

Führen Sie den folgenden PowerShell-Befehl aus, um die Metadaten an den High-Level-Datensatz mit dem Benutzer abc@example.com anzufügen:

Get-LogHighLevelOperation – User `abc@example.com` | Set-LogHighLevelOperationMetadata -Name C -Value D

Anhand von Metadaten abrufen

Führen Sie die folgenden PowerShell-Befehle aus, um Protokolldatensätze anhand der zugehörigen Metadaten abzurufen:

  • Suche nach Schlüssel und Wert:

    Get-LogHighLevelOperation -Metadata "Key:Value"

  • Suche nach Wert eines beliebigen Schlüssels:

    Get-LogHighLevelOperation -Metadata "*:Value"

  • Suche nach Schlüssel und einem beliebigen Wert:

    Get-LogHighLevelOperation -Metadata "Key:*"

Metadaten entfernen

Führen Sie den PowerShell-Befehl Remove-LogHighLevelOperationMetadata aus, um zugeordnete Metadaten zu entfernen. Remove-LogHighLevelOperationMetadata hat folgende Parameter:

  • Id: ID der High-Level-Operation.
  • InputObject: High-Level-Operationen, zu denen Sie die Metadaten hinzufügen. Dies ist eine Alternative zu Parameter Id`, mit dem ein High-Level-Operationsobjekt (bzw. eine Objektliste) an den PowerShell-Befehl übergeben wird.
  • Name: Eigenschaftsname der Metadaten, die entfernt werden sollen. $null entfernt alle Metadaten aus dem angegebenen Objekt.
  • Map: Wörterbuch von name-value-Paaren für die Eigenschaften. Dies kann entweder eine Hashtabelle sein (erstellt mit @{“name1” = “val1”; “name2” = “val2”}) oder ein Zeichenkettenwörterbuch (erstellt mit new-object “System.Collections.Generic.Dictionary[String, String]”). Die Eigenschaften, deren Namen mit den Schlüsseln in Map übereinstimmen, werden entfernt.