Freigeben über


Verwalten des IIS-Protokolldateispeichers

von Jim van de Erve

Sie können den Serverspeicherplatz, den IIS-Protokolldateien (Internetinformationsdienste) nutzen, mithilfe von Komprimierung, Remotespeicher und Löschung per Skript verwalten.

Übersicht

Die von IIS generierten Protokolldateien können mit der Zeit viel Speicherplatz belegen. Protokolle können möglicherweise eine vollständige Festplatte füllen. Um dieses Problem zu beheben, deaktivieren viele Benutzer und Benutzerinnen die Protokollierung komplett. Glücklicherweise gibt es Alternativen dazu, z. B. die folgenden:

Die oben genannten Ausgleichsmaßnahmen werden in den folgenden Abschnitten beschrieben. Sie können auch folgende Maßnahmen ergreifen, um die Datenträgernutzung zu steuern:

  • Beschränken der Protokollgröße durch Weglassen nicht benötigter Eigenschaftsfelder
  • Erstellen separater Protokolle für Websites und Anwendungen
  • Schonen der Speicherressourcen mithilfe einer zentralisierten binären Protokollierung

Weitere Informationen finden Sie unter Konfigurieren der Protokollierung in IIS.

Aktivieren der Ordnerkomprimierung

IIS-Protokolldateien werden auf etwa 2 Prozent ihrer Originalgröße komprimiert. Aktivieren Sie die Komprimierung einer Protokolldatei wie folgt. Dieses Verfahren können Sie nur als Administrator/Administratorin ausführen.

  1. Klicken Sie in der Symbolleiste auf das Symbol Datei-Manager.
  2. Wechseln zum Ordner mit den IIS-Protokolldateien (standardmäßig %SystemDrive%\inetpub\logs\LogFiles).
  3. Klicken Sie mit der rechten Maustaste auf den Ordner, und klicken Sie anschließend auf Eigenschaften.
  4. Klicken Sie auf der Registerkarte Allgemein der Seite Eigenschaften auf Erweitert.
  5. Klicken Sie auf Inhalt komprimieren, um Speicherplatz zu sparen und dann auf OK. Enabling compression
  6. Klicken Sie auf Übernehmen, und wählen Sie dann aus, ob nur der Ordner oder der Ordner, die Unterordner und die zugehörigen Dateien komprimiert werden sollen.
  7. Klicken Sie auf OK. Stellen Sie sicher, dass der Ordnerinhalt komprimiert wurde. Die Namen des Ordners und der einzelnen Dateien sollten blau gefärbt sein, und die Größe einer Komprimierungsdatei sollte kleiner sein.

Dies ist eine einfache Möglichkeit, die Datenträgernutzung zu verringern. Es handelt sich jedoch nicht um eine endgültige Lösung, da die Datenträgernutzung mit der Zeit weiter wächst und schließlich die Festplatte füllen könnte.

Wenn der Ordner bereits eine erhebliche Menge an Daten enthält, kann es eine Weile dauern, bis der Computer den Inhalt komprimiert hat. Beachten Sie außerdem, dass dieser einmalige Prozess den Computer während der anfänglichen Komprimierung verlangsamen könnte. Wenn es sich also um einen Produktionsserver handelt, führen Sie diesen Vorgang außerhalb der Spitzenzeiten aus, um Dienstbeeinträchtigungen zu verhindern.

Verschieben des Protokollordners in ein Remotesystem

IIS-Protokolldateien werden standardmäßig im Ordner %SystemDrive%\inetpub\logs\LogFiles Ihres IIS-Servers gespeichert. Der Ordner wird in der Verzeichniseigenschaft auf der Protokollierungsseite für den Server oder eine einzelne Website konfiguriert. Um das Problem der Datenträgernutzung durch Protokolle zu mindern, können Sie Ihre IIS-Protokolldateien in einen Ordner auf einem anderen Server verschieben, der mehr Speicherplatz hat. Dieser Server kann sich entweder in derselben Domäne wie der lokale IIS-Server oder in einer anderen Domäne befinden. Sie können Protokolldateien für den gesamten Server oder für einzelne Websites remote speichern.

Diese Lösung kann die Sicherheit des Systems unterstützen, da die Protokolldaten weiterhin im Remotespeicher verfügbar sind, wenn eine lokale Festplatte abstürzt. Darüber hinaus können die Protokolldateien von Analysesystemen genutzt werden.

Ändern Sie den Speicherort einer IIS-Protokolldatei wie folgt in eine Remotefreigabe:

  1. Erstellen Sie ein Protokolldateiverzeichnis auf einem Remoteserver, der sich in derselben Domäne wie Ihr lokaler Webserver befindet, auf dem IIS ausgeführt wird.

  2. Klicken Sie auf der Seite Eigenschaften des Ordners auf der Registerkarte Freigabe auf Freigeben, damit das Verzeichnis freigegeben wird. Weisen Sie auf der Registerkarte Sicherheit Gruppen und Benutzer/Benutzerinnen mit den entsprechenden Berechtigungen zu. Stellen Sie sicher, dass die entsprechenden Gruppen und Benutzer/Benutzerinnen die Protokolldateien lesen und in sie schreiben können. Log Folder Properties

    Weitere Informationen finden Sie unter Konfigurieren von Berechtigungen für die Remoteprotokollierung.

    Hinweis: Wenn Sie Protokolldateien auf einen Remoteserver in einer anderen Domäne schreiben möchten, lesen Sie Einrichten einer NULL-Sitzung für die domänenübergreifende Protokollierung.

  3. Öffnen Sie IIS-Manager auf Ihrem lokalen Webserver.

  4. Klicken Sie in IIS-Manager im Bereich Verbindungen auf den Server oder eine Website.

  5. Doppelklicken Sie auf Protokollierung. Logging Icon

  6. Geben Sie im Textfeld Verzeichnis den vollständigen UNC-Pfad des Verzeichnisses ein, das Sie auf dem Remoteserver erstellt haben. Geben Sie z. B. „\servername\Logs“ ein, wobei „servername“ für den Namen des Remoteservers und „Logs“ für den Namen der Freigabe zum Speichern der Protokolldateien steht. Logging Page

  7. Klicken Sie im Bereich Aktionen auf Übernehmen und dann auf OK. Alle Websites innerhalb des Verzeichnisses sollten mit der Protokollierung von Daten in der Remotefreigabe beginnen.

    Weitere Informationen finden Sie unter Remoteprotokollierung.

