elk - elasticsearch logstash kibana stack explained

48
ELK Elasticsearch Logstash Kibana [email protected] - CTO Federico Panini CTO @ fazland.com email : [email protected] linkedIn : https://uk.linkedin.com/in/federicopanini slides : http://www.slideshare.net/FedericoPanini

Upload: federico-panini

Post on 14-Aug-2015

115 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Elk - Elasticsearch Logstash Kibana stack explained

ELKElasticsearch Logstash Kibana

[email protected] - CTO

Federico Panini

CTO @ fazland.comemail : [email protected]

linkedIn : https://uk.linkedin.com/in/federicopaninislides : http://www.slideshare.net/FedericoPanini

Page 2: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema #1essere in grado di avere informazioni utili dai files di log.

[email protected] - CTO

Page 3: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema #2essere in grado di avere informazioni utili dai files di log.

[email protected] - CTO

Page 4: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema #3essere in grado di avere informazioni utili dai files di log.

[email protected] - CTO

In questa semplice infrastruttura sono presenti un buon numero di servizi ed applicativi.

Ogni istanza avrà sicuramente un file syslog ed un auth.log che voglio tenere sotto controllo

HTTP : nginx : access.log error.log

web app: app.log

MongoDB : mongo.log

Memcached : memcached.log

Page 5: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema #4essere in grado di avere informazioni utili dai files di log.

[email protected] - CTO

Già con pochi servers il numero di logs da dover controllare e gestire è abbastanza elevato

12 file di logs !!!(2 web srv in load balanding)

Page 6: Elk - Elasticsearch Logstash Kibana stack explained

q

mmmmmmm….

Page 7: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema #5essere in grado di avere informazioni utili dai files di log.

[email protected] - CTO

In una soluzione scalabile il numero di macchine in parallelo può aumentare… questo implica un aumento repentino del numero di files di log da dover gestire…..

Page 8: Elk - Elasticsearch Logstash Kibana stack explained
Page 9: Elk - Elasticsearch Logstash Kibana stack explained

Il dominio del nostro problema Ricapitoliamo

[email protected] - CTO

1. Gestione di un numero elevato di logs 2. Necessità di dover centralizzare la gestione dei log files 3. Rendere i logs più facilmente interpretabili e

comprensibili 1. per i devs 2. e perchè no anche al business

Page 10: Elk - Elasticsearch Logstash Kibana stack explained

I file di logs sono una miniera inesauribile di informazioni!Ricapitoliamo

[email protected] - CTO

1. Sono dati reali 2. Sono le informazioni sul comportamento della vs

applicazione 3. Sono le informazioni sul comportamento dei vs utenti

DOVETE POTERLI LEGGERE!

Page 11: Elk - Elasticsearch Logstash Kibana stack explained

Logs ? Cosa sono ? #1

[email protected] - CTO

I file di logs sono tipi di dato strutturati, solitamente in files di testo. Sono utilizzati per poter registrare le azioni di un applicazione, un servizio, un elemento di rete.

Il vero problema dei logs è la loro natura del tutto eterogenea tra loro. A seconda del servizio il file di conterrà dati spesso molto differenti tra loro….

Page 12: Elk - Elasticsearch Logstash Kibana stack explained

Logs ? Cosa sono ? #2

[email protected] - CTO

[15/Jun/2015:15:00:29 +0000] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (Windows NT 6.1; WOW..

TIME TEXT

Page 13: Elk - Elasticsearch Logstash Kibana stack explained

[email protected] - CTO

Page 14: Elk - Elasticsearch Logstash Kibana stack explained

A cosa servono ?

[email protected] - CTO

Log è un termine comunemente usato nell'informatica, specie in ambito sistemistico, per indicare:

1) la registrazione sequenziale e cronologica delle operazioni effettuate, da un utente, un amministratore o automatizzate, man mano che vengono eseguite dal sistema o applicazione;

2) il file o insieme di file su cui tali registrazioni sono memorizzate ed eventualmente accedute in fase di analisi dei dati, detto anche registro eventi.

Page 15: Elk - Elasticsearch Logstash Kibana stack explained

logs : quali vantaggi ?

[email protected] - CTO

1.Registrare eventi2.Registrare eventi informativi / errori

1.eventi informativi : flusso normale applicativo

2.eventi negativi : errori

Page 16: Elk - Elasticsearch Logstash Kibana stack explained

Tipi di logs : Logs di sistema

[email protected] - CTO

generati dal sistema operativo… auth.log, syslog etc…

Page 17: Elk - Elasticsearch Logstash Kibana stack explained

Tipi di logs : logs applicativi

[email protected] - CTO

