Compartilhar via


Registro em Log Avançado para IIS - Filtragem de Log

por Bobby Videna

A filtragem de logs no Registro em Log Avançado do IIS, permite que os administradores coletem apenas as informações de tráfego do site da Web em que estão interessados, em vez de ter que capturar todo o tráfego do site da Web e, em seguida, vasculhar todos os dados para encontrar o que precisam. Por exemplo, um administrador de site pode querer saber se há solicitações para seu site que apontem para o conteúdo que não está mais disponível. Sabendo que essas solicitações retornam um código de status '404', o administrador pode criar um filtro para uma definição de log que captura apenas as solicitações em que 'Status' = '404'. O administrador agora terá um arquivo de log que contém apenas os dados desejados.

Ao empregar métodos de filtragem, os administradores podem gerenciar seus dados de log criando definições de log diferentes para coletar dados diferentes. Voltando ao exemplo anterior, um administrador pode criar uma definição de log para capturar apenas respostas de '404, outra definição de log para capturar apenas respostas de '400' e mais uma definição de log para capturar apenas respostas de '500', se essas forem as respostas nas quais eles estão interessados. O importante a observar é que eles não estão capturando dados nos quais não estão interessados, reduzindo o grande volume de dados de log e tornando os arquivos de log mais fáceis de trabalhar.

Requisitos

Este passo a passo pressupõe o conhecimento básico do registro em log personalizado usando o recurso de Registro em Log Avançado. Para obter um incremento rápido, consulte Registro em Log Avançado para IIS – Registro em Log Personalizado.

Clonar uma definição de log

Este passo a passo pressupõe o conhecimento básico da criação de uma definição de log usando o recurso de Registro em Log Avançado e se concentra apenas na criação de um filtro na interface do usuário (interface do usuário) do Gerenciador do IIS. Para fins deste passo a passo, não criaremos novas definições de log. Em vez disso, clonaremos a definição de log padrão e criaremos um filtro para as definições de log clonadas. A clonagem de uma definição de log gera definições básicas de log com as quais podemos trabalhar neste passo a passo, sem precisar selecionar novamente cada conjunto de campos para cada nova definição de log.

Para clonar uma definição de log, faça o seguinte:

  1. Abra o Gerenciador do IIS (selecioneIniciar>Ferramentas Administrativas>Gerenciador do IIS (Serviços de Informações da Internet)).
  2. No Gerenciador do IIS, no painel Conexões, abra o recurso de Registro em Log Avançado no nível do Site da Web Padrão.
    Screenshot of the Default Web Site Home window with Advanced Logging highlighted.
  3. Na página de recursos de Registro em Log Avançado, selecione a definição de log padrão (%COMPUTERNAME%-Server) e, no painel Ações, selecione Clonar Definição de Log.
    Screenshot of the Advanced Logging window with the Actions pane showing. The example log definition name is highlighted.
  4. Na caixa de diálogo Clonar Definição de Log, em Novo nome de definição de log, insira %COMPUTERNAME%-FilterExample e selecione OK.
    Screenshot of the Clone Log Definition dialog with the example log definition name highlighted in the input box.

A nova definição de log %COMPUTERNAME%-FilterExample é exibida na página de recursos de Registro em Log Avançado, conforme mostrado na figura a seguir:
Screenshot of the Advanced Logging window showing the example log definition name highlighted in the main pane.

Essa definição de log será usada nas seções a seguir que descrevem como criar filtros de log.

Criar um filtro simples

Esta seção descreve como criar um filtro simples para a definição de log %COMPUTERNAME%-FilterExample que criamos na seção anterior, que registrará solicitações de arquivos HTML estáticos. Isso pode ser complicado porque os arquivos HTML podem ter a extensão de nome de arquivo .htm ou .html e o único campo de log que contém essas informações (URI-Stem), também contém o caminho virtual e o nome do arquivo. Para resolver esse problema, mostraremos como usar expressões regulares no recurso de Registro em Log Avançado, para executar uma correspondência de padrão no campo de log URI-Stem.

A expressão regular exata a ser usada é .*\.html?. O primeiro caractere (.) corresponde a qualquer caractere, exceto \r e \n. O segundo caractere (*) repete o caractere anterior zero ou mais vezes. Na verdade, esses dois primeiros caracteres correspondem a qualquer cadeia de caracteres de qualquer comprimento e resolvem o problema de correspondência do caminho virtual e do nome do arquivo.

Em seguida, consideramos as extensões de nome de arquivo de interesse (.htm e .html). O caractere (.) é um caractere Regex reservado, mas queremos seu valor literal. Portanto, usamos o caractere de barra invertida (\) para escapar do (.) que o segue para que (.), seja correspondido literalmente. As letras html são correspondidas literalmente também. Por fim, o caractere de ponto de interrogação (?) torna o caractere que o precede (l) opcional, tornando a correspondência literal .html ou .htm.

