Condividi tramite


Gestione dell'archiviazione file di log IIS

di Jim van de Erve

È possibile gestire la quantità di spazio su disco del server utilizzata dai file di log di Internet Information Services (IIS) tramite compressione, archiviazione remota ed eliminazione tramite script.

Panoramica

I file di log generati da IIS possono, nel tempo, utilizzare una grande quantità di spazio su disco. I log possono potenzialmente riempire un intero disco rigido. Per attenuare questo problema, molti utenti disattivano completamente la registrazione. Fortunatamente, esistono alternative per farlo, ad esempio le seguenti:

Le mitigazioni precedenti sono descritte nelle sezioni seguenti. È anche possibile eseguire le operazioni seguenti per controllare l'utilizzo del disco:

  • Limitare le dimensioni del log omettendo i campi delle proprietà non richieste
  • Creare log separati per siti Web e applicazioni
  • Mantenere le risorse di memoria usando la registrazione binaria centralizzata.

Per altre informazioni, vedere Configurazione della registrazione in IIS.

Abilita compressione cartelle

I file di log IIS vengono compressi a circa il 2% delle dimensioni originali. Abilitare la compressione di un file di log come indicato di seguito. Per eseguire questa procedura, è necessario essere un amministratore.

  1. Fare clic sull'icona Gestione file nella barra delle icone.
  2. Passare alla cartella contenente i file di log iis (per impostazione predefinita, %SystemDrive%\inetpub\logs\LogFiles).
  3. Fare clic con il pulsante destro del mouse sulla cartella e scegliere Proprietà.
  4. Nella scheda Generale della pagina Proprietà fare clic su Avanzate.
  5. Fare clic su Comprimi contenuto per risparmiare spazio su disco e quindi su OK. Abilitare la compressione
  6. Fare clic su Applica e quindi scegliere se comprimere solo la cartella o la cartella, le relative sottocartelle e i relativi file.
  7. Fare clic su OK. Verificare che il contenuto della cartella sia compresso. Il nome della cartella e il nome di ogni file devono essere colorati in blu e le dimensioni di un file di compressione devono essere inferiori.

Si tratta di un modo semplice per ridurre l'utilizzo del disco. Non è tuttavia una soluzione finale, perché l'utilizzo del disco cresce ancora nel tempo e potrebbe infine riempire il disco rigido.

Se la cartella contiene già una quantità significativa di dati, potrebbe essere necessario un po' di tempo per comprimerne il contenuto. Si noti anche che questo processo monouso potrebbe rallentare il computer durante la compressione iniziale, quindi, se si tratta di un server di produzione, eseguire questa operazione durante le ore di minore attività per evitare una riduzione delle prestazioni del servizio.

Spostare la cartella log in un sistema remoto

I file di log IIS vengono archiviati per impostazione predefinita nella %SystemDrive%\inetpub\logs\LogFiles cartella del server IIS. La cartella è configurata nella proprietà Directory nella pagina Registrazione per il server o un singolo sito. Per ridurre il problema dell'utilizzo del disco di log, è possibile spostare i file di log iis in una cartella in un altro server con più spazio. Questo server può trovarsi nello stesso dominio del server IIS locale o in un dominio diverso. È possibile salvare i file di log in remoto per l'intero server o per i singoli siti Web.

Questa soluzione può aiutare la sicurezza del sistema, perché se un disco rigido locale si arresta in modo anomalo, i dati di log sono ancora disponibili nell'archiviazione remota. Inoltre, i file di log possono essere utilizzati dai sistemi di analisi.

Modificare il percorso di un file di log IIS in una condivisione remota come indicato di seguito:

  1. Creare una directory di file di log in un server remoto che si trova nello stesso dominio del server Web locale che esegue IIS.

  2. Nella scheda Condivisione della pagina Proprietà della cartella fare clic su Condividi in modo che la directory sia condivisa. Nella scheda Sicurezza assegnare gruppi e utenti con le autorizzazioni appropriate. Assicurarsi che i gruppi e gli utenti appropriati siano in grado di leggere e scrivere nei file di log. Proprietà cartella log

    Per altre informazioni, vedere Configurazione delle autorizzazioni per la registrazione remota.

    Nota: per scrivere file di log in un server remoto in un dominio diverso, vedere Configurazione di una sessione Null per la registrazione tra domini.

  3. Aprire Gestione IIS nel server Web locale.

  4. In Gestione IIS fare clic sul server o su un sito Web nel riquadro Connessioni .

  5. Fare doppio clic su Registrazione. Icona di registrazione

  6. Nella casella di testo Directory immettere il percorso UNC completo della directory creata nel server remoto. Ad esempio, digitare \nomeserver\Logs, dove "nomeserver" rappresenta il nome del server remoto e "Logs" rappresenta il nome della condivisione in cui sono archiviati i file di log. Pagina Registrazione

  7. Nel riquadro Azioni fare clic su Applica e quindi su OK. Tutti i siti Web all'interno della directory devono iniziare a registrare i dati nella condivisione remota.

    Per altre informazioni, vedere Registrazione remota.

