Como você implementou o gerenciamento de logs em seus servidores?

13

Estou tentando descobrir como outras pessoas implementam seus sistemas de gerenciamento de registros.

Tenho 20 a 30 servidores Linux e algumas caixas do Windows (a maioria delas virtualizadas). Nós utilizamos muitos scripts Perl e Bash para fazer a maioria de nossos trabalhos automatizados e estou tentando padronizar seu registro.

Eu tenho procurado log4perl e log4sh para log de scripts e syslog-ng para obter todos os logs em um servidor de log centralizado. Eu também li em splunk, mesmo que seja como se a edição corporativa fosse muito cara e eu pudesse passar o limite de licença livre com todos os meus servidores.

Eu vi outras ferramentas, como swatch e logcheck, mas não tenho certeza de como todas essas peças se encaixam ... Quaisquer recomendações seriam muito apreciadas!

    
por Edward 02.08.2009 / 18:45

7 respostas

8

Tenho cerca de 30 servidores e uso apenas o syslog para enviar todos os registros para um único servidor de registro. Para backup, todas as máquinas também são configuradas para armazenar seus próprios logs localmente por alguns dias, usando o logrotate para cuidar da rotação e exclusão de logs antigos.

Cada um dos meus servidores de aplicativos executa um pequeno script perl para enviar seus logs para o syslog, que então encaminha para o loghost (script perl abaixo).

Em seguida, no loghost, temos alguns scripts personalizados que são semelhantes ao logcheck que basicamente observam os logs de entrada em busca de algo suspeito.

Também temos todos os e-mails de todos os hosts indo para um único local, de modo que, se algum programa reclamar dessa maneira, recebemos todas as mensagens. Isso poderia, teoricamente, ir para uma única caixa de correio na qual um programa poderia atuar e analisar.

Aqui está o meu script perl de logging. Ele funciona pipetando a saída do programa para ele, e então ele syslogs a saída e cospe de volta para fora para que você possa enviá-lo em outro lugar (eu envio para o multilog). Você também pode dar a opção -q para ir ao syslog.

#!/usr/bin/perl

use Sys::Syslog;
use Getopt::Long;

$SERVER_NAME = 'hostname';
chomp $SERVER_NAME;
$FACILITY = 'local0';
$PRIORITY = 'info';

GetOptions ('s=s' => \$SERVER_NAME, 'f=s' => \$FACILITY, 'p=s' => \$PRIORITY, 'q+' => \$quiet);

#print "$SERVER_NAME\n$FACILITY\n$PRIORITY\n";

#Sys::Syslog::setlogsock('unix');
openlog ($SERVER_NAME,'ndelay',$FACILITY);

if (!($quiet)) {syslog($PRIORITY,"Logging Started -- Logger version 1.1");}

$| = 1;

while (<>) {
    if (!($quiet)) {print $_ unless $_ =~ /^\s+$/};
    chomp;
    syslog($PRIORITY,$_) if $_;
}

closelog;

$| = 0;
    
por 02.08.2009 / 20:13
2

Embora ainda não tenha implementado, planejo mover todas as minhas máquinas geradoras de logs para o rsyslog e implementar um servidor do tipo bastion que funcionará como o coletor de syslogs. A partir daí, acho que a versão gratuita do Splunk pode fazer tudo o que eu preciso para obter informações.

Agora, apenas para implementá-lo ...

    
por 02.08.2009 / 18:49
2

Eu uso um host syslog central. Cada sistema de borda envia * .debug ao loghost central. O host syslog central executa o syslog-ng e possui regras para dividir os logs, de modo que cada máquina gera seus próprios arquivos nomeados para esse dia. Ele também despeja tudo em um único arquivo, contra o qual eu corro um descendente de logcheck.sh.

Uma vez por dia, executo um compactador de log, que captura todos os logs com mais de 7 dias e exclui qualquer coisa com mais de 28 dias. Entre os dois, ele fornece aos logs uma vida útil esperada de 35 dias no servidor, o que significa que todos os logs devem chegar a backups mensais, onde podem ser recuperados por até dois anos.

É intenso em armazenamento, mas parece ser a melhor maneira de garantir cobertura.

    
por 03.08.2009 / 01:26
1

Para o registro centralizado, eu recomendo o LogZilla . Estamos usando há mais de um ano e adoramos. A interface do usuário é extremamente fácil de aprender e usar e a instalação demorou cerca de uma hora.

Mesmo que você não o faça, você realmente deve tentar se afastar do monitoramento baseado em script, já que é exatamente isso que você recebe ... monitorando. O que você deve tentar alcançar é a Administração. A reparação de problemas nos principais palestrantes, etc., reduzirá bastante a quantidade de "disparos" acionados pelo monitoramento da base de scripts. Aqui está um artigo muito bom sobre gerenciamento de syslog:

link

    
por 05.12.2011 / 23:45
0

Nós usamos um appliance da LogLogic para nosso registro corporativo. É baseado em syslog, então todas as caixas * nix não têm problema em usá-lo; Existe um pequeno aplicativo que precisa ser instalado em servidores Windows. Eu posso procurar em qualquer coisa que eu quero, incluindo consultas REGEX, e parece ser capaz de lidar com um pouco de carga (nossa configuração do Active Directory sozinho gera uma quantidade incompreensível de tráfego).

    
por 02.08.2009 / 20:34
0

Para o servidor de registro centralizado, você pode dar uma olhada no meu projeto Octopussy .

É muito trabalhoso no começo, mas depois você pode fazer muitas coisas com esses registros!

    
por 03.08.2009 / 01:56
0

Aqui está um tutorial que escrevi que abrange todos os aspectos do registro e análise centralizados.

Link: link

    
por 22.09.2010 / 21:05