Trasporto di tronchi e aggregazione su larga scala


14

Come stai analizzando i file di registro dalle macchine UNIX / Linux? Eseguiamo diverse centinaia di server che generano tutti i propri file di registro, direttamente o tramite syslog. Sto cercando una soluzione decente per aggregare questi e selezionare eventi importanti. Questo problema si suddivide in 3 componenti:

1) Trasporto dei messaggi

Il modo classico è utilizzare syslog per registrare i messaggi su un host remoto. Funziona bene per le applicazioni che accedono a syslog ma meno utile per le app che scrivono in un file locale. Le soluzioni per questo potrebbero includere il collegamento dell'applicazione in un FIFO collegato a un programma per inviare il messaggio tramite syslog o scrivendo qualcosa che eseguirà il grep dei file locali e invierà l'output all'host syslog centrale. Tuttavia, se dovessimo preoccuparci di scrivere strumenti per inserire messaggi in syslog, sostituiremmo meglio l'intero lotto con qualcosa come Facebook Scribe che offre maggiore flessibilità e affidabilità rispetto a syslog?

2) Aggregazione dei messaggi

Le voci del registro sembrano rientrare in uno dei due tipi: per host e per servizio. I messaggi per host sono quelli che si verificano su una macchina; pensa a guasti del disco o accessi sospetti. I messaggi per servizio si verificano sulla maggior parte o su tutti gli host che eseguono un servizio. Ad esempio, vogliamo sapere quando Apache trova un errore SSI ma non vogliamo lo stesso errore da 100 macchine. In tutti i casi vogliamo vedere solo uno di ogni tipo di messaggio: non vogliamo 10 messaggi che affermino che lo stesso disco non è riuscito e non vogliamo un messaggio ogni volta che viene colpito un SSI rotto.

Un approccio per risolvere questo problema consiste nell'aggregare più messaggi dello stesso tipo in uno su ciascun host, inviare i messaggi a un server centrale e quindi aggregare i messaggi dello stesso tipo in un evento globale. SER può farlo ma è scomodo da usare. Anche dopo un paio di giorni di violinismo, ho lavorato solo su aggregazioni rudimentali e ho dovuto cercare costantemente la logica che SER utilizzava per correlare gli eventi. È roba potente ma difficile: ho bisogno di qualcosa che i miei colleghi possano raccogliere e usare nel più breve tempo possibile. Le regole SER non soddisfano tale requisito.

3) Generazione di avvisi

Come facciamo a dire ai nostri amministratori quando succede qualcosa di interessante? Invia la posta in arrivo al gruppo? Iniettare in Nagios?

Allora, come stai risolvendo questo problema? Non mi aspetto una risposta su un piatto; Riesco a capire i dettagli da solo, ma una discussione di alto livello su quello che sicuramente è un problema comune sarebbe grande. Al momento stiamo usando un mix di cron job, syslog e chissà cos'altro per trovare gli eventi. Questo non è estensibile, mantenibile o flessibile e come tale ci manca un sacco di cose che non dovremmo.

Aggiornato: stiamo già utilizzando Nagios per il monitoraggio, il che è ottimo per i down host / servizi di test / ecc. Rilevati ma meno utile per lo scraping dei file di registro. So che ci sono plugin di log per Nagios, ma sono interessato a qualcosa di più scalabile e gerarchico degli avvisi per host.


Risposte:


5

Ho usato tre diversi sistemi per centralizzare i log:

  1. Syslog / syslog-ng inoltro a un host
  2. Zenoss per aggregare e avvisare eventi
  3. Splunk per l'aggregazione e la ricerca dei registri

Per il n. 3, in genere utilizzo syslog-ng per inoltrare i messaggi da ciascun host direttamente in splunk. Può anche analizzare direttamente i file di registro, ma può essere un po 'una seccatura.

Splunk è davvero fantastico per la ricerca e la classificazione dei tuoi registri. Non ho usato splunk per avvisare i log, ma penso che sia possibile.


+1 per Splunk. Splunk può attivare script esterni quando vengono rilevati determinati eventi; inviando una mail o una trap SNMP.
Murali Suriar,

2

Puoi dare un'occhiata a OSSEC, un HIDS open-source completo, esegue analisi dei log e può attivare azioni o inviare posta sugli avvisi. Gli avvisi sono trigerati da una serie di semplici regole basate su XML, molte di quelle predefinite per vari formati di registro sono incluse e puoi aggiungere le tue regole

http://www.ossec.net/


1

Dai un'occhiata a Octopussy . È completamente personalizzabile e sembra rispondere a tutte le tue esigenze ...

PS: sono lo sviluppatore di questa soluzione.


1
Non vorrei rischiare di distribuire o addirittura raccomandare un prodotto che ha "figa" nel nome. Questo probabilmente non andrebbe bene con la maggior parte delle aziende, in particolare se ci sono donne che lavorano all'interno dell'IT (abbastanza comune in questi giorni).
Starfish,

0

È necessario esaminare un sistema di monitoraggio, ad esempio Zenoss Core . Tra le altre cose, dice nella pagina introduttiva:

Il monitoraggio e la gestione degli eventi Zenoss offre la possibilità di aggregare le informazioni del registro e degli eventi da varie fonti tra cui monitoraggio della disponibilità, monitoraggio delle prestazioni, origini syslog , origini trap SNMP, registro eventi Windows.

Scopri quale-strumento-fai-che-usi-per-monitorare-i-tuoi-server .


Non mi ero reso conto che Zenoss avesse funzionalità di aggregazione dei registri. Dò un'occhiata - grazie.
markdrayton,
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.