Eliminare i file di log precedenti per script

È possibile controllare l'utilizzo del disco dei file di log eseguendo uno script che elimina automaticamente i file di log più vecchi di una determinata età. L'esecuzione di questo script in un'attività pianificata manterrà il problema di un disco che si riempie sotto controllo senza manutenzione costante.

Il codice VBScript seguente verificherà l'età di ogni file di log in una cartella e eliminerà qualsiasi file di log più vecchio di un'età specificata. Per personalizzare lo script ai fini dell'utente, è sufficiente modificare il nome e il percorso della cartella nella riga 1 dello script e modificare la validità massima impostando il valore desiderato in giorni, nella riga 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

Lo script precedente analizza tutte le sottocartelle, quindi elabora i log per TUTTI i siti in e nella cartella specificata. Se si vuole limitare il processo a un solo sito, modificare il percorso in modo appropriato.

Per eseguire manualmente lo script, eseguire lo script seguente in una riga di comando dell'amministratore: cscript.exe c:\scripts\retentionscript.vbs

L'uso di uno script per eliminare i file di log è una soluzione affidabile a lungo termine al problema di utilizzo dello spazio su disco dei file di log. Se si automatizza il processo, come illustrato di seguito, non richiede una manutenzione costante.

Eseguire lo script come attività pianificata

È possibile automatizzare l'attività di eliminazione dei file di log tramite script creando una pianificazione delle attività di Windows per eseguire periodicamente lo script. È possibile pianificare l'esecuzione dello script in qualsiasi momento usando l'Utilità di pianificazione di Windows. La modalità di configurazione dell'attività pianificata deve essere coordinata con la configurazione delle opzioni di rollover del file di log.

  1. Aprire Server Manager, fare clic sul menu Strumenti e quindi su Utilità di pianificazione.
  2. Nel riquadro Azioni della finestra di dialogo Utilità di pianificazione fare clic su Crea attività. Crea controllo attività
  3. Nella scheda Generale della finestra di dialogo Crea attività immettere un nome per l'attività, ad esempio "Elimina file di log". Impostare le proprietà di sicurezza, selezionando un account utente con privilegi sufficienti per eseguire lo script. Finestra di dialogo Crea attività
  4. Fare clic sulla scheda Trigger e quindi su Nuovo. Nella finestra di dialogo Nuovo trigger impostare Inizia l'attività su In base a una pianificazione. Selezionare la periodicità, ad esempio Daily. Immettere la data di inizio , selezionare impostazioni più avanzate e assicurarsi che l'opzione Abilitato sia selezionata se si è pronti per avviare la pianificazione. Fare clic su OK. Finestra di dialogo Nuovo trigger
  5. Fare clic sulla scheda Azioni e quindi su Avanti. Nella finestra di dialogo Nuova azione selezionare un valore per Azione, in questo caso Avvia un programma. In Programma/script immettere cscript e in Aggiungi argomenti (facoltativo) immettere il percorso e il nome del file di script, C:\iis\Log\_File\_Deletion.vbsad esempio . Fare clic su OK. Finestra di dialogo Nuova azione
  6. Fare clic su OK.
  7. Verificare che l'attività sia stata aggiunta al riquadro Attività attive .
  8. Fare clic con il pulsante destro del mouse sulla nuova attività e scegliere Esegui. Finestra di dialogo Utilità di pianificazione
  9. Passare alla cartella in cui è stato eseguito lo script e verificare che i file di log appropriati siano stati eliminati.
  10. Tornare all'Utilità di pianificazione, fare clic con il pulsante destro del mouse sull'attività e scegliere Fine in modo che lo stato torni a Pronto e che l'attività sia pronta per le esecuzioni pianificate.