Como posso usar uma ferramenta de administração remota (fantoche ou chef) combinada com uma ferramenta de sincronização (por exemplo, rsync) para enviar arquivos de log de vários servidores para um servidor central?

1

Resumo

Como posso usar uma ferramenta de administração remota (fantoche ou chef) combinada com uma ferramenta de sincronização (por exemplo, rsync) e agendador (cron) para enviar arquivos de log de vários servidores para um servidor central?

Contexto

Nossos administradores de sistema (corretamente) reforçaram o acesso dos desenvolvedores aos servidores de produção. Uma conseqüência: os desenvolvedores, em particular, não terão mais acesso fácil aos arquivos de registro ao suportar problemas dos clientes.

Meta: enviar arquivos para o servidor de log comum

Gostaria de configurar a cópia automática de logs para um "servidor de log" central. Desenvolvedores / suporte teriam acesso de leitura ao sistema de arquivos 'log server' ao suportar problemas.

Aqui está um exemplo da nossa estrutura do sistema de arquivos. Um diretório por cliente. Dentro deste, um diretório por aplicativo. Cada aplicativo tem uma estrutura de subdiretórios e nomes de arquivos de log diferentes.

Server A
d:/
  Instances/
     CustomerFoo  
         App 101/
            logs
               server.log
               access.log
         App 201/
            logs
               stdout.log
               jdbc.log
               timing.log
     CustomerBar/
         App 101/
          ....
         App 301/
             logs/
                monitor.log

Estes iriam para um servidor central com uma estrutura como essa. (O nome do cliente é único dentro da empresa, portanto não teremos nenhuma colisão)

LogServer
d:/
  logfiles/
     CustomerFoo  
         App 101/
            logs/                   
         App 201/
            logs/
               ...
     CustomerBar/
         App 101/
          ....
         App 301/
             logs/

Resultado desejado

  • Eu gostaria de uma combinação de uma ferramenta de administração remota (fantoche ou chef) combinada com uma ferramenta de sincronização (rsync) e agendador (cron) para fazer a sincronização periódica
  • Administração remota fácil para várias caixas. isto é, edite o 'arquivo de configuração' em um lugar e envie-o para todos os servidores.

Ambiente

  • Windows Server 2008
  • loja do Windows. No entanto aberto a instalação do cygwin.
  • Eu pessoalmente conheço o rsync e o cron, mas nem fantoche nem chef. fwiw.

Obrigado antecipadamente!

    
por user50460 28.01.2014 / 18:03

1 resposta

0

Sugiro o syslog. É um (o) padrão para o que você quer.

Seu aplicativo precisa ser capaz de falar syslog, preferencialmente em um servidor syslog remoto. Parece que você está usando o Java? Espero que você esteja usando Log4J, porque isso vai falar syslog. Então você os aponta para o seu servidor syslog. existem servidores syslog comerciais e gratuitos disponíveis para o Windows.

Como alternativa, você pode gravar tudo, desde o aplicativo até o Log de Eventos do Windows, e usar assinaturas / coleções de log de eventos para obtê-los em outra máquina Windows à qual você tenha acesso.

Fazer isso apenas com logs de texto simples, quando você tem vários nós, é difícil de gerenciar, como você está descobrindo. É claro, você poderia apenas solicitar acesso somente leitura aos diretórios onde os logs estão no momento.

    
por 29.01.2014 / 15:15