Come hai implementato la gestione dei log sui tuoi server?


13

Sto cercando di capire come altre persone implementano i loro sistemi di gestione dei log.

Ho 20-30 server Linux e alcuni box di Windows (molti dei quali virtualizzati). Utilizziamo molti script Perl e Bash per svolgere la maggior parte dei nostri lavori automatizzati e sto cercando di standardizzare la loro registrazione.

Ho esaminato log4perl e log4sh per la registrazione di script e syslog-ng per ottenere tutti i registri su un server di registrazione centralizzato. Ho anche letto su splunk, anche se sembra che l'edizione enterprise sia piuttosto costosa e potrei andare oltre il limite di licenza gratuita con tutti i miei server.

Ho visto altri strumenti come swatch e logcheck, ma non sono sicuro di come tutti questi pezzi si incastrino ... Tutti i consigli sarebbero molto apprezzati!


Risposte:


8

Ho circa 30 server e utilizzo semplicemente syslog per inviare tutti i registri a un singolo server di registrazione. Per il backup, tutte le macchine sono inoltre configurate per archiviare i propri registri localmente per alcuni giorni, utilizzando logrotate per occuparsi della rotazione e della cancellazione dei vecchi registri.

Ognuno dei miei server applicazioni esegue un piccolo script perl per inviare i propri log a syslog, che quindi inoltra al loghost (script perl di seguito).

Quindi sul loghost abbiamo alcuni script personalizzati che sono simili al controllo dei log che fondamentalmente guardano i registri in arrivo per qualcosa di sospetto.

Abbiamo anche tutte le email di ogni host che vanno in un unico posto, in modo che se un programma si lamenta in questo modo, riceviamo tutti i messaggi. Questo potrebbe teoricamente andare in una singola cassetta postale su cui un programma potrebbe agire e analizzare.

Ecco il mio script perl di registrazione. Funziona reindirizzando l'output del programma in esso, quindi esegue il syslog dell'output e lo sputa di nuovo in modo da poterlo inviare altrove (invio a multilog). Puoi anche dargli l'opzione -q per andare su 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;

Lo script è piuttosto utile, ma con syslog sui client e syslog-ng su un server (o anche syslog-ng anche sui client) è possibile ottenere questa funzionalità con un maggiore controllo sul filtraggio dei log.
thepocketwade il

@thepocketwade: Very true. Non ho mai avuto bisogno della funzionalità aggiuntiva.
jedberg,

2

Anche se non l'ho ancora implementato, sto programmando di spostare tutte le mie macchine generatrici di log in rsyslog e di implementare un server di tipo bastione che funzionerà come raccoglitore di syslogs. Da lì, penso che la versione gratuita di Splunk possa fare tutto il necessario per estrarre informazioni.

Ora solo per implementarlo ...


2

Uso un host syslog centrale. Ogni sistema perimetrale invia * .debug al loghost centrale. L'host centrale syslog esegue syslog-ng e dispone di regole per dividere i registri in modo che ogni macchina generi i propri file denominati per quel giorno. Inoltre scarica tutto in un unico file, contro il quale eseguo un discendente di logcheck.sh.

Una volta al giorno eseguo un registro, che comprime qualsiasi registro di età superiore a 7 giorni ed elimina qualsiasi cosa di età superiore a 28 giorni. Tra i due, fornisce ai registri una durata prevista di 35 giorni sul server, il che significa che tutti i registri dovrebbero passare ai backup mensili, dove possono essere ripristinati per un massimo di due anni.

È intenso per l'archiviazione, ma sembra essere il modo migliore per garantire la copertura.


Ho un sistema simile, ma il mio server di registro ha cartelle predefinite (mail, auth, catchall) in cui vengono filtrati i registri. A un certo punto stavo cercando di usare Splunk. Potrei inoltrare facilmente i dati dal server di registro al server splunk.
thepocketwade il

1

Per la registrazione centralizzata, consiglio vivamente LogZilla . Lo usiamo da oltre un anno e lo adoriamo assolutamente. L'interfaccia utente è estremamente facile da imparare e da usare e l'installazione mi ha richiesto circa un'ora.

Anche se non lo fai, dovresti davvero cercare di allontanarti dal monitoraggio basato su script poiché è esattamente quello che ottieni ... il monitoraggio. Quello che dovresti cercare di ottenere è la gestione. La riparazione di problemi su Top talker, ecc. Ridurrà notevolmente la quantità di "incendi" innescati dal monitoraggio basato su script. Ecco un ottimo articolo sulla gestione di syslog:

http://www.cisco.com/en/US/technologies/collateral/tk869/tk769/white_paper_c11-557812.html


0

Utilizziamo un'appliance di LogLogic per la registrazione aziendale. È basato su syslog, quindi tutte le caselle * nix non hanno problemi ad usarlo; c'è una piccola app che deve essere installata sui server Windows. Posso cercare tutto quello che voglio, comprese le query REGEX, e sembra essere in grado di gestire un bel po 'di carico (la nostra configurazione di Active Directory da sola genera una quantità sbalorditiva di traffico).


1
Fai solo attenzione a valutare i loro prodotti ... Ho ricevuto circa 10 chiamate / e-mail, sono MOLTO persistenti.
Flamewires il

Penso che questo possa essere detto per quasi tutti i fornitori in questi giorni, e non ha alcuna influenza sulla funzionalità del prodotto reale stesso. Non vuoi sapere con quale frequenza DELL, EMC, ecc. Vengono a bussare / chiamare qui ....
Tatas,

0

Per il server di registrazione centralizzato, puoi dare un'occhiata al mio progetto Octopussy .

All'inizio è un sacco di lavoro, ma dopo puoi fare molte cose con questi registri!


0

Ecco un tutorial che ho scritto che copre tutti gli aspetti della registrazione e analisi centralizzate.

Link: http://crunchtools.com/centralizing-log-files/


Sto anche cercando log4sh per un progetto che ho internamente (eventualmente da open source, ma che funziona ora), chiamato scriptlog, essenzialmente lo esegui prima dei comandi che ti interessano dell'output e fa alcune cose magiche come l'aggiunta di un AVVISO stringa o stringa CRITICA, ha anche un plugin nagios per monitorarlo. Pubblicherò quando lo
tirerò
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.