Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Abra o Gerenciador do IIS (selecioneIniciar>Ferramentas Administrativas>Gerenciador do IIS (Serviços de Informações da Internet)).
- 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.
- 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.
- Na caixa de diálogo Clonar Definição de Log, em Novo nome de definição de log, insira %COMPUTERNAME%-FilterExample e selecione OK.
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:
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:
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.
Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.
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.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
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:
Use as etapas em Clonar uma definição de log para criar uma nova definição de log chamada %COMPUTERNAME%-FilterExample_MultipleRequests.
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.
Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.
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.
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.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Selecione o nó raiz (Condição: OR) na lista e selecione Adicionar Expressão.
Outro nó de expressão é adicionado à lista. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Selecione o nó raiz (Condição: OR) na lista e selecione Adicionar Expressão.
Um terceiro nó "Expressão" é adicionado à lista. Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
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:
Use as etapas em Clonar uma definição de log para criar uma nova definição de log chamada %COMPUTERNAME%-FilterExample_Conditions.
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.
Na parte inferior da página de recursos de Definição de Log, na área Filtro, selecione Editar Filtro.
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.
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.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Selecione a condição do sub nó (Condição: OR) na lista e selecioneAdicionar Expressão.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Agora, selecione a condição do nó raiz (Condição: AND) na lista hierárquica e selecione Adicionar Condição.
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.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Selecione a condição do sub nó (Condição: OR) ' na parte inferior da lista e selecione Adicionar Expressão.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
Selecione a condição do sub nó (Condição: OR) na parte inferior da lista e selecione Adicionar Expressão.
Na área Expressão da caixa de diálogo, especifique os seguintes valores para a expressão:
- 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.
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.