Para obter mais informações sobre como criar expressões regulares que correspondam às suas necessidades, é recomendável fazer uma pesquisa na Internet sobre "Expressões Regulares", para se aprofundar nesse assunto.

Para criar um filtro que capture apenas solicitações que tenham uma extensão de nome de arquivo .html ou .htm, faça o seguinte:

  1. Na página de recursos de Registro em Log Avançado, selecione a definição de log %COMPUTERNAME%-FilterExample e, no painel Ações , selecioneEditar Definição de Log.
    Screenshot of the Advanced Logging window. The example log definition name is highlighted in the main pane. Edit Log Definition is highlighted on the Actions pane.

  2. Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.
    Screenshot showing a portion of the Log Definition window. Edit Filter is highlighted in the Filter pane.

  3. Na caixa de diálogo Editar Filtro de Definição de Log, selecione o nó raiz (Condição: AND) na lista hierárquica e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter dialog. The Add Expression button is highlighted.

  4. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter dialog. Options are highlighted in the Expression pane. Enable as regular expression is checked. OK is highlighted.

    • Field. Selecione URI-Stem.
    • Operador. Selecione Igual.
    • Valor. Insira .*\.html?.
    • Habilitar como expressão regular. Marque esta caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão Regex.
  5. Selecione OK na caixa de diálogo e, no painel Ações, selecione Aplicar, para salvar as alterações na definição de log.

Criar um filtro com várias expressões

Outro exemplo útil de um filtro de log é capturar apenas as solicitações que não foram atendidas com êxito. Espero que a maioria das suas solicitações seja bem-sucedida e retorne um código de status '200', mas elas podem causar muito ruído nos arquivos de log ao tentar identificar as solicitações que retornam condições de erro, como '400' (Solicitação Incorreta), '404' (Arquivo não encontrado) e/ou '500' (Erro interno do servidor). Esta seção descreve como criar um filtro para uma definição de log que usa várias expressões para capturar somente solicitações com códigos de status de '400', '404' e '500'.

Para criar esse filtro, faça o seguinte:

  1. Use as etapas em Clonar uma definição de log para criar uma nova definição de log chamada %COMPUTERNAME%-FilterExample_MultipleRequests.

  2. Na página de recursos de Registro em Log Avançado, selecione a definição de log %COMPUTERNAME%-FilterExample_MultipleRequests e, no painel Ações , selecione Editar Definição de Log.

  3. Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.

  4. Na caixa de diálogo Editar Filtro de Definição de Log, selecione o nó raiz (Condição: AND) na lista hierárquica, selecione OR Condição na área Condição e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. Add Expression is highlighted in the main pane. The OR Condition is selected in the Condition pane.

    Observe que o nó raiz original (Condição: AND) na lista muda para Condição: OR ao selecionar OR Condição na área Condição.

  5. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter dialog. Status Equals 404 is highlighted in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 404.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  6. Selecione o nó raiz (Condição: OR) na lista e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter dialog. Condition:OR and Add Expression are highlighted in the main pane.

  7. Outro nó de expressão é adicionado à lista. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter dialog. Status Equals 400 is highlighted in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 400.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  8. Selecione o nó raiz (Condição: OR) na lista e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter dialog. Condition:OR applies to Status equals 404 and 400. Add Expression is highlighted.

  9. Um terceiro nó "Expressão" é adicionado à lista. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter dialog. Status Equals 500 is highlighted in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 500.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  10. Selecione OK na caixa de diálogo e, no painel Ações, selecione Aplicar, para salvar as alterações na definição de log.

Criar um filtro com várias condições

As condições são verbos que conectam expressões diferentes. Por padrão, todas as expressões são exibidas em uma única condição de nó raiz. Caso tenha apenas uma única expressão como em nosso primeiro exemplo, a condição do nó raiz será ignorada. No entanto, caso tenha mais de uma expressão, a condição do nó raiz determinará se o filtro é mais exclusivo (Condição: AND) ou mais inclusivo (Condição: OR). Por padrão, a condição do nó raiz é AND (Condição: AND), mas você observou em nosso segundo exemplo como ela pode ser alterada para OR (Condição: OR).

Esta seção descreve como criar um filtro para uma definição de log que captura solicitações com base em vários critérios. O exemplo nesta seção mostra um filtro que captura todas as solicitações inválidas, mas apenas para extensões de nome de arquivo HTML e ASP/ASP.NET estáticos. O exemplo na seção anterior será usado para ajudar a criar a parte do filtro que captura solicitações incorretas e o primeiro exemplo, será usado para ajudar a criar a parte do filtro que captura as extensões de nome de arquivo desejadas. (Observe que a extensão de nome de arquivo ASP é .asp e a extensão de nome de arquivo ASP.NET é .aspx. Portanto, devemos modificar o valor de expressão regular usado no primeiro exemplo para .*\.aspx?).