generati dallo stack del proprio applicativo o dall’applicativo stesso : nginx, apache, mysql, tomcat, framework come symfony, ruby on rails, php …. etc.

Page 18: Elk - Elasticsearch Logstash Kibana stack explained

cosa fare ???

[email protected] - CTO

Page 19: Elk - Elasticsearch Logstash Kibana stack explained

TAIL ?!?!?

[email protected] - CTO

Siete sicuri !?!?

Page 20: Elk - Elasticsearch Logstash Kibana stack explained

Sicuri Sicuri ???????

[email protected] - CTO

Page 21: Elk - Elasticsearch Logstash Kibana stack explained

Sicuri Sicuri ???????

Questo approccio non è SCALABILE !!

[email protected] - CTO

e poi provate a sentire cosa ne pensano quelli del marketing….

Page 22: Elk - Elasticsearch Logstash Kibana stack explained

NAGIOS

[email protected] - CTO

Nagios è un ottima soluzione open source, che permette di controllare la propria infrastruttura IT e di definire delle soglie di alert per poter intervenire in tempo nel caso si verifichino errori.

Page 23: Elk - Elasticsearch Logstash Kibana stack explained

NAGIOS

[email protected] - CTO

cosa può fare :

• Monitor servizi di rete (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH)• Monitor risorse host (carico CPU, utilizzo disco, system logs)• Monitor temperatura della cpu , allarmi di sistema.• Monitoring via remotely run scripts via Nagios Remote Plugin Executor• Remote monitoring sfruttando SSH o SSL tunneling• Facilità di implementare plugin custom in moltissimi linguaggi di programmazione• Plugins per la generazione di grafici• Servizi di alert via SMS, Email

Page 24: Elk - Elasticsearch Logstash Kibana stack explained

MONIT

[email protected] - CTO

Monit è un tool open source per gestire e monitorare sistemi Unix.

Una delle feature interessanti di Monit è che può essere configurato per “reagire” al verificare di certi eventi e cercare di correggere un comportamento erroneo di un servizio Unix.

Esempio : Se sendmail non risponde Monit può eseguirne il restart.

Se Apache è sta usando troppe risorse potrebbe essere in corso un attacco DDOS: Monit può riavviare i l se rv i z i o e “bannare ” l ’ IP dell’ipotetico attacker.

Page 25: Elk - Elasticsearch Logstash Kibana stack explained

GRAYLOG 2

[email protected] - CTO

Graylog2 è una soluzione di altissimo livello e forse l’unica tra quelle citate a competere direttamente con Kibana. Allo stesso modo di Kibana+Logstash , Graylog2 è in grado di utilizzare Elasticsearch per indicizzare i dati e questo è certamente un plus rispetto ad altri concorrenti.

Rispetto a Kibana è più veloce nella gestione dei log e su grossi moli di dati questo, vi renderete conto, è un bel vantaggio. Logstash risulta di gran lunga più potente nel parsing dei file e permette maggiori margini di “manovra”. Allo stesso tempo Logstash risulta essere più lento.

Page 26: Elk - Elasticsearch Logstash Kibana stack explained

GRAYLOG 2 #2

[email protected] - CTO

Vantaggi Graylog vs Kibana:- autenticazione multiutente- alert pro-attivi per determinati tipi di evento.

Page 27: Elk - Elasticsearch Logstash Kibana stack explained

Molto altro

[email protected] - CTO

- Collectd- statsd- ganglia- Fluentd- e molte altre soluzioni…

Page 28: Elk - Elasticsearch Logstash Kibana stack explained

ELKRobusto / Open source / accessibile

[email protected] - CTO

Page 29: Elk - Elasticsearch Logstash Kibana stack explained

Elasticsearchfull text search engine

[email protected] - CTO

1. full text search engine 2. Basato Apache Lucene 3. Veloce 4. Java 5. Open Source

Page 30: Elk - Elasticsearch Logstash Kibana stack explained

Logstashaggrega, normalizza log files

[email protected] - CTO

1. Aggregatore di logs. 2. Normalizza tipi di dato e logs. 3. Facilmente personalizzabile. 4. Possibilità di creare plugins per i

propri dati.

Page 31: Elk - Elasticsearch Logstash Kibana stack explained

Kibanavisualizza i tuoi dati

[email protected] - CTO

1. Effettua ricerche sui file di log velocemente.

2. Organizza i risultati delle ricerche in oggetti

3. Inserisci i tuoi oggetti in dashboards.

Page 32: Elk - Elasticsearch Logstash Kibana stack explained

Kibana #1visualizza i tuoi dati

[email protected] - CTO

Page 33: Elk - Elasticsearch Logstash Kibana stack explained

Kibana #2visualizza i tuoi dati

