Balanceamento de carga do Syslog-ng

1

Estou trabalhando na configuração de um servidor syslog-ng para aceitar logs de várias fontes. A configuração geral será:

Device1
Device2                               Syslog1
Device3   -->   Load balancer   -->   Syslog2   -->   Shared SAN storage
Device4                               Syslog3
Device5

Estou usando o 514 / udp e, com essa configuração, devo ter HA facilmente e ser capaz de arredondar e distribuir a carga. Minha preocupação é como o armazenamento será compartilhado e gravado no back-end. Idealmente, gostaria que cada dispositivo tivesse um arquivo deviceX.log para o dia. O que acontece se o syslog1 receber um arquivo de log grande do device1 e ainda estiver gravando no device1.log quando o syslog2 receber um pequeno arquivo de log do device1 e começar a tentar gravar no mesmo arquivo ao mesmo tempo?

Eu li que no Linux, se você acrescentar o arquivo e não abri-lo no modo "gravação", você nunca obterá o erro protegido contra gravação. Não tenho certeza de como o syslog faz isso.

Então, minhas perguntas são:

  1. Qual sistema de arquivos compartilhado você recomendaria para a SAN compartilhar nas caixas de syslog?
  2. Existe uma maneira melhor de fazer os vários servidores syslog em um arquivo? Se o syslog apenas acrescentar, então eu devo ficar bem.

Qualquer recomendação seria muito apreciada. Agradecemos antecipadamente.

    
por Eric 10.05.2013 / 19:12

2 respostas

0

Descobri que qualquer tipo de sistema de arquivos de cluster como o GlusterFS funcionaria bem para vários servidores gravando em um arquivo. No entanto, devido à infraestrutura de SAN que tenho, isso não foi possível. Por isso acabei escrevendo um arquivo por dia por cluster syslog.

Syslog1 --> 2012-07-29-sys01.log
Syslog2 --> 2012-07-29-sys02.log

Eu então usei o script logmerge e um cronjob para combinar os arquivos e classificá-los pela hora correta. O cron job abaixo é executado no dia após os arquivos serem gravados.

/local/bin/logmerge -f /logs/date -d yesterday +\%Y-\%m-\%d-sys*.log | gzip -9 -c > /logs/date -d yesterday +\%Y-\%m-\%d.log.gz && rm -f /logs/date -d yesterday +\%Y-\%m-\%d-sys*.log

    
por 29.07.2013 / 15:11
0

Não tenho certeza do que você está usando para um balanceador de carga, mas recomendo que em seu balanceador de carga você configure algum tipo de "rigidez" para que os registros do Device1 sempre sejam direcionados para o Syslog1, etc.

Isso resolveria sua preocupação com o arquivo de log, mas também impediria o que eu consideraria um problema tão ruim quanto isso.

Minha preocupação com o seu exemplo seria se houvesse muitas entradas de log passadas de Device1 para Syslog1 e, em seguida, um número menor passado de Device1 para Syslog2 seria que o Syslog2 poderia inserir as mensagens syslog posteriores fora de ordem em seu arquivo de log.

    
por 10.05.2013 / 19:36