Manipulação de arquivos de log e configuração ao balancear a carga do apache

1

Eu fiz esta pergunta no Stack Overflow, então eu liberei que o serverfault seria mais apropriado, peço desculpas se alguém se deparar com esses dois problemas.

Então, estou atualmente reconstruindo minha plataforma web de uma única máquina para um cluster de máquinas, e usarei o balanceamento de carga do Apache para fazer isso., mas tenho duas perguntas que preciso de uma boa resposta antes de prosseguir . Eu pesquisei e procurei aqui no SF, mas não encontrei nada de bom.

Minha configuração será uma máquina Debian executando o servidor de balanceamento de carga Apache (ou seja, Apache com mod_proxy) e, em seguida, qualquer número de máquinas "escravas", que são membros de balanceamento. Todos esses são VPS dentro de uma máquina VMWare, portanto, configurar novos escravos conforme necessário será trivial.

Arquivos de registro A primeira questão é a dos arquivos de log. Para solucionar problemas da minha plataforma, às vezes preciso analisar os arquivos de log, os logs de acesso e os logs de erros do Apache. Quando a carga é distribuída uniformemente (ou seja, eu não sei se vou usar balanceamento permanente, qualquer host provavelmente poderia manipular qualquer solicitação a qualquer momento), assim como os arquivos de log para cada instância do Apache escravo. Existe uma maneira de consolidar esses live , o que significa que o meu analisador de log ao vivo pode ver os arquivos de log de todos os hosts? Eu certamente entendo que fazer isso enquanto os arquivos que estão em vários hosts seria difícil, então existe uma maneira de garantir que todos os arquivos de log sejam mantidos em um servidor?

Estou pensando em duas coisas, mas agradeceria muito sua opinião.

syslogd O primeiro é o syslogd, no qual seria possível que vários hosts gravassem em um host de registro. O problema com isso é que na minha configuração atual, cada host virtual no apache possui seu próprio arquivo de log. Isso provavelmente poderia ser corrigido de alguma maneira embora. Meu uso principal para isso é para solução de problemas, não manter logs separados para cada host (embora se ambos os objetivos pudessem ser atendidos, isso certamente seria um bônus).

NFS Meu próximo pensamento foi sobre o NFS, ou seja, ter um compartilhamento NFS na LAN, onde cada escravo pode gravar no mesmo arquivo de log. Vou seguir em frente e assumir que isso será difícil, já que o slave 1 abriria o arquivo de log e o slave 2 não seria capaz de gravar nele.

Como eu disse, sua opinião é muito apreciada, já que sinto que estou presa em como resolver isso.

Arquivos de configuração Isso é outra coisa completamente diferente. Cada escravo responderá a cada solicitação como se estivesse agindo como um único servidor. Essa é toda a ideia. Mas e quanto a fazer alterações nos arquivos de configuração do apache, adicionar hosts virtuais, configurar outros parâmetros? E se eu tiver dez escravos ou cinquenta? Existe uma maneira de garantir que todos esses escravos estejam sempre em sincronia? Eu já estou usando uma exportação NFS para garantir que todos eles tenham os mesmos arquivos, mas devo usar a mesma abordagem com os arquivos de configuração? Ou eu deveria tê-los como alguma forma de repositório e depois usar o rsync para copiá-los para os escravos? Um problema é que eu construí uma interface na minha plataforma web que edita esses arquivos de configuração (ou seja, o arquivo com os hosts virtuais), e como essa ação ocorreria em um dos escravos, a cópia mais atual desse arquivo poderia potencialmente estar em um escravo.

Eu percebo que este era um post longo e com muito poder, e peço desculpas. Eu só queria ter certeza de que todos os parâmetros do meu problema foram expressos.

Espero que alguém possa me ajudar, como você fez antes! Obrigado antecipadamente!

    
por Sandman 28.07.2011 / 10:58

1 resposta

1

  1. Dê uma olhada em logresolvemerge .
  2. Você pode combinar rsync com incrond .
por 28.07.2011 / 12:51