[email protected] - CTO

Page 34: Elk - Elasticsearch Logstash Kibana stack explained

Logstash

[email protected] - CTO

1. Leggi i files di logs 2. Normalizza i dati 3. Esporta i dati normalizzati in una sorgente dati

Page 35: Elk - Elasticsearch Logstash Kibana stack explained

Logstash

[email protected] - CTO

Il segreto dello stack ELK risiede in buona parte in Logstash: questo tool è fondamentale per poter manipolare, normalizzare ed importare in Elasticsearch i file di log.

Page 36: Elk - Elasticsearch Logstash Kibana stack explained

Logstash

[email protected] - CTO

Logstash è spesso paragonato ad una Pipeline unix

Input —> Filter —> Output

Page 37: Elk - Elasticsearch Logstash Kibana stack explained

LogstashInput : generano gli eventi

[email protected] - CTO

couchdb_changes drupal_dblog elasticsearch exec eventlog file ganglia gelf generator graphite github heartbeat heroku irc imap jmx

kafka log4j lumberjack meetup pipe puppet_facter relp rss rackspace rabbitmq redis snmptrap stdin sqlite s3 sqs

stomp syslog tcp twitter unix udp varnishlog wmi websocket xmpp zenoss zeromq

44 INPUTS

Page 38: Elk - Elasticsearch Logstash Kibana stack explained

LogstashFilters : manipolano eventi generati in input

[email protected] - CTO

alter anonymize collate csv cidr clone cipher checksum date dns drop elasticsearch extractnumbers environment elapsed fingerprint geoip grok

i18n json json_encode kv mutate metrics multiline metaevent prune punct ruby range syslog_pri sleep split throttle translate uuid

urldecode useragent xml zeromq

40 FILTERS

Page 39: Elk - Elasticsearch Logstash Kibana stack explained

LogstashOutput : manipolano eventi generati in input

[email protected] - CTO

54 OUTPUT

boundary circonus csv cloudwatch datadog datadog_metrics email elasticsearch exec file google_bigquery google_cloud_storage ganglia gelf graphtastic graphite hipchat http irc

websocket xmpp zabbix zeromq influxdb juggernaut jira kafka lumberjack librato loggly mongodb metriccatcher nagios null nagios_nsca opentsdb pagerduty pipe

riemann redmine rackspace rabbitmq redis riak s3 sqs stomp statsd solr_http

sns syslog stdout tcp udp

Page 40: Elk - Elasticsearch Logstash Kibana stack explained

Logstashconfigurazione

[email protected] - CTO

input {

—> definisce l’input per i files di logs}

filter {

—> definisce come normalizzare i logs}

output {

—> esporta i logs normalizzati in una sorgente}

Page 41: Elk - Elasticsearch Logstash Kibana stack explained

LogstashINPUT

[email protected] - CTO

input {

—> definisce l’input per i files di logs}

Page 42: Elk - Elasticsearch Logstash Kibana stack explained

LogstashFILTERS

[email protected] - CTO

filter {

—> definisce l’input per i files di logs}

Page 43: Elk - Elasticsearch Logstash Kibana stack explained

LogstashOUTPUT

[email protected] - CTO

output {

—> definisce l’input per i files di logs}

Page 44: Elk - Elasticsearch Logstash Kibana stack explained

Logstashretention dei dati

[email protected] - CTO

I filtri di output possono essere molteplici :

export su elasticsearchexport su AWS S3

E’ possibile utilizzare elasticsearch con i dati degli ultimi n mesi ed allo

stesso tempo averli tutti quanti salvati in un altro repository come per

esempio S3.

Page 45: Elk - Elasticsearch Logstash Kibana stack explained

Logstash

[email protected] - CTO

Page 46: Elk - Elasticsearch Logstash Kibana stack explained

ELK

[email protected] - CTO

DEMO TIME !

Page 47: Elk - Elasticsearch Logstash Kibana stack explained

Logstash - Plus

[email protected] - CTO

https://moz.com/blog/technical-seo-log-analysis

Page 48: Elk - Elasticsearch Logstash Kibana stack explained

References• Monit : https://mmonit.com/monit/• Nagios : https://www.nagios.org/• statsd : https://codeascraft.com/2011/02/15/measure-anything-

measure-everything/• collectd : https://collectd.org/• ganglia : http://ganglia.sourceforge.net/• fluentd: http://www.fluentd.org/• graylog2 : https://www.graylog.org/ • ELK :

• elasticsearch: https://www.elastic.co/• kibana: https://www.elastic.co/products/kibana • logstash: https://www.elastic.co/products/logstash

• https://www.youtube.com/watch?v=RuUFnog29M4

[email protected] - CTO