Apache LogFormat: registra o nome de domínio completo o tempo todo

0

Temos um servidor que hospeda muitos domínios diferentes. Como este servidor é eliminado, queremos saber se ainda existem domínios apontando para este servidor. Eu gostaria de ter os logs do Apache relatando esses nomes de domínio.

Nossos registros do Apache mostram os seguintes dados:

163.172.66.133 - - [16/Dec/2016:11:37:40 +0100] "GET /en/page/test HTTP/1.1" 301 - "-" "Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)"

Deve estar com o nome de domínio completo da página solicitada.

163.172.66.133 - - [16/Dec/2016:11:37:40 +0100] "GET https://www.domainname.com/en/page/test HTTP/1.1" 301 - "-" "Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)"

Eu uso o seguinte LogFormat:

LogFormat "%h %l %u %t \"%m http://%v:%p%U\" %>s %b" common

Às vezes, vejo o nome completo do domínio, na maioria das vezes não.

Como posso ter os nomes de domínio exibidos o tempo todo?

    
por SPRBRN 16.12.2016 / 11:51

1 resposta

1

Se você olhar a documentação oficial para o formato de registro, verá que o sinalizador %v ou %V pode ser o que você está interessado, já que lhe daria o nome de servidor canônico que está configurado. Portanto, seria o ServerName configurado no bloco que finalmente respondeu à solicitação.

Como a linha LogFormat que você forneceu já contém esse identificador, é provável que exista mais de uma configuração que defina o formato de log e as linhas de log que não contêm o host sejam baseadas nesse formato diferente. Seu formato deve fazer com que você sempre insira linhas formatadas como seu segundo exemplo.

O que ainda pode ser um problema é que você configurou domínios curinga e não conseguirá ver quais solicitações FQDN completas eram. Uma pergunta intitulada Usando% v no Apache A definição do LogFormat que corresponde ao ServerName em vez do vhost específico solicitado sugeriria que você poderia usar o identificador %{Host} para obter a "perspectiva do cliente", portanto, a parte do host do cabeçalho da solicitação.

Para encontrar todos os arquivos de configuração que contenham uma linha LogFormat , você pode dar uma olhada em outra pergunta como a seguinte: Como encontrar todos os arquivos contendo texto específico no Linux?

    
por 16.12.2016 / 15:07