Apache Logging Basics (Português)

the Apache log records events that were handled by the Apache web server including requests from other computers, responses sent by Apache, and actions internal to the Apache server. Esta seção do guia explica os fundamentos do registro Apache, incluindo os tipos de logs gerados pelo Apache, onde eles são armazenados, e como interpretá-los. Também abordaremos tópicos avançados como a definição de formatos de log personalizados e a configuração de módulos para obter dados mais ricos.,

tipos de Logs Apache

Apache gera dois tipos de logs: logs de acesso e logs de erro.

Log de acesso

o log de acesso contém informações sobre pedidos que chegam ao servidor web. Esta informação pode incluir as páginas que as pessoas estão visualizando, o status de sucesso das solicitações, e quanto tempo o servidor levou para responder. Aqui está um exemplo de uma entrada típica de log de acesso:

registo de erros

o registo de erros contém informações sobre erros que o servidor web encontrou ao processar pedidos, tais como ficheiros em falta., Ele também inclui informações diagnósticas sobre o próprio servidor. Aqui está um exemplo de log de erro:

 File does not exist: /var/www/favicon.ico

Log Locations

por padrão, o Apache armazena acesso e logs de erro em arquivos separados no servidor. A localização exacta depende do seu sistema operativo., Poderá encontrar a localização do seu SO se carregar nas seguintes ligações:

Debian/Ubuntu/Linux Mint
Redhat/Fedora/CentOS Configuration
OpenSUSE

configurar os registos do Apache

Apache tem uma estrutura de Registo altamente configurável que lhe permite ajustar o comportamento de Registo globalmente ou para cada máquina virtual. Existem várias diretivas que você pode usar para mudar o comportamento de registro. Algumas das directivas mais comuns são as directivas de nível log e formato log, que explicaremos em maior pormenor.,

Log Level Directive

The LogLevel directive determines the minimum severity level of events that are logted to a specific destination. O nível de gravidade representa a importância do evento e pode variar de” Emerg “a” Trace8″, com” Emerg “representando eventos que podem levar à instabilidade, e” Trace8 ” representando mensagens de nível de traço. Por exemplo, LogLevel crit permitirá logs com “Crit”, “Alert” e “Emerg” severidade através, mas irá ignorar todos os outros níveis.,

Log Format

The LogFormat directive controls the layout and formatting of log events. O Apache usa o formato de Log (CLF) comum por padrão, mas você pode especificar o seu próprio texto de formato para alterar os campos incluídos em cada log.

Pode também utilizar a DirectivaCustomLog para alterar a localização do ficheiro de Registo. No Linux, o Apache normalmente escreve logs para as pastas /var/log /apache2 ou/var/log / httpd, dependendo do seu SO e das substituições da máquina Virtual., Você também pode definir uma string LogFormat após o nome do arquivo, que só irá aplicar a string formato para este arquivo.

Por exemplo, a seguinte configuração escreve logs para logs/access_log usando o formato “comum” Padrão. A subdiretoria de logs é relativa à diretoria especificada na diretiva ServerRoot:

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog "logs/access_log" common

CustomLog” logs/access_log ” common

pode encontrar uma lista completa de campos na documentação de log do Apache., Recomendamos usar pelo menos os cinco campos seguintes, pois eles são importantes para monitorar a saúde do servidor e para problemas de solução de problemas:

  1. %>s – o código de estado HTTP para o pedido. Isto mostra o estado final do pedido após qualquer redirecionamento interno; para o estado original, use %S.
  2. %U – a localização do URL pedida, excluindo quaisquer parâmetros adicionais como um texto de pesquisa.
  3. %a – o endereço IP do cliente que faz o pedido., Isto é útil para identificar o tráfego a partir de uma determinada fonte.
  4. %T – Quanto tempo levou para processar o pedido em segundos. Isto é útil para medir a velocidade do seu site. Use %D para fazer a mesma medição em microssegundos.
  5. %{UNIQUE_ID}e – também conhecido como o ID DO pedido, este loga um identificador único com cada pedido. Isto é útil para rastrear um pedido do Apache para o seu servidor de aplicações web.,

atribuir alcunhas

LogFormat cadeias de caracteres podem ser atribuídas alcunhas, que poderá então usar com um CustomLog directiva para escrever registos usando o formato especificado. Isso permite que você use o mesmo formato de log para vários arquivos de log sem ter que redefinir o formato de cada vez. Isto é particularmente útil ao usar diferentes ficheiros de registo para várias máquinas virtuais.

Por exemplo, vamos criar um formato de exemplo e nomeá-lo ” vhost_combined.,”Vamos então criar uma diretriz

