2. Il dominio del nostro problema #1
essere in grado di avere informazioni utili dai files di log.
federico.panini@fazland.com - CTO
3. Il dominio del nostro problema #2
essere in grado di avere informazioni utili dai files di log.
federico.panini@fazland.com - CTO
4. Il dominio del nostro problema #3
essere in grado di avere informazioni utili dai files di log.
federico.panini@fazland.com - 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
5. Il dominio del nostro problema #4
essere in grado di avere informazioni utili dai files di log.
federico.panini@fazland.com - 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)
7. Il dominio del nostro problema #5
essere in grado di avere informazioni utili dai files di log.
federico.panini@fazland.com - 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…..
8.
9. Il dominio del nostro problema
Ricapitoliamo
federico.panini@fazland.com - 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
10. I file di logs sono una miniera inesauribile di
informazioni!
Ricapitoliamo
federico.panini@fazland.com - 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!
11. Logs ? Cosa sono ? #1
federico.panini@fazland.com - 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….
12. Logs ? Cosa sono ? #2
federico.panini@fazland.com - CTO
[15/Jun/2015:15:00:29 +0000] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (Windows NT 6.1; WOW..
TIME TEXT
14. A cosa servono ?
federico.panini@fazland.com - 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.
16. Tipi di logs : Logs di sistema
federico.panini@fazland.com - CTO
generati dal sistema operativo… auth.log, syslog etc…
17. Tipi di logs : logs applicativi
federico.panini@fazland.com - CTO
generati dallo stack del proprio applicativo o dall’applicativo stesso : nginx, apache, mysql,
tomcat, framework come symfony, ruby on rails, php …. etc.
21. Sicuri Sicuri ???????
Questo approccio non è SCALABILE !!
federico.panini@fazland.com - CTO
e poi provate a sentire cosa ne pensano quelli del marketing….
22. NAGIOS
federico.panini@fazland.com - 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.
23. NAGIOS
federico.panini@fazland.com - 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
24. MONIT
federico.panini@fazland.com - 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
il servizio e “bannare” l’IP
dell’ipotetico attacker.
25. GRAYLOG 2
federico.panini@fazland.com - 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.
29. Elasticsearch
full text search engine
federico.panini@fazland.com - CTO
1. full text search engine
2. Basato Apache Lucene
3. Veloce
4. Java
5. Open Source
30. Logstash
aggrega, normalizza log files
federico.panini@fazland.com - CTO
1. Aggregatore di logs.
2. Normalizza tipi di dato e logs.
3. Facilmente personalizzabile.
4. Possibilità di creare plugins per i
propri dati.
31. Kibana
visualizza i tuoi dati
federico.panini@fazland.com - CTO
1. Effettua ricerche sui file di log
velocemente.
2. Organizza i risultati delle ricerche in
oggetti
3. Inserisci i tuoi oggetti in
dashboards.
35. Logstash
federico.panini@fazland.com - 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.
44. Logstash
retention dei dati
federico.panini@fazland.com - CTO
I filtri di output possono essere molteplici :
export su elasticsearch
export 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.
agent:(bingbot,msnbot,googlebot,nekstbot,w2gbot,AhrefsBot,ia_archive,facebookexternalhit,AdsBot-Google) && response:(40* OR 500)
14:45 + 1 min
45min di talk
ora demo
16:58:57 fino a : 17:05
16+45+7 = 68