Pergunta de registro do balanceador de carga do Apache

3

Estou usando o Apache como um balanceador de carga e gostaria de registrar o servidor para o qual o balanceador de carga está encaminhando a solicitação. Por exemplo, se eu tivesse três servidores da Web, chamados:

  • webserver1 - 192.168.0.1
  • webserver2 - 192.168.0.2
  • webserver3 - 192.168.0.3

Gostaria que o log me mostrasse para qual servidor a solicitação foi forjada (denotada por negrito ):

10.1.0.1 192.168.0.1 - - [20/Jul/2010:10:52:01 -0600] "GET /js/shared/kobj-static.js HTTP/1.1" 302 236 "http://www.google.com/search?q=baked+bbq+rib+recipes&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729) infoCard/AzigoLite/0.0.12"

Qualquer ajuda seria apreciada.

    
por QWade 20.07.2010 / 18:58

1 resposta

6

Você pode usar o formato de registro personalizado para fazer isso. Uma maneira que eu acho que você pode fazer é adicionar a variável de ambiente ao log. mod_proxy_balancer (que suponho que você esteja usando) exporta a variável BALANCER_WORKER_NAME que é o nome do Worker usado para a solicitação. Você pode usar a diretiva %{BALANCER_WORKER_NAME}e na sua string de formato de log personalizado para obter isso registrado. Este é um exemplo do formato de log combinado 'debian' padrão com a diretiva adicionada:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{BALANCER_WORKER_NAME}e\"" combined
    
por 20.07.2010 / 19:28