que escreve logs para um arquivo usando o formato vhost_ combinado.

LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combinedCustomLog /var/log/apache2/vhost.log vhost_combined

formatação como JSON

armazenar os seus registos como texto simples torna-os fáceis de analisar no caso de alguma vez precisar de ler os seus ficheiros de Registo. No entanto, Isso torna difícil usar ferramentas como soluções de gerenciamento de log para ler seus logs, uma vez que essas ferramentas devem saber como seus logs são formatados. A maioria das soluções de gerenciamento de log suportam o formato Padrão de log Apache, mas se não, você deve considerar usar um formato estruturado como JSON.,

JSON (abreviatura de notação de objeto JavaScript) é um formato flexível para armazenar dados estruturados. A JSON armazena uma coleção de pares de nomes/valores, permitindo-lhe armazenar quase qualquer tipo de dados e estrutura. JSON também é efetivamente auto-documentado, uma vez que o nome da chave descreve os dados que ela contém. JSON suporta muitos tipos de dados básicos, incluindo strings, números, booleans, arrays e valores nulos.,

Aqui está um exemplo de uma LogFormat que armazena os logs em formato JSON:

LogFormat "{ \"time\":\"%t\", \"remoteIP\":\"%a\", \"host\":\"%V\", \"request\":\"%U\", \"query\":\"%q\", \"method\":\"%m\", \"status\":\"%>s\", \"userAgent\":\"%{User-agent}i\", \"referer\":\"%{Referer}i\" }"

Padrão de Host Virtual Substitui

Virtual Hosts (vhosts) são usados para executar mais de uma página web em um único servidor Apache. Você pode definir uma configuração de registro separada para cada vhost, que é dada prioridade sobre a configuração de registro global. Isto permite-lhe registar cada página web num directório separado, por exemplo. Deixando estes parâmetros de fora por omissão para a configuração global de Registo.

Por exemplo, a seguinte configuração é para um vhost por exemplo.,suplemento. Os Logs são gravados para separar access.log e error.log arquivos /var/www/example.com/logs diretório:

as seções A seguir mostram o ficheiro de configuração predefinido locais e diretivas usadas em diferentes distribuições Linux.

Debian / Ubuntu / Linux Mint

nas distribuições baseadas no Debian, a configuração predefinida do vhost para os sites não cifrados (port 80) pode ser encontrada em /etc/apache2/sites-available/000-default.conf. A configuração predefinida do vhost para os sites encriptados com SSL / TLS (porta 443) está em /etc/apache2/sites-available/default-ssl.conf.,

tabela de diretivas predefinidas

* variável Condicionada de ambiente. Oferece suporte para várias instâncias do servidor Apache.

** variável de ambiente. Usado para definir dinamicamente o caminho de registo inicial.

Red Hat/Fedora/CentOS

nas distribuições baseadas no Red Hat, o ficheiro de configuração principal está localizado em /etc/httpd/conf/httpd.conf. Você pode colocar arquivos de configuração vhost adicionais no diretório /etc/httpd/conf.d, que é lido automaticamente pelo servidor no início.

Table of Default Directives

* Condited on loaded log_config_module.,

* condicionado em logio_ Module carregado.

OpenSUSE

No OpenSUSE, o padrão vhost de configuração para a não-criptografada sites (porta 80) está localizado no /etc/apache2/default-vhost.conf, enquanto a configuração padrão para sites criptografados com SSL/TLS está localizado no /etc/apache2/default-vhost-ssl.conf.

Table of Default Directives

* Condited on loaded log_config_module.

* condicionado em logio_ Module carregado.

** condicionado em mod_ssl carregado.,

módulos relacionados ao Log

o servidor web Apache oferece uma série de módulos que tanto mudam a forma como o Apache funciona ou estendem a sua capacidade. Os seguintes módulos adicionam ou alteram o comportamento de registo de formas úteis.

mod_log_ Config

Este é o módulo de registo de base que o Apache usa, e o que cobrimos nesta secção do Guia.

mod_ log_ Dug

Este módulo oferece opções adicionais para registar as mensagens de depuração., Por exemplo, você pode logar eventos para um caminho de URL específico, log solicitações após eles serem processados, log Mensagens de um cliente específico se eles resultam em timeouts, e muito mais. Note que este módulo é experimental e pode não ser incluído na sua distribuição Apache.

Por exemplo, a seguinte configuração regista o endereço IP de um cliente sempre que este solicita um caminho específico:

mod_log_forensic

