Se for responsável por manter os servidores web a funcionar, já sabe que o acesso fácil às mensagens de registo é crítico quando se resolvem problemas. O Apache oferece um suporte abrangente para o login, e sua configuração altamente personalizável permite que você adapte seu login de acordo com suas necessidades exatas. Você pode ganhar visibilidade em seus servidores web registrando tudo desde o pedido inicial até o processo de mapeamento de URL e terminação de conexão., E se isso não fosse suficiente, módulos de terceiros forneceriam recursos adicionais de registro, tais como suporte para execução de aplicativos, incluindo programas PHP, Java e CGI.
neste artigo, mostrar-lhe-ei como usar os dois diferentes mecanismos de registo no Apache e como encontrar os dados de que necessita nos seus registos, ao investigar problemas.
a diretiva ErrorLog
erros e avisos de diagnóstico no servidor web normalmente significa que os usuários não podem acessar as páginas e recursos de que precisam, e o primeiro lugar onde qualquer administrador irá procurar está no registro de erros do servidor Apache., Então, theErrorLog é o arquivo Apache mais importante para solução de problemas. Ele contém a informação que você precisa para entender por que os erros estão ocorrendo e quais usuários são afetados.
a localização do registo de erros é controlada pela Directiva ErrorLog. Por padrão, você pode encontrá-lo em um arquivo (erro.log) mas também é possível enviar o log de erro para um servidor do syslog ou encaminhá-lo para um programa usando Apachesupport para logs piped.,
a Directiva ErrorLogFormat permite-lhe criar a aparência das mensagens de erro wayserver e os dados que contêm, para além da logmessage emitida pelo Código Interno Apache. O Apache envia uma série de mensagens diferentes para erro.log, por vezes é difícil distingui-los e encontrar o que procuras. Tirando partido da Directiva Errorlog, poderá encontrar as mensagens de que necessita mais rapidamente.,
é claro que você não precisa especificar o seu próprio formato, uma vez que um formato padrão é fornecido pelo Apache, mas usando ErrorLogFormat, você pode criar dados de Registo morerelevant e activáveis.,
Por exemplo, o seguinte ErrorLogFormat directiva apresenta um carimbo de data / hora, a mensagem de log de gravidade, o ID de processo do servidor web, o arquivo de origem e registo em que o log foi gerado, e, finalmente, a própria mensagem:
ErrorLogFormat " %F %M"
O formato produz mensagens de erro que se parecem com isto:
Atrav Apache ErrorLogFormat directiva supportsover 20 diferentes cadeias de caracteres de formato, que trabalho justlike C-estilo printf() formatstrings., Isto mostra como são flexíveis as capacidades de registo do Apache-O Apacheprovida a capacidade de personalizar onde são enviadas mensagens de erros do servidor e permite-lhe controlar o seu formato, para que possa incluir toda a informação que necessita.
a Directiva CustomLog
cada vez que um utilizador visita o seu site, Apachesto informações sobre os caminhos a que acederam no acesso.log., Isto dá-lhe uma forma útil de monitorizar coisas como as secções mais populares do seu site, permite-lhe ver os endereços a partir dos quais os utilizadores estão a ligar-se, e mostra quais os códigos de estado HTTP que foram devolvidos pelo seu servidor para cada pedido. Endereços de conexão e códigos de estado HTTP podem ser pistas valiosas quando problemas posteriores resolvem e investigam questões.
assim como o registo de erros, você pode configurar o formato do registo de acesso usando strings de formato com a diretiva LogFormat., Cada LogFormatoption requer um identificador único, para que você possa criar mais de um logformat para armazenar mensagens de log de diferentes maneiras.
por exemplo, aqui está um exemplo de dois formatos de log diferentes cada escrita para separar arquivos. O primeiro formato segue o formato de Log comum (CLF é suportado por muitas aplicações, por isso é frequentemente usado como o formato de logging para servidores web), e o segundo formato exibe apenas o referer e o pedido URL:
entradas para estes formatos se parecem com este:
acesso.log
127.0.0.1 - - "GET / HTTP/1.1" 200 11229
referer.,log
- -> /index.html
ao combinar uma diretiva LogFormat com o CustomLog,você pode direcionar as mensagens de log para diferentes arquivos.
não só você pode escrever as mensagens de log de acesso a todos os arquivos de log, como também pode condicionar a escrita de mensagens de log a alguma atribuição do pedido. A SetEnvIfdirective permite-lhe definir variáveis de ambiente, se alguma condição for verdadeira. Então você pode usar a cláusula theenv= em suas diretivas CustomLog para habilitar loggingonly se essa variável de ambiente estiver definida.
Aqui está um exemplo registrando todos os pedidos de localhost para um arquivo dedicado chamado local.,log:
SetEnvIf Remote_Addr "127\.0\.0\.1" localaddrCustomLog ${APACHE_LOG_DIR}/local.log common env=localaddr
this rule takes advantage of Apache Remote_Addr variable, which records theip address of the client making the request. A lista completa de Apachevariables está disponível na documentação Apache. Se você está usando a pesquisa SolarWinds®Papertrail™, você pode usar essas variáveis para resolver rapidamente problemas.
analisando os registos de erro e acesso
Uma vez que tenha escrito mensagens de registo nos seus ficheiros de Registo, precisa de uma forma de as extrair. É claro que você pode enviá-los diretamente para o Papertrail onde você pode seguir, pesquisar e analisar registros vivos e armazenados., Se você não estiver enviando-os para Papertrail, você pode usar ferramentas de arquivo padrão, tais como cat, less, E tail. Se você estiver usando o comando tail, ele imprime as últimas 10 linhas de um arquivo por padrão, mas você pode controlar exatamente quantas linhas são exibidas com o parâmetro-n. Para ler as últimas 25 linhas do access.log, você precisa fazer:
tail -n25 access.log
a funcionalidade Papertrail Live tail permite-lhe seguir os seus diários e ver continuamente novos eventos à medida que acontecem., Você pode pausar, pesquisar e percorrer o histórico de log e até mesmo clicar em elementos para saltar entradas de log relacionadas, como todos os que têm um endereço IP específico.
Se o seu servidor web recebe muito tráfego, é um desafio procurar manualmente através dos seus registos devido ao seu tamanho. Em vez disso, você precisa virar para a sintaxe de pesquisa da solução Papertrail, que lhe permite criar expressões poderosas que correspondam às strings que você está tentando encontrar., Aqui está um texto de pesquisa de exemplo para encontrar todas as mensagens contendo 404 códigos de estado HTTP:
HTTP 404
Se você está trabalhando com arquivos de log de várias fontes como PHP, Apache, ou JSON, pode valer a pena olhar para uma ferramenta de gestão de log como Papertrail.
conclusão
gestão eficaz dos servidores web significa que é necessário ser capaz de compreender o seu comportamento e desempenho. Quando os utilizadores começam a comunicar as páginas que não estão a carregar ou as ligações a cronometrar, você precisa de uma forma de olhar sob o capô dos seus servidores web para ver o que está a acontecer., Logmessages accionáveis são a chave para manter o seu site em funcionamento.
Apache fornece um monte de opções para armazenar mensagens para arquivos. Com as diretivas ErrorLogand CustomLog, você pode personalizar onde as mensagens são escritas e seu formato. Dividir logmessages em vários arquivos é possível com mais de uma diretriz, e com suporte de apache para variáveis de ambiente, você pode aproveitar as condições para escolher exatamente quando as mensagens de log devem ser escritas.