As condições apropriadas devem ser usadas. De uma perspectiva de alto nível, o filtro deve ser 'STATUS=X' AND 'EXTENSION=Y'. De uma perspectiva detalhada, podemos expandir 'STATUS=X' para ser ('Status'='400' OR 'Status'='404' OR 'Status'='500')' e também expandir 'EXTENSION=Y' para ser ('URI-Stem'='.*\.html?' OR 'URI-Stem'='.*\.aspx?'). O filtro completo deve ser semelhante a ('Status'='400' OR 'Status'='404' OR 'Status'='500') AND ('URI-Stem'='.*\.html?' OR 'URI-Stem'='.*\.aspx?')

Para criar um filtro complexo para uma definição de log que usa várias condições, bem como várias expressões, faça o seguinte:

  1. Use as etapas em Clonar uma definição de log para criar uma nova definição de log chamada %COMPUTERNAME%-FilterExample_Conditions.

  2. Na página de recursos de Registro em Log Avançado, selecione a definição de log %COMPUTERNAME%-FilterExample_Conditions e, no painel Ações, selecione Editar Definição de Log.

  3. Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.

  4. Na caixa de diálogo Editar Filtro de Definição de Log, selecione o nó raiz (Condição: AND), na lista hierárquica e selecione Adicionar Condição.
    Screenshot of the Edit Log Definition Filter window. Add Condition is highlighted in the main pane. AND Condition is selected in the Condition pane.

  5. Uma condição de sub nó é adicionada abaixo da condição do nó raiz (Condição: AND) na lista. Na área Condição da caixa de diálogo, selecione OR Condiçãoe selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. Condition:OR appears in the main pane. Add Expression and OR Condition are highlighted.

  6. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of Edit Log Definition Filter with the example highlighted in the main pane and options in the Expression pane.

    • Field. Selecione URI-Stem.
    • Operador. Selecione Igual.
    • Valor. Insira .*\.html?.
    • Habilitar como expressão regular. Marque esta caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão Regex.
  7. Selecione a condição do sub nó (Condição: OR) na lista e selecioneAdicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. Condition:OR applies to example expression. Add Expression is highlighted.

  8. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter window. The example expression is highlighted in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione URI-Stem.
    • Operador. Selecione Igual.
    • Valor. Insira .*\.aspx?.
    • Habilitar como expressão regular. Marque esta caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão Regex.
  9. Agora, selecione a condição do nó raiz (Condição: AND) na lista hierárquica e selecione Adicionar Condição.
    Screenshot of the Edit Log Definition Filter window. Condition:AND and Add Condition are highlighted in the main pane.

  10. Uma segunda condição de sub nó é adicionada abaixo da condição do nó raiz (Condição: AND) na lista. Na área Condição da caixa de diálogo, selecione OR Condiçãoe selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. Condition:OR and Add Condition are highlighted in the main pane. OR Condition is highlighted in the Condition pane and the current OR expression appears in the output pane.

  11. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter window. Status Equals 400 is highlighted in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 400.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  12. Selecione a condição do sub nó (Condição: OR) ' na parte inferior da lista e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. The second Condition:OR and Add Expression are highlighted.

  13. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter window. Status Equals 404 is highlighted under the second Condition:OR in the main pane. Options are highlighted in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 404.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  14. Selecione a condição do sub nó (Condição: OR) na parte inferior da lista e selecione Adicionar Expressão.
    Screenshot of the Edit Log Definition Filter window. The second Condition:OR and Add Expression are highlighted in the main pane. The output pane shows the full OR expression.

  15. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
    Screenshot of the Edit Log Definition Filter window. Status Equals 500 is highlighted under the second Condition:OR in the main pane. Options are selected in the Expression pane.

    • Field. Selecione Status.
    • Operador. Selecione Igual.
    • Valor. Insira 500.
    • Habilitar como expressão regular. Desmarque essa caixa de seleção para garantir que o Registro em Log Avançado saiba tratar o valor como uma expressão literal.
  16. Selecione OK na caixa de diálogo e, no painel Ações, selecione Aplicar, para salvar as alterações na definição de log.

Resumo

Neste passo a passo, aprendemos a criar um filtro simples com uma única expressão, bem como filtros mais complexos que consistem em várias expressões e várias condições. No processo, também aprendemos a usar expressões regulares para executar uma correspondência de padrão em valores de cadeia de caracteres e como criar uma nova definição de log clonando uma existente.

Espero que isso ajude a tornar a extração das informações certas de seus logs muito mais gerenciável.