Löschen alter Protokolldateien per Skript

Sie können die Datenträgernutzung durch Protokolldateien steuern, indem Sie ein Skript ausführen, das Protokolldateien automatisch löscht, die ein bestimmtes Alter überschreiten. Wenn Sie dieses Skript in einer geplanten Aufgabe ausführen, behalten Sie das Füllen eines Datenträgers ohne ständige Wartung unter Kontrolle.

Das folgende VBScript überprüft das Alter der einzelnen Protokolldateien in einem Ordner und löscht jede Protokolldatei, die ein angegebenes Alter überschreitet. Um das Skript für Ihre Zwecke anzupassen, ändern Sie einfach den Namen und den Pfad des Ordners in Zeile 1 des Skripts. Ändern Sie zudem das maximale Alter in den gewünschten Wert in Tagen in Zeile 2.

sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 30   'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
        Set objFolder = objFSO.GetFolder(colSubfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
                iFileAge = now-objFile.DateCreated
                if iFileAge > (iMaxAge+1)  then
                        objFSO.deletefile objFile, True
                end if
        Next
Next

Das obige Skript überprüft alle Unterordner und verarbeitet Protokolle für ALLE Websites in und unter dem angegebenen Ordner. Wenn Sie den Prozess auf eine einzelne Website beschränken möchten, ändern Sie den Pfad entsprechend.

Um das Skript manuell auszuführen, führen Sie das folgende Skript in einer Administratorbefehlszeile aus: cscript.exe c:\scripts\retentionscript.vbs

Die Verwendung eines Skripts zum Löschen von Protokolldateien ist eine langfristige, zuverlässige Lösung für das Problem, dass Protokolldateien Speicherplatz belegen. Wenn Sie den Prozess automatisieren, wie unten dargestellt, ist keine konstante Wartung erforderlich.

Ausführen des Skripts als geplante Aufgabe

Sie können die Aufgabe zum Löschen von Protokolldateien mit einem Skript automatisieren, indem Sie einen Windows-Aufgabenplan erstellen, um das Skript regelmäßig auszuführen. Sie können die Ausführung des Skripts jederzeit mithilfe der Windows-Aufgabenplanung planen. Wie Sie die geplante Aufgabe konfigurieren, sollte mit der Konfiguration der Optionen für den Protokolldateirollover koordiniert werden.

  1. Öffnen Sie Server-Manager, klicken Sie auf das Menü Extras und dann auf Aufgabenplanung.
  2. Klicken Sie im Bereich Aktionen des Dialogfelds Aufgabenplanung auf Aufgabe erstellen. Create Task control
  3. Geben Sie auf der Registerkarte Allgemein im Dialogfeld Aufgabe erstellen einen Namen für die Aufgabe ein, z. B. „Protokolldateien löschen“. Legen Sie die Sicherheitseigenschaften fest, und wählen Sie ein Benutzerkonto mit ausreichenden Berechtigungen aus, um das Skript auszuführen. Create Task dialog box
  4. Klicken Sie auf die Registerkarte Trigger und dann auf Neu. Legen Sie im Dialogfeld Neuer Trigger die Option Aufgabe beginnen auf Gemäß Zeitplan fest. Wählen Sie die Periodizität aus, z. B. Täglich. Geben Sie das Startdatum ein, wählen Sie erweiterte Einstellungen aus, und stellen Sie sicher, dass Aktiviert ausgewählt ist, wenn Sie bereit sind, den Zeitplan zu initiieren. Klicken Sie auf OK. New Trigger dialog box
  5. Klicken Sie auf die Registerkarte Aktionen, und klicken Sie dann auf Neu. Wählen Sie im Dialogfeld Neue Aktion einen Wert für Aktion aus, in diesem Fall Programm starten. Geben Sie in Programm/Skript den Text cscript ein, und geben Sie in Argumente hinzufügen (optional) den Pfad und den Namen der Skriptdatei ein, z. B. C:\iis\Log\_File\_Deletion.vbs. Klicken Sie auf OK. New Action dialog box
  6. Klicken Sie auf OK.
  7. Vergewissern Sie sich, dass die Aufgabe dem Bereich Aktive Aufgaben hinzugefügt wurde.
  8. Klicken Sie mit der rechten Maustaste auf die neue Aufgabe, und wählen Sie Ausführen aus. Task Scheduler dialog box
  9. Navigieren Sie zu dem Ordner, für den das Skript ausgeführt wurde, und überprüfen Sie, ob die entsprechenden Protokolldateien gelöscht wurden.
  10. Navigieren Sie zurück zur Aufgabenplanung, klicken Sie mit der rechten Maustaste auf die Aufgabe, und klicken Sie auf Ende, sodass der Status wieder Bereit ist und die Aufgabe für geplante Ausführungen bereit ist.