Este módulo activa o registo antes e depois de um pedido ser processado. A cada entrada é atribuída uma IDENTIFICAÇÃO única, que pode ser usada para rastrear eventos entre o registo forense e o registo normal., No entanto, o logger forense não suporta formatos personalizados. Este módulo também substitui o módulo mod_ unique_id.

Uma vez que o módulo esteja activo, poderá usar a palavra-chave forensic para indicar qual é o ficheiro de Registo forense. Você também pode usar o padrão %{forensic-id} em outro padrão LogFormat strings para adicionar dados forenses aos logs normais. Aqui, usamos /var/www/example.com/logs/forensic.log:

cada linha no log forense começa com um carácter “+” ou” -“., “+”indica a linha de registo de entrada para este pedido específico e” – ” indica entradas subsequentes para o mesmo pedido.

Por exemplo, a seguinte entrada de log foi gerado por chamar http://localhost usando o padrão de formato de log:

final de registo de entrada de solicitação mesma aparece como:

-3264:55958cb4:0

Se um final de entrada não aparecer no log, o pedido não foi concluída.

mod_logio

Este módulo adiciona a capacidade de registar o número de bytes enviados e recebidos por pedido., Isto inclui bytes recebidos, enviados e transferidos (combinação de recebidos e enviados). O módulo também conta com precisão as mudanças de tamanho devido à criptografia SSL e TLS. Este módulo requer mod_ log_ config e é tipicamente incluído no Apache por padrão.

Este módulo adiciona o LogIOTrackTTFB On|Off directiva, que activa ou desactiva a capacidade de acompanhar o tempo para o primeiro byte (TTFB). TTFB é a quantidade de tempo a partir de quando um pedido é recebido para quando a resposta é enviada pela primeira vez para o cliente., Você pode então usar %^FBpara incluir a medição TTFB em um LogFormat string.

mod_filter

Este módulo fornece filtros sensíveis ao contexto para a cadeia de saída, registrando qualquer número de fornecedores de filtros. o mod_filter não é específico ao registo, mas permite extrair pedidos específicos com base no fornecedor de filtros. Os containers de contexto incluem: configuração principal do apache, configuração do vhost, dentro de tags de diretório, e .ficheiros htaccess.,

empregar este módulo permite filtrar pedidos contendo itens, tais como certos critérios de injeção, e de que endereço IP é.

Este módulo é fornecido por padrão em muitas das distribuições de pacotes, mas pode exigir habilitação. Para efeitos de registo, a Directiva Filtrace publica informações no registo de erros.,li> FilterDeclare – declara um filtro inteligente

  • FilterProtocol – faz com que o mod_filter para manipular cabeçalhos de resposta corretamente
  • FilterProvider – registra filtro de fornecedores
  • FilterTrace – permite a depuração/informações de diagnóstico para um log de erro antes de o provedor de processamento
  • O exemplo a seguir aplica-se a filtragem em um vhost contexto recipiente condicionalmente no filtro e inclui os módulos:

    mod_unique_id:

    Este módulo constrói uma variável de ambiente e um identificador exclusivo para cada solicitação., É muitas vezes incluído em distribuições de pacotes, mas pode exigir habilitação. Este identificador único é escrito no registo de acesso.

    Este módulo foi substituído por mod_log_forensic para fins forenses, mas ainda é suportado por outros.

    Ao contrário do identificador forense, o identificador único é passado para o manipulador de aplicações através da variável de ambiente UNIQUE_ID. Isso permite que os desenvolvedores de aplicativos rastreem um pedido através do servidor web para o servidor de Aplicação. Pode ser útil para depurar um pedido.,

    Apache gira fora dos processos infantis para lidar com pedidos, e uma instância infantil processa vários pedidos de cada vez. Como resultado, às vezes é desejável usar um identificador único para identificar uma única solicitação em várias instâncias do servidor e processos-filhos.

    uma vez activado, o módulo fornece um identificador por omissão ao manipulador de aplicações.,

    Por exemplo:

    UNIQUE_ID: Vaf3en8AAQEAAAtoQlAAAAAA

    o identificador é construído a partir de um endereço IP de 32 bits, ID de processo de 32 bits, timestamp de 32 bits acoplado a um contador de 16 bits para resolução mais apertada do que um índice de thread de 32 bits. O componente timestamp é UTC para evitar problemas com ajustes de horário de Verão. O manipulador de aplicações deve tratar o identificador apenas como um símbolo opaco e não dissecado em constituintes.

    veja. Analisa-o. Inspecciona-o. Resolva-o, veja o que importa. início do ensaio livre

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *

    Ir para a barra de ferramentas