Transporte de log e agregação em escala

14

Como você está a"nalisando a"rquivos de log de máquinas UNIX / Linux? Nós rodamos várias centenas de servidores que geram seus próprios a"rquivos de log, diretamente ou a"través do syslog. Eu estou procurando uma solução decente para a"gregar estes e escolher eventos importantes. Este problema é dividido em 3 componentes:

1) Transporte de mensagens

A maneira clássica é usar o syslog para registrar mensagens em um host remoto. Isso funciona bem para a"plicativos que efetuam login no syslog, mas são menos úteis para a"plicativos que gravam em um a"rquivo local. As soluções para isso podem incluir ter o log do a"plicativo em um FIFO conectado a" um programa para enviar a" mensagem usando o syslog, ou escrevendo a"lgo que irá fazer o grep dos a"rquivos locais e enviar a" saída para o host central do syslog. No entanto, se nos dermos a"o trabalho de escrever ferramentas para enviar mensagens para o syslog, seria melhor substituirmos o lote inteiro por a"lgo como Scribe Scribe que oferece mais flexibilidade e confiabilidade que o syslog?

2) Agregação de mensagens

As entradas de log parecem estar em um dos dois tipos: por host e por serviço. Mensagens por host são a"quelas que ocorrem em uma máquina; pense em falhas de disco ou logins suspeitos. Mensagens por serviço ocorrem na maioria ou em todos os hosts que executam um serviço. Por exemplo, queremos saber quando o Apache encontra um erro de SSI, mas não queremos o mesmo erro de 100 máquinas. Em todos os casos, queremos a"penas ver um de cada tipo de mensagem: não queremos 10 mensagens dizendo que o mesmo disco falhou, e não queremos uma mensagem toda vez que um SSI quebrado é a"tingido.

Uma a"bordagem para resolver isso é a"gregar várias mensagens do mesmo tipo em uma em cada host, enviar a"s mensagens para um servidor central e a"gregar mensagens do mesmo tipo em um evento geral. O SER pode fazer isso, mas é difícil de usar. Mesmo depois de a"lguns dias brincando, eu só tinha a"gregações rudimentares funcionando e tinha que procurar constantemente a" lógica que o SER usa para correlacionar eventos. É a"lgo poderoso, mas complicado: eu preciso de a"lgo que meus colegas possam pegar e usar no menor tempo possível. As regras do SER não a"tendem a" esse requisito.

3) Gerando a"lertas

Como informamos nossos a"dministradores quando a"lgo interessante a"contece? Mail na caixa de entrada do grupo? Injetar em Nagios?

Então, como você está resolvendo esse problema? Eu não espero uma resposta em um prato; Eu mesmo posso descobrir os detalhes, mas uma discussão de a"lto nível sobre o que certamente é um problema comum seria ótima. No momento estamos usando uma miscelânea de tarefas cron, syslog e quem sabe o que mais para encontrar eventos. Isso não é extensível, sustentável ou flexível e, como tal, perdemos muitas coisas que não devemos.

Atualizado: já estamos usando o Nagios para monitorar o que é ótimo para hosts detectados / serviços de teste / etc, mas menos útil para extrair a"rquivos de log. Eu sei que existem plugins de log para o Nagios, mas estou interessado em a"lgo mais escalável e hierárquico do que os a"lertas por host.

    
por markdrayton 01.05.2009 / 15:09

0 respostas