Compartilhar via


Gerenciar o armazenamento de arquivos de log do IIS

por Jim van de Erve

Gerencie a quantidade de espaço em disco do servidor que os arquivos de log do IIS (Serviços de Informações da Internet) consomem usando compactação, armazenamento remoto e exclusão com script.

Visão geral

Os arquivos de log gerados pelo IIS podem, ao longo do tempo, consumir uma grande quantidade de espaço em disco. Os logs podem potencialmente preencher um disco rígido inteiro. Para atenuar esse problema, muitos usuários desativam completamente o registro em log. Felizmente, há alternativas para fazer isso, como o seguinte:

As mitigações acima são descritas nas seções abaixo. Talvez você também queira fazer o seguinte para controlar o uso do disco:

  • Limitar o tamanho do log omitindo campos de propriedade desnecessários
  • Criar logs separados para sites e aplicativos
  • Preserve os recursos de memória usando o registro em log binário centralizado.

Para obter mais informações, consulte Configurar o registro em log no IIS.

Habilitar compactação de pasta

Os arquivos de log do IIS compactam cerca de 2% do tamanho original. Habilite a compactação de um arquivo de log da seguinte maneira. É necessário ser um administrador para executar este procedimento.

  1. Selecione o ícone do Gerenciador de Arquivos na barra de ícones.
  2. Mover para a pasta que contém arquivos de log do IIS (por padrão, %SystemDrive%\inetpub\logs\LogFiles).
  3. Clique com o botão direito do mouse na pasta e selecione Propriedades.
  4. No guia Geral da página Propriedades, selecione Avançado.
  5. Selecione Compactar o conteúdo para economizar espaço em disco e selecione OK. Enabling compression
  6. Selecione Aplicar e selecione se deve compactar somente a pasta ou a pasta, suas subpastas e seus arquivos.
  7. Clique em OK. Verifique se o conteúdo da pasta está compactado. O nome da pasta e o nome de cada arquivo devem ser coloridos em azul e o tamanho de um arquivo de compactação deve ser menor.

Essa é uma maneira simples de reduzir o uso do disco. No entanto, não é uma solução final, pois o uso do disco ainda cresce ao longo do tempo e pode eventualmente preencher o disco rígido.

Se a pasta já contiver uma quantidade significativa de dados, o computador poderá demorar um pouco para compactar seu conteúdo. Observe também que esse processo único pode diminuir a velocidade do computador durante a compactação inicial, portanto, se esse for um servidor de produção, execute essa operação fora do horário de pico para evitar a degradação do serviço.

Mover a pasta de log para um sistema remoto

Os arquivos de log do IIS são armazenados por padrão na pasta %SystemDrive%\inetpub\logs\LogFiles do servidor do IIS. A pasta é configurada na propriedade de Diretório na página log para o servidor ou um site individual. Para diminuir o problema do uso do disco de log, mova seus arquivos de log do IIS para uma pasta em outro servidor que tenha mais espaço. Esse servidor pode estar no mesmo domínio que o servidor do IIS local ou em um domínio diferente. Salve arquivos de log remotamente para todo o servidor ou para sites individuais.

Essa solução pode ajudar a segurança do sistema, pois se um disco rígido local falhar, os dados de log ainda estarão disponíveis no armazenamento remoto. Além disso, os arquivos de log podem ser consumidos por sistemas de análise.

Altere o local de um arquivo de log do IIS para um compartilhamento remoto da seguinte maneira:

  1. Crie um diretório de arquivo de log em um servidor remoto que esteja no mesmo domínio que o servidor Web local executando o IIS.

  2. Na página Propriedades da pasta, no guia Compartilhamento, selecione Compartilhar, para que o diretório seja compartilhado. No guia Segurança, atribua grupos e usuários com as permissões apropriadas. Verifique se os grupos e usuários apropriados podem fazer a leitura e gravar nos arquivos de log. Log Folder Properties

    Para obter mais informações, consulte Configurar permissões para registro em log remoto.

    Observação: caso queira gravar arquivos de log em um servidor remoto em um domínio diferente, consulte Configurar uma sessão nula para registro em log entre domínios.

  3. Abra o Gerenciador do IIS no servidor Web local.

  4. No Gerenciador do IIS, no painel Conexões, selecione o servidor ou um site.

  5. Clique duas vezes em Registrar em log. Logging Icon

  6. Na caixa de texto Diretório, insira o caminho UNC completo do diretório criado no servidor remoto. Por exemplo, digite \servername\Logs, em que “servername” representa o nome do servidor remoto e “Logs” representa o nome do compartilhamento em que os arquivos de log são armazenados. Logging Page

  7. No painel Ações, selecione Aplicar e selecione OK. Todos os sites dentro do diretório devem começar a registrar dados no compartilhamento remoto.

    Para obter mais informações, confira Registrar em log remoto.

Excluir arquivos de log antigos por script

Controle o uso de disco de arquivos de log executando um script que exclui automaticamente arquivos de log anteriores a um determinado tempo decorrido. Executar esse script em uma tarefa agendada manterá o problema de um preenchimento de disco sob controle sem manutenção constante.

O VBScript a seguir verificará a idade de cada arquivo de log em uma pasta e excluirá qualquer arquivo de log com mais de uma idade especificada. Para personalizar o script para suas finalidades, basta alterar o nome e o caminho da pasta na linha 1 do script e alterar a idade máxima para o valor desejado em dias, na linha 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

O script acima examinará todas as subpastas, portanto, processará logs para TODOS os sites dentro e abaixo da pasta especificada. Caso queira limitar o processo a apenas um site, altere o caminho adequadamente.

Para executar o script manualmente, execute o seguinte script em uma linha de comando de administrador: cscript.exe c:\scripts\retentionscript.vbs

Usar um script para excluir arquivos de log é uma solução confiável e de longo prazo para o problema dos arquivos de log que consomem espaço em disco. Caso automatize o processo, conforme mostrado abaixo, ele não exigirá manutenção constante.

Executar o script como uma tarefa agendada

Automatize a tarefa de excluir arquivos de log por script criando um agendamento de tarefas do Windows para executar o script periodicamente. Agende o script a ser executado a qualquer momento usando o Agendador de Tarefas do Windows. A forma como você configura a tarefa agendada deve ser coordenada com a configuração das opções de substituição de arquivo de log.

  1. Abra o Gerenciador do Servidor, selecione o menu Ferramentas e selecione Agendador de Tarefas.
  2. No painel Ações da caixa de diálogo Agendador de Tarefas, selecione Criar Tarefa. Create Task control
  3. No guia Geral da caixa de diálogo Criar Tarefa, insira um nome para a tarefa, como “Excluir Arquivos de Log”. Defina as propriedades de segurança, selecionando uma conta de usuário com privilégios suficientes para executar o script. Create Task dialog box
  4. Selecione o guia Gatilhos e selecione Novo. Na caixa de diálogo Novo Gatilho, defina Iniciar a tarefa como Em um agendamento. Selecione a periodicidade, por exemplo, Diário. Insira a data de Início, selecione configurações mais avançadas e verifique se Habilitado está selecionado, caso esteja pronto para iniciar o agendamento. Clique em OK. New Trigger dialog box
  5. Clique na guia Ações e, em seguida, clique em Nova. Na caixa de diálogo Nova Ação, selecione um valor para a Ação, nesse caso, Iniciar um programa. Em Programa/script, insira cscript e, em Adicionar argumentos (opcional), insira o caminho e o nome do arquivo de script, por exemplo, C:\iis\Log\_File\_Deletion.vbs. Clique em OK. New Action dialog box
  6. Clique em OK.
  7. Verifique se a tarefa foi adicionada ao painel Tarefas Ativas.
  8. Clique com o botão direito do mouse na nova tarefa e selecione Executar. Task Scheduler dialog box
  9. Navegue até a pasta na qual o script foi executado e verifique se os arquivos de log apropriados foram excluídos.
  10. Navegue de volta para o Agendador de Tarefas, clique com o botão direito do mouse na tarefa e selecione Encerrar para que o status retorne a Pronto e a tarefa esteja pronta para execuções agendadas.