Sistemi di monitoring, logging e alerting moderni
(ovvero come preservare la propria sanità mentale)
Ivan Rossi
ivan@biodec.com – BioDec
Codemotion Rome 2015
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 1 / 48
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 2 / 48
Prima premessa: una cosa chiamata cloud
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 3 / 48
Prima premessa: una cosa chiamata cloud
Cloud + Virtualizzazione = Infrastruttura distribuita
GRAZIE AI SISTEMI CLOUD E ALLA VIRTUALIZZAZIONE, nei prossimi anni
sarà necessario dotarsi di strumenti efficaci per gestire la complessità
di un’infrastruttura distribuita.
O rinunciare alla gestione della medesima.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 4 / 48
Prima premessa: una cosa chiamata cloud
Cloud + Virtualizzazione = Infrastruttura distribuita
GRAZIE AI SISTEMI CLOUD E ALLA VIRTUALIZZAZIONE, nei prossimi anni
sarà necessario dotarsi di strumenti efficaci per gestire la complessità
di un’infrastruttura distribuita.
O rinunciare alla gestione della medesima.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 4 / 48
Prima premessa: una cosa chiamata cloud
Non solo distribuita, ma anche numerosa
Un secondo effetto è che l’infrastruttura sarà molto maggiore di quella a
cui è abituato l’IT tradizionale, e certi problemi di gestione si presentano
solo su grande scala.
O per meglio dire: sapere quello che accade nel piccolo non è un buon
metro per capire cosa accade nel grande.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 5 / 48
Prima premessa: una cosa chiamata cloud
Non solo distribuita, ma anche numerosa
Un secondo effetto è che l’infrastruttura sarà molto maggiore di quella a
cui è abituato l’IT tradizionale, e certi problemi di gestione si presentano
solo su grande scala.
O per meglio dire: sapere quello che accade nel piccolo non è un buon
metro per capire cosa accade nel grande.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 5 / 48
Seconda premessa: una cosa chiamata DevOps
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 6 / 48
Seconda premessa: una cosa chiamata DevOps
Cronologia Devops
Tutto incomincia con . . . Patrick Debois che nel 2007 si trova a svolgere un
lavoro “ibrido” di sviluppo e di sistemi, e non è contento di
come sta procedendo.
23 giugno 2009 John Allspaw presenta il talk “10+ deploys per day: Dev &
Ops cooperation at Flickr”.
30-31 ottobre 2009 Il primo DevOps Days a Ghent (B), in Belgio. Grande
successo.
marzo 2011 Il rapporto Gartner “The Rise of a New IT Operations Support
Model” prevede che per il 2015 le metodiche DevOps
saranno adottate nel 20% delle imprese Global 2000.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 7 / 48
Seconda premessa: una cosa chiamata DevOps
Il movimento in Italia
Nell’ottobre 2012, c’è stata la prima edizione dei DevOps Days italiana, a
Roma, con quasi duecento partecipanti da tutto il mondo.
Nel febbraio 2013, a Firenze, si è tenuto il primo “Incontro DevOps Italia”,
con 80+ persone presenti.
Nel febbraio 2014, a Bologna, si è tenuto il secondo “Incontro DevOps
Italia”, con 120+ persone presenti.
Il 10 aprile 2015, a Bologna, si terrà il terzo “Incontro DevOps Italia”.
Partecipate numerosi!
Info: http://incontrodevops.it
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 8 / 48
Seconda premessa: una cosa chiamata DevOps
Il movimento in Italia
Nell’ottobre 2012, c’è stata la prima edizione dei DevOps Days italiana, a
Roma, con quasi duecento partecipanti da tutto il mondo.
Nel febbraio 2013, a Firenze, si è tenuto il primo “Incontro DevOps Italia”,
con 80+ persone presenti.
Nel febbraio 2014, a Bologna, si è tenuto il secondo “Incontro DevOps
Italia”, con 120+ persone presenti.
Il 10 aprile 2015, a Bologna, si terrà il terzo “Incontro DevOps Italia”.
Partecipate numerosi!
Info: http://incontrodevops.it
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 8 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 9 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Uno slogan: CAMS
C culture
A automate
M measure
S share
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Uno slogan: CAMS
C culture
A automate
M measure
S share
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Uno slogan: CAMS
C culture
A automate
M measure
S share
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Uno slogan: CAMS
C culture
A automate
M measure
S share
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Uno slogan: CAMS
C culture
A automate
M measure
S share
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Culture
1CREARE UNA CULTURA della collaborazione. È il primo dettame, ma
è sovente il più negletto — anche perché è il più difficile da mettere in
pratica.
People and process first. If you don’t have culture, all
automation attempts will be fruitless. (John Willis)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 11 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Automate
2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta
da un programma, che lo si scriva. E lo si scriva secondo i crismi con
cui si scrivono i programmi
il fatto che sia un programma per i sistemi (o per i server) non è
un’offesa.
“Sistemista” non è un’offesa.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Automate
2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta
da un programma, che lo si scriva. E lo si scriva secondo i crismi con
cui si scrivono i programmi
il fatto che sia un programma per i sistemi (o per i server) non è
un’offesa.
“Sistemista” non è un’offesa.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Automate
2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta
da un programma, che lo si scriva. E lo si scriva secondo i crismi con
cui si scrivono i programmi
il fatto che sia un programma per i sistemi (o per i server) non è
un’offesa.
“Sistemista” non è un’offesa.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Corollario: Infrastructure as code
Se solo il codice definisce i componenti dell’infrastruttura significa che
questa non puó essere determinata da:
configurazioni manuali,
cose che si cliccano di qua e di là,
persone (a.k.a. consulenti) che arrivano e fanno cose.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Corollario: Infrastructure as code
Se solo il codice definisce i componenti dell’infrastruttura significa che
questa non puó essere determinata da:
configurazioni manuali,
cose che si cliccano di qua e di là,
persone (a.k.a. consulenti) che arrivano e fanno cose.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Corollario: Infrastructure as code
Se solo il codice definisce i componenti dell’infrastruttura significa che
questa non puó essere determinata da:
configurazioni manuali,
cose che si cliccano di qua e di là,
persone (a.k.a. consulenti) che arrivano e fanno cose.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Corollario: Infrastructure as code
Se solo il codice definisce i componenti dell’infrastruttura significa che
questa non puó essere determinata da:
configurazioni manuali,
cose che si cliccano di qua e di là,
persone (a.k.a. consulenti) che arrivano e fanno cose.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Measure everything
3MISURARE ogni componente dell’infrastruttura. Il concetto di monitoring
non è affatto nuovo, l’innovazione è nell’avere degli strumenti che
permettano di controllare tutte le parti.
Nell’approccio tradizionale si controlla solo la parte sistemistica mentre la
parte applicativa ha — nella migliore delle ipotesi — al più una soluzione ad
hoc.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 14 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Measure everything
3MISURARE ogni componente dell’infrastruttura. Il concetto di monitoring
non è affatto nuovo, l’innovazione è nell’avere degli strumenti che
permettano di controllare tutte le parti.
Nell’approccio tradizionale si controlla solo la parte sistemistica mentre la
parte applicativa ha — nella migliore delle ipotesi — al più una soluzione ad
hoc.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 14 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Share
4CONDIVIDERE un progetto comune, un obiettivo, delle pratiche, delle
tecniche, degli strumenti, fra gruppi eterogenei, e che hanno obiettivi
differenti (complementari).
Sharing is the loopback in the CAMS cycle. Creating a culture
where people share ideas and problems is critical. (John Willis)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 15 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Forse non si è capito ma . . .
. . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve
essere automatizzata . . . ovvero trasformata in software . . . implica che
chiunque adotti queste pratiche, e indipendentemente dal nome con cui si
fa chiamare, è anche un . . .
Programmatore
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Forse non si è capito ma . . .
. . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve
essere automatizzata . . . ovvero trasformata in software . . . implica che
chiunque adotti queste pratiche, e indipendentemente dal nome con cui si
fa chiamare, è anche un . . .
Programmatore
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Forse non si è capito ma . . .
. . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve
essere automatizzata . . . ovvero trasformata in software . . . implica che
chiunque adotti queste pratiche, e indipendentemente dal nome con cui si
fa chiamare, è anche un . . .
Programmatore
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
Seconda premessa: una cosa chiamata DevOps CAMS
Forse non si è capito ma . . .
. . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve
essere automatizzata . . . ovvero trasformata in software . . . implica che
chiunque adotti queste pratiche, e indipendentemente dal nome con cui si
fa chiamare, è anche un . . .
Programmatore
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
Basta premesse: gli strumenti
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 17 / 48
Basta premesse: gli strumenti
Istruzioni per l’uso
Una nota sull’uso dei font:
il testo normale indica i programmi utilizzati in produzione, in BioDec,
il testo slanted indica programmi valutati ma non in produzione (per
ragioni diverse, non necessariamente perché inadeguati),
il testo cancellato indica programmi che si possono sostituire con
alternative più moderne.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 18 / 48
Basta premesse: gli strumenti
Alcune definizioni
DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come
si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di
avere un sistema sotto osservazione, di cui ci interessa:
Logging la gestione degli eventi.
Monitoring la gestione delle misure.
Alerting la gestione delle notifiche.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
Basta premesse: gli strumenti
Alcune definizioni
DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come
si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di
avere un sistema sotto osservazione, di cui ci interessa:
Logging la gestione degli eventi.
Monitoring la gestione delle misure.
Alerting la gestione delle notifiche.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
Basta premesse: gli strumenti
Alcune definizioni
DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come
si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di
avere un sistema sotto osservazione, di cui ci interessa:
Logging la gestione degli eventi.
Monitoring la gestione delle misure.
Alerting la gestione delle notifiche.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
Basta premesse: gli strumenti
Alcune definizioni
DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come
si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di
avere un sistema sotto osservazione, di cui ci interessa:
Logging la gestione degli eventi.
Monitoring la gestione delle misure.
Alerting la gestione delle notifiche.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
Basta premesse: gli strumenti Una nota importante
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 20 / 48
Basta premesse: gli strumenti Una nota importante
Modularità
UNA COSA IMPORTANTE, che a volte genera confusione, è che i software
di cui parleremo spesso svolgono diverse funzioni tutte insieme.
Come principio generale sarebbe bene avere perlomeno un sistema di alert
indipendente, che faccia (bene) solo quello, e che usi come componenti
i dati dei sistemi di logging e di monitoring .
I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep
— derivante dal fatto che sono comparati sul numero di funzionalità e non
sulla qualità — è responsabile di creare software moloch che fanno tutto,
ma male.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
Basta premesse: gli strumenti Una nota importante
Modularità
UNA COSA IMPORTANTE, che a volte genera confusione, è che i software
di cui parleremo spesso svolgono diverse funzioni tutte insieme.
Come principio generale sarebbe bene avere perlomeno un sistema di alert
indipendente, che faccia (bene) solo quello, e che usi come componenti
i dati dei sistemi di logging e di monitoring .
I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep
— derivante dal fatto che sono comparati sul numero di funzionalità e non
sulla qualità — è responsabile di creare software moloch che fanno tutto,
ma male.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
Basta premesse: gli strumenti Una nota importante
Modularità
UNA COSA IMPORTANTE, che a volte genera confusione, è che i software
di cui parleremo spesso svolgono diverse funzioni tutte insieme.
Come principio generale sarebbe bene avere perlomeno un sistema di alert
indipendente, che faccia (bene) solo quello, e che usi come componenti
i dati dei sistemi di logging e di monitoring .
I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep
— derivante dal fatto che sono comparati sul numero di funzionalità e non
sulla qualità — è responsabile di creare software moloch che fanno tutto,
ma male.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
Basta premesse: gli strumenti Logging
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 22 / 48
Basta premesse: gli strumenti Logging
Andare oltre tail -f /var/log/syslog
IL CONCETTO DI LOG è a volte sovrapposto
o confuso con il concetto di misurare il funzionamento di un sistema.
Un log è diverso da un sistema di misura, perché, sebbene abbia la
medesima connotazione di serie temporale, quanto tracciato sono eventi e
non dati numerici.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 23 / 48
Basta premesse: gli strumenti Logging
Andare oltre tail -f /var/log/syslog
IL CONCETTO DI LOG è a volte sovrapposto
o confuso con il concetto di misurare il funzionamento di un sistema.
Un log è diverso da un sistema di misura, perché, sebbene abbia la
medesima connotazione di serie temporale, quanto tracciato sono eventi e
non dati numerici.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 23 / 48
Basta premesse: gli strumenti Logging
Andare oltre tail -f /var/log/syslog
I componenti di un sistema di logging:
Route syslog-ng, rsyslog, logstash, heka,
Store elasticsearch (mongodb),
Aggregate graylog, logstash
Visualize graylog, kibana4,
Analyze graylog, kibana4,
Alert un sistema di alerting.
Per intenderci, un sistema “classico” ha tutti i componenti svolti da syslog,
con programmi come logwatch o simili per farne l’analisi. Oppure soluzioni
proprietarie, tipicamente molto costose.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 24 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Lo stack ELK
Il cosiddetto stack ELK è composto dai seguenti componenti principali:
Elasticsearch: storage e search engine.
Logstash: parsing e conversione di formati, routing.
Kibana: front-end, ricerca e visualizzazione.
In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle
grandi installazioni è molto spesso anche un altro componente con funzioni
di cache dei messaggi a monte del Logstash server. Comunemente Redis
o RabbitMQ.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Logstash
Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti:
Input: estrazione dei singoli messaggi di evento da uno stream
files: logs
servizi (server): syslog, log4j, gelf, tcp, collectd, . . .
servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .
Filter: trasformazione del contenuto dei messaggi (parsing
condizionale, tagging)
Output: il duale dell’input, verso database, sistemi di storage, servizi)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
Basta premesse: gli strumenti Logging
Kibana
Kibana è un front-end per Elasticsearch ma specializzato per gestire
Logstash, da cui si fanno le query e si creano le dashboard.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 27 / 48
Basta premesse: gli strumenti Logging
Graylog
Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono
rimpiazzati rispettivamente da Graylog e Graylog-web.
Nasce per gestire input da syslog e GELF (logging applicativo)
non svolge funzioni di agent
minore componibilità
configuration is NOT code
si configura via interfaccia web (Graylog-web)
le configurazioni sono immagazzinate in MongoDB
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
Basta premesse: gli strumenti Logging
Graylog
Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono
rimpiazzati rispettivamente da Graylog e Graylog-web.
Nasce per gestire input da syslog e GELF (logging applicativo)
non svolge funzioni di agent
minore componibilità
configuration is NOT code
si configura via interfaccia web (Graylog-web)
le configurazioni sono immagazzinate in MongoDB
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
Basta premesse: gli strumenti Logging
Graylog
Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono
rimpiazzati rispettivamente da Graylog e Graylog-web.
Nasce per gestire input da syslog e GELF (logging applicativo)
non svolge funzioni di agent
minore componibilità
configuration is NOT code
si configura via interfaccia web (Graylog-web)
le configurazioni sono immagazzinate in MongoDB
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
Basta premesse: gli strumenti Logging
Graylog
Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono
rimpiazzati rispettivamente da Graylog e Graylog-web.
Nasce per gestire input da syslog e GELF (logging applicativo)
non svolge funzioni di agent
minore componibilità
configuration is NOT code
si configura via interfaccia web (Graylog-web)
le configurazioni sono immagazzinate in MongoDB
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
Basta premesse: gli strumenti Logging
Graylog-web
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 29 / 48
Basta premesse: gli strumenti Monitoring
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 30 / 48
Basta premesse: gli strumenti Monitoring
Measure ! Measure ! Measure everywhere !
PER DEFINIRE l’atto del controllare, dobbiamo definire
cosa intendiamo controllare, ovvero cosa intendiamo misurare.
Una misura è un valore numerico con un nome e il momento in cui essa
è stata effettuata. Una successione di misure è pertanto una serie
temporale di valore numerici associati ad un’etichetta (o nome).
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 31 / 48
Basta premesse: gli strumenti Monitoring
Measure ! Measure ! Measure everywhere !
PER DEFINIRE l’atto del controllare, dobbiamo definire
cosa intendiamo controllare, ovvero cosa intendiamo misurare.
Una misura è un valore numerico con un nome e il momento in cui essa
è stata effettuata. Una successione di misure è pertanto una serie
temporale di valore numerici associati ad un’etichetta (o nome).
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 31 / 48
Basta premesse: gli strumenti Monitoring
Measure ! Measure ! Measure everywhere !
I componenti di un sistema di misura:
Route collectd, statsd, metricsd,
Store graphite (whisper), blueflood
Aggregate graphite (carbon), blueflood
Visualize graphite-web, grafana, graph-explorer,
Analyze sensu,
Alert un sistema di alerting.
Per intenderci, un sistema “classico” ha tutti i componenti svolti da Nagios,
con Cacti / Pnp4Nagios o Munin come sistema di visualizzazione.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 32 / 48
Basta premesse: gli strumenti Monitoring
Punto chiave: la visualizzazione
SEBBENE TUTTE le componenti siano necessarie, ce n’è una che è più
critica delle altre. La caratteristica chiave di un sistema di monitoring è
la visualizzazione.
Ovvero rendere immediatamente esplicite le informazioni.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 33 / 48
Basta premesse: gli strumenti Monitoring
Punto chiave: la visualizzazione
SEBBENE TUTTE le componenti siano necessarie, ce n’è una che è più
critica delle altre. La caratteristica chiave di un sistema di monitoring è
la visualizzazione.
Ovvero rendere immediatamente esplicite le informazioni.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 33 / 48
Basta premesse: gli strumenti Monitoring
Lo stack Graphite
I componenti dello stack di Graphite:
Route collectd, statsd, metricsd,
Store graphite (whisper)
Aggregate graphite (carbon)
Visualize graphite-web, grafana
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 34 / 48
Basta premesse: gli strumenti Monitoring
Graphite + Statsd
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 35 / 48
Basta premesse: gli strumenti Monitoring
Graphite + Statsd
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 36 / 48
Basta premesse: gli strumenti Monitoring
Graphite + Statsd
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 37 / 48
Basta premesse: gli strumenti Monitoring
Integrazione di dati applicativi e di sistema
È lo stesso grafico
di prima — un paio
di ore dopo, per la
precisione — ma
col load di ogni
Riak server del
cluster (5 server
virtuali diversi).
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 38 / 48
Basta premesse: gli strumenti Monitoring
Grafana
Grafana è una dashboard alternativa a graphite-web, molto curata dal punto
di vista dell’UI e della presentazione.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 39 / 48
Basta premesse: gli strumenti Alerting
Indice
1 Prima premessa: una cosa chiamata cloud
2 Seconda premessa: una cosa chiamata DevOps
CAMS
3 Basta premesse: gli strumenti
Una nota importante
Logging
Monitoring
Alerting
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 40 / 48
Basta premesse: gli strumenti Alerting
Una telefonata nel cuore della notte
Address: node022.example.com
Service: Memory used
State: WARNING -> OK (RECOVERY)
Command: check_mk-mem.used
Output: OK - 3.07 GB used (2.82 GB RAM + 0.24 GB SWAP,
this is 4.9% of 62.89 GB RAM)
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 41 / 48
Basta premesse: gli strumenti Alerting
Il sistema di allarme
SIA IL SISTEMA di logging che quello di monitoring avevano come
ulteriore (sotto-)componente il sistema di alerting, che è pertanto
trasversale e comune a diversi ambiti.
Un sistema d’allarme è un meccanismo che genera messaggi specifici ad
uno stato del sistema, e li recapita ad un determinato destinatario.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 42 / 48
Basta premesse: gli strumenti Alerting
Il sistema di allarme
SIA IL SISTEMA di logging che quello di monitoring avevano come
ulteriore (sotto-)componente il sistema di alerting, che è pertanto
trasversale e comune a diversi ambiti.
Un sistema d’allarme è un meccanismo che genera messaggi specifici ad
uno stato del sistema, e li recapita ad un determinato destinatario.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 42 / 48
Basta premesse: gli strumenti Alerting
Come fare un sistema di alerting ?
Nella sua versione minimale un sistema d’allarme è composto dai seguenti
componenti:
1 un generatore di allarmi,
2 il messaggio, che descrive l’allarme,
3 il destinatario del messaggio,
4 il sotto-sistema preposto alla consegna del messaggio.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
Basta premesse: gli strumenti Alerting
Come fare un sistema di alerting ?
Nella sua versione minimale un sistema d’allarme è composto dai seguenti
componenti:
1 un generatore di allarmi,
2 il messaggio, che descrive l’allarme,
3 il destinatario del messaggio,
4 il sotto-sistema preposto alla consegna del messaggio.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
Basta premesse: gli strumenti Alerting
Come fare un sistema di alerting ?
Nella sua versione minimale un sistema d’allarme è composto dai seguenti
componenti:
1 un generatore di allarmi,
2 il messaggio, che descrive l’allarme,
3 il destinatario del messaggio,
4 il sotto-sistema preposto alla consegna del messaggio.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
Basta premesse: gli strumenti Alerting
Come fare un sistema di alerting ?
Nella sua versione minimale un sistema d’allarme è composto dai seguenti
componenti:
1 un generatore di allarmi,
2 il messaggio, che descrive l’allarme,
3 il destinatario del messaggio,
4 il sotto-sistema preposto alla consegna del messaggio.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
Basta premesse: gli strumenti Alerting
Come fare un sistema di alerting ?
I componenti di un sistema di alerting:
Generator nagios, icinga, flapjack, riemann (che chiamano questa
componente event processing), sensu,
Message email, SMS, sirene, . . .
Router nagios, icinga, flapjack, riemann, sensu,
Delivery determinata dal message type, quindi SMTP per l’email,
eccetera.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 44 / 48
Basta premesse: gli strumenti Alerting
Good ol’ Nagios Check_MK Multisite
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 45 / 48
Basta premesse: gli strumenti Alerting
Good ol’ Nagios Check_MK Multisite
Dettaglio: sono presenti anche dati di monitoraggio. Gli strumenti di vecchia
concezione mescolano diversi aspetti in un’unica interfaccia.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 46 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Concludendo e riassumendo
I sistemi di logging, monitoring e alerting, servono e serviranno
sempre di più.
Sono sistemi trasversali, soprattutto per l’integrazione di dati
applicativi (Dev) e di sistema (Ops). Integrazione senza la quale
certe attività di debug possono essere impossibili.
Esistono soluzioni moderne per costruire sistemi modulari ed
evolvibili.
Rifuggete la tentazione di adottare un sistema monolitico.
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
Basta premesse: gli strumenti Alerting
Thanks & see you soon . . .
Grazie dell’attenzione!1
IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10
@incontrodevops http://incontrodevops.it
More news Seguite il blog BioDec http://blog.biodec.com/
Feedback Leave your feedback on Joind.in!
https://joind.in/event/view/3347
Domande?
1licenza della presentazione:
http://creativecommons.org/licenses/by-sa/3.0/
Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48

- Codemotion Rome 2015

  • 1.
    Sistemi di monitoring,logging e alerting moderni (ovvero come preservare la propria sanità mentale) Ivan Rossi ivan@biodec.com – BioDec Codemotion Rome 2015 Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 1 / 48
  • 2.
    Indice 1 Prima premessa:una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 2 / 48
  • 3.
    Prima premessa: unacosa chiamata cloud Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 3 / 48
  • 4.
    Prima premessa: unacosa chiamata cloud Cloud + Virtualizzazione = Infrastruttura distribuita GRAZIE AI SISTEMI CLOUD E ALLA VIRTUALIZZAZIONE, nei prossimi anni sarà necessario dotarsi di strumenti efficaci per gestire la complessità di un’infrastruttura distribuita. O rinunciare alla gestione della medesima. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 4 / 48
  • 5.
    Prima premessa: unacosa chiamata cloud Cloud + Virtualizzazione = Infrastruttura distribuita GRAZIE AI SISTEMI CLOUD E ALLA VIRTUALIZZAZIONE, nei prossimi anni sarà necessario dotarsi di strumenti efficaci per gestire la complessità di un’infrastruttura distribuita. O rinunciare alla gestione della medesima. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 4 / 48
  • 6.
    Prima premessa: unacosa chiamata cloud Non solo distribuita, ma anche numerosa Un secondo effetto è che l’infrastruttura sarà molto maggiore di quella a cui è abituato l’IT tradizionale, e certi problemi di gestione si presentano solo su grande scala. O per meglio dire: sapere quello che accade nel piccolo non è un buon metro per capire cosa accade nel grande. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 5 / 48
  • 7.
    Prima premessa: unacosa chiamata cloud Non solo distribuita, ma anche numerosa Un secondo effetto è che l’infrastruttura sarà molto maggiore di quella a cui è abituato l’IT tradizionale, e certi problemi di gestione si presentano solo su grande scala. O per meglio dire: sapere quello che accade nel piccolo non è un buon metro per capire cosa accade nel grande. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 5 / 48
  • 8.
    Seconda premessa: unacosa chiamata DevOps Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 6 / 48
  • 9.
    Seconda premessa: unacosa chiamata DevOps Cronologia Devops Tutto incomincia con . . . Patrick Debois che nel 2007 si trova a svolgere un lavoro “ibrido” di sviluppo e di sistemi, e non è contento di come sta procedendo. 23 giugno 2009 John Allspaw presenta il talk “10+ deploys per day: Dev & Ops cooperation at Flickr”. 30-31 ottobre 2009 Il primo DevOps Days a Ghent (B), in Belgio. Grande successo. marzo 2011 Il rapporto Gartner “The Rise of a New IT Operations Support Model” prevede che per il 2015 le metodiche DevOps saranno adottate nel 20% delle imprese Global 2000. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 7 / 48
  • 10.
    Seconda premessa: unacosa chiamata DevOps Il movimento in Italia Nell’ottobre 2012, c’è stata la prima edizione dei DevOps Days italiana, a Roma, con quasi duecento partecipanti da tutto il mondo. Nel febbraio 2013, a Firenze, si è tenuto il primo “Incontro DevOps Italia”, con 80+ persone presenti. Nel febbraio 2014, a Bologna, si è tenuto il secondo “Incontro DevOps Italia”, con 120+ persone presenti. Il 10 aprile 2015, a Bologna, si terrà il terzo “Incontro DevOps Italia”. Partecipate numerosi! Info: http://incontrodevops.it Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 8 / 48
  • 11.
    Seconda premessa: unacosa chiamata DevOps Il movimento in Italia Nell’ottobre 2012, c’è stata la prima edizione dei DevOps Days italiana, a Roma, con quasi duecento partecipanti da tutto il mondo. Nel febbraio 2013, a Firenze, si è tenuto il primo “Incontro DevOps Italia”, con 80+ persone presenti. Nel febbraio 2014, a Bologna, si è tenuto il secondo “Incontro DevOps Italia”, con 120+ persone presenti. Il 10 aprile 2015, a Bologna, si terrà il terzo “Incontro DevOps Italia”. Partecipate numerosi! Info: http://incontrodevops.it Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 8 / 48
  • 12.
    Seconda premessa: unacosa chiamata DevOps CAMS Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 9 / 48
  • 13.
    Seconda premessa: unacosa chiamata DevOps CAMS Uno slogan: CAMS C culture A automate M measure S share Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
  • 14.
    Seconda premessa: unacosa chiamata DevOps CAMS Uno slogan: CAMS C culture A automate M measure S share Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
  • 15.
    Seconda premessa: unacosa chiamata DevOps CAMS Uno slogan: CAMS C culture A automate M measure S share Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
  • 16.
    Seconda premessa: unacosa chiamata DevOps CAMS Uno slogan: CAMS C culture A automate M measure S share Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
  • 17.
    Seconda premessa: unacosa chiamata DevOps CAMS Uno slogan: CAMS C culture A automate M measure S share Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48
  • 18.
    Seconda premessa: unacosa chiamata DevOps CAMS Culture 1CREARE UNA CULTURA della collaborazione. È il primo dettame, ma è sovente il più negletto — anche perché è il più difficile da mettere in pratica. People and process first. If you don’t have culture, all automation attempts will be fruitless. (John Willis) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 11 / 48
  • 19.
    Seconda premessa: unacosa chiamata DevOps CAMS Automate 2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta da un programma, che lo si scriva. E lo si scriva secondo i crismi con cui si scrivono i programmi il fatto che sia un programma per i sistemi (o per i server) non è un’offesa. “Sistemista” non è un’offesa. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
  • 20.
    Seconda premessa: unacosa chiamata DevOps CAMS Automate 2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta da un programma, che lo si scriva. E lo si scriva secondo i crismi con cui si scrivono i programmi il fatto che sia un programma per i sistemi (o per i server) non è un’offesa. “Sistemista” non è un’offesa. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
  • 21.
    Seconda premessa: unacosa chiamata DevOps CAMS Automate 2AUTOMATIZZARE ogni azione. Se un’azione manuale può essere svolta da un programma, che lo si scriva. E lo si scriva secondo i crismi con cui si scrivono i programmi il fatto che sia un programma per i sistemi (o per i server) non è un’offesa. “Sistemista” non è un’offesa. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 12 / 48
  • 22.
    Seconda premessa: unacosa chiamata DevOps CAMS Corollario: Infrastructure as code Se solo il codice definisce i componenti dell’infrastruttura significa che questa non puó essere determinata da: configurazioni manuali, cose che si cliccano di qua e di là, persone (a.k.a. consulenti) che arrivano e fanno cose. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
  • 23.
    Seconda premessa: unacosa chiamata DevOps CAMS Corollario: Infrastructure as code Se solo il codice definisce i componenti dell’infrastruttura significa che questa non puó essere determinata da: configurazioni manuali, cose che si cliccano di qua e di là, persone (a.k.a. consulenti) che arrivano e fanno cose. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
  • 24.
    Seconda premessa: unacosa chiamata DevOps CAMS Corollario: Infrastructure as code Se solo il codice definisce i componenti dell’infrastruttura significa che questa non puó essere determinata da: configurazioni manuali, cose che si cliccano di qua e di là, persone (a.k.a. consulenti) che arrivano e fanno cose. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
  • 25.
    Seconda premessa: unacosa chiamata DevOps CAMS Corollario: Infrastructure as code Se solo il codice definisce i componenti dell’infrastruttura significa che questa non puó essere determinata da: configurazioni manuali, cose che si cliccano di qua e di là, persone (a.k.a. consulenti) che arrivano e fanno cose. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 13 / 48
  • 26.
    Seconda premessa: unacosa chiamata DevOps CAMS Measure everything 3MISURARE ogni componente dell’infrastruttura. Il concetto di monitoring non è affatto nuovo, l’innovazione è nell’avere degli strumenti che permettano di controllare tutte le parti. Nell’approccio tradizionale si controlla solo la parte sistemistica mentre la parte applicativa ha — nella migliore delle ipotesi — al più una soluzione ad hoc. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 14 / 48
  • 27.
    Seconda premessa: unacosa chiamata DevOps CAMS Measure everything 3MISURARE ogni componente dell’infrastruttura. Il concetto di monitoring non è affatto nuovo, l’innovazione è nell’avere degli strumenti che permettano di controllare tutte le parti. Nell’approccio tradizionale si controlla solo la parte sistemistica mentre la parte applicativa ha — nella migliore delle ipotesi — al più una soluzione ad hoc. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 14 / 48
  • 28.
    Seconda premessa: unacosa chiamata DevOps CAMS Share 4CONDIVIDERE un progetto comune, un obiettivo, delle pratiche, delle tecniche, degli strumenti, fra gruppi eterogenei, e che hanno obiettivi differenti (complementari). Sharing is the loopback in the CAMS cycle. Creating a culture where people share ideas and problems is critical. (John Willis) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 15 / 48
  • 29.
    Seconda premessa: unacosa chiamata DevOps CAMS Forse non si è capito ma . . . . . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve essere automatizzata . . . ovvero trasformata in software . . . implica che chiunque adotti queste pratiche, e indipendentemente dal nome con cui si fa chiamare, è anche un . . . Programmatore Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
  • 30.
    Seconda premessa: unacosa chiamata DevOps CAMS Forse non si è capito ma . . . . . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve essere automatizzata . . . ovvero trasformata in software . . . implica che chiunque adotti queste pratiche, e indipendentemente dal nome con cui si fa chiamare, è anche un . . . Programmatore Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
  • 31.
    Seconda premessa: unacosa chiamata DevOps CAMS Forse non si è capito ma . . . . . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve essere automatizzata . . . ovvero trasformata in software . . . implica che chiunque adotti queste pratiche, e indipendentemente dal nome con cui si fa chiamare, è anche un . . . Programmatore Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
  • 32.
    Seconda premessa: unacosa chiamata DevOps CAMS Forse non si è capito ma . . . . . . dire che solo il codice definisce l’infrastruttura, e che ogni azione deve essere automatizzata . . . ovvero trasformata in software . . . implica che chiunque adotti queste pratiche, e indipendentemente dal nome con cui si fa chiamare, è anche un . . . Programmatore Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 16 / 48
  • 33.
    Basta premesse: glistrumenti Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 17 / 48
  • 34.
    Basta premesse: glistrumenti Istruzioni per l’uso Una nota sull’uso dei font: il testo normale indica i programmi utilizzati in produzione, in BioDec, il testo slanted indica programmi valutati ma non in produzione (per ragioni diverse, non necessariamente perché inadeguati), il testo cancellato indica programmi che si possono sostituire con alternative più moderne. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 18 / 48
  • 35.
    Basta premesse: glistrumenti Alcune definizioni DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di avere un sistema sotto osservazione, di cui ci interessa: Logging la gestione degli eventi. Monitoring la gestione delle misure. Alerting la gestione delle notifiche. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
  • 36.
    Basta premesse: glistrumenti Alcune definizioni DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di avere un sistema sotto osservazione, di cui ci interessa: Logging la gestione degli eventi. Monitoring la gestione delle misure. Alerting la gestione delle notifiche. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
  • 37.
    Basta premesse: glistrumenti Alcune definizioni DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di avere un sistema sotto osservazione, di cui ci interessa: Logging la gestione degli eventi. Monitoring la gestione delle misure. Alerting la gestione delle notifiche. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
  • 38.
    Basta premesse: glistrumenti Alcune definizioni DEFINIAMO BREVEMENTE i concetti chiave: ci servirà per capire come si “incastrano” gli strumenti di cui parleremo nel seguito. Si suppone di avere un sistema sotto osservazione, di cui ci interessa: Logging la gestione degli eventi. Monitoring la gestione delle misure. Alerting la gestione delle notifiche. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 19 / 48
  • 39.
    Basta premesse: glistrumenti Una nota importante Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 20 / 48
  • 40.
    Basta premesse: glistrumenti Una nota importante Modularità UNA COSA IMPORTANTE, che a volte genera confusione, è che i software di cui parleremo spesso svolgono diverse funzioni tutte insieme. Come principio generale sarebbe bene avere perlomeno un sistema di alert indipendente, che faccia (bene) solo quello, e che usi come componenti i dati dei sistemi di logging e di monitoring . I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep — derivante dal fatto che sono comparati sul numero di funzionalità e non sulla qualità — è responsabile di creare software moloch che fanno tutto, ma male. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
  • 41.
    Basta premesse: glistrumenti Una nota importante Modularità UNA COSA IMPORTANTE, che a volte genera confusione, è che i software di cui parleremo spesso svolgono diverse funzioni tutte insieme. Come principio generale sarebbe bene avere perlomeno un sistema di alert indipendente, che faccia (bene) solo quello, e che usi come componenti i dati dei sistemi di logging e di monitoring . I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep — derivante dal fatto che sono comparati sul numero di funzionalità e non sulla qualità — è responsabile di creare software moloch che fanno tutto, ma male. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
  • 42.
    Basta premesse: glistrumenti Una nota importante Modularità UNA COSA IMPORTANTE, che a volte genera confusione, è che i software di cui parleremo spesso svolgono diverse funzioni tutte insieme. Come principio generale sarebbe bene avere perlomeno un sistema di alert indipendente, che faccia (bene) solo quello, e che usi come componenti i dati dei sistemi di logging e di monitoring . I sistemi commerciali falliscono quasi tutti su questo punto: il feature creep — derivante dal fatto che sono comparati sul numero di funzionalità e non sulla qualità — è responsabile di creare software moloch che fanno tutto, ma male. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 21 / 48
  • 43.
    Basta premesse: glistrumenti Logging Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 22 / 48
  • 44.
    Basta premesse: glistrumenti Logging Andare oltre tail -f /var/log/syslog IL CONCETTO DI LOG è a volte sovrapposto o confuso con il concetto di misurare il funzionamento di un sistema. Un log è diverso da un sistema di misura, perché, sebbene abbia la medesima connotazione di serie temporale, quanto tracciato sono eventi e non dati numerici. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 23 / 48
  • 45.
    Basta premesse: glistrumenti Logging Andare oltre tail -f /var/log/syslog IL CONCETTO DI LOG è a volte sovrapposto o confuso con il concetto di misurare il funzionamento di un sistema. Un log è diverso da un sistema di misura, perché, sebbene abbia la medesima connotazione di serie temporale, quanto tracciato sono eventi e non dati numerici. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 23 / 48
  • 46.
    Basta premesse: glistrumenti Logging Andare oltre tail -f /var/log/syslog I componenti di un sistema di logging: Route syslog-ng, rsyslog, logstash, heka, Store elasticsearch (mongodb), Aggregate graylog, logstash Visualize graylog, kibana4, Analyze graylog, kibana4, Alert un sistema di alerting. Per intenderci, un sistema “classico” ha tutti i componenti svolti da syslog, con programmi come logwatch o simili per farne l’analisi. Oppure soluzioni proprietarie, tipicamente molto costose. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 24 / 48
  • 47.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 48.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 49.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 50.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 51.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 52.
    Basta premesse: glistrumenti Logging Lo stack ELK Il cosiddetto stack ELK è composto dai seguenti componenti principali: Elasticsearch: storage e search engine. Logstash: parsing e conversione di formati, routing. Kibana: front-end, ricerca e visualizzazione. In realtà sarebbe più corretto parlare di stack (R)ELK, dato che che nelle grandi installazioni è molto spesso anche un altro componente con funzioni di cache dei messaggi a monte del Logstash server. Comunemente Redis o RabbitMQ. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 25 / 48
  • 53.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 54.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 55.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 56.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 57.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 58.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 59.
    Basta premesse: glistrumenti Logging Logstash Logstash è un applicazione cui moduli svolgono una di tre funzioni differenti: Input: estrazione dei singoli messaggi di evento da uno stream files: logs servizi (server): syslog, log4j, gelf, tcp, collectd, . . . servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . . Filter: trasformazione del contenuto dei messaggi (parsing condizionale, tagging) Output: il duale dell’input, verso database, sistemi di storage, servizi) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 26 / 48
  • 60.
    Basta premesse: glistrumenti Logging Kibana Kibana è un front-end per Elasticsearch ma specializzato per gestire Logstash, da cui si fanno le query e si creano le dashboard. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 27 / 48
  • 61.
    Basta premesse: glistrumenti Logging Graylog Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono rimpiazzati rispettivamente da Graylog e Graylog-web. Nasce per gestire input da syslog e GELF (logging applicativo) non svolge funzioni di agent minore componibilità configuration is NOT code si configura via interfaccia web (Graylog-web) le configurazioni sono immagazzinate in MongoDB Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
  • 62.
    Basta premesse: glistrumenti Logging Graylog Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono rimpiazzati rispettivamente da Graylog e Graylog-web. Nasce per gestire input da syslog e GELF (logging applicativo) non svolge funzioni di agent minore componibilità configuration is NOT code si configura via interfaccia web (Graylog-web) le configurazioni sono immagazzinate in MongoDB Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
  • 63.
    Basta premesse: glistrumenti Logging Graylog Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono rimpiazzati rispettivamente da Graylog e Graylog-web. Nasce per gestire input da syslog e GELF (logging applicativo) non svolge funzioni di agent minore componibilità configuration is NOT code si configura via interfaccia web (Graylog-web) le configurazioni sono immagazzinate in MongoDB Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
  • 64.
    Basta premesse: glistrumenti Logging Graylog Graylog è uno stack alternativo ad ELK, dove Logstash e kibana vengono rimpiazzati rispettivamente da Graylog e Graylog-web. Nasce per gestire input da syslog e GELF (logging applicativo) non svolge funzioni di agent minore componibilità configuration is NOT code si configura via interfaccia web (Graylog-web) le configurazioni sono immagazzinate in MongoDB Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 28 / 48
  • 65.
    Basta premesse: glistrumenti Logging Graylog-web Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 29 / 48
  • 66.
    Basta premesse: glistrumenti Monitoring Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 30 / 48
  • 67.
    Basta premesse: glistrumenti Monitoring Measure ! Measure ! Measure everywhere ! PER DEFINIRE l’atto del controllare, dobbiamo definire cosa intendiamo controllare, ovvero cosa intendiamo misurare. Una misura è un valore numerico con un nome e il momento in cui essa è stata effettuata. Una successione di misure è pertanto una serie temporale di valore numerici associati ad un’etichetta (o nome). Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 31 / 48
  • 68.
    Basta premesse: glistrumenti Monitoring Measure ! Measure ! Measure everywhere ! PER DEFINIRE l’atto del controllare, dobbiamo definire cosa intendiamo controllare, ovvero cosa intendiamo misurare. Una misura è un valore numerico con un nome e il momento in cui essa è stata effettuata. Una successione di misure è pertanto una serie temporale di valore numerici associati ad un’etichetta (o nome). Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 31 / 48
  • 69.
    Basta premesse: glistrumenti Monitoring Measure ! Measure ! Measure everywhere ! I componenti di un sistema di misura: Route collectd, statsd, metricsd, Store graphite (whisper), blueflood Aggregate graphite (carbon), blueflood Visualize graphite-web, grafana, graph-explorer, Analyze sensu, Alert un sistema di alerting. Per intenderci, un sistema “classico” ha tutti i componenti svolti da Nagios, con Cacti / Pnp4Nagios o Munin come sistema di visualizzazione. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 32 / 48
  • 70.
    Basta premesse: glistrumenti Monitoring Punto chiave: la visualizzazione SEBBENE TUTTE le componenti siano necessarie, ce n’è una che è più critica delle altre. La caratteristica chiave di un sistema di monitoring è la visualizzazione. Ovvero rendere immediatamente esplicite le informazioni. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 33 / 48
  • 71.
    Basta premesse: glistrumenti Monitoring Punto chiave: la visualizzazione SEBBENE TUTTE le componenti siano necessarie, ce n’è una che è più critica delle altre. La caratteristica chiave di un sistema di monitoring è la visualizzazione. Ovvero rendere immediatamente esplicite le informazioni. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 33 / 48
  • 72.
    Basta premesse: glistrumenti Monitoring Lo stack Graphite I componenti dello stack di Graphite: Route collectd, statsd, metricsd, Store graphite (whisper) Aggregate graphite (carbon) Visualize graphite-web, grafana Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 34 / 48
  • 73.
    Basta premesse: glistrumenti Monitoring Graphite + Statsd Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 35 / 48
  • 74.
    Basta premesse: glistrumenti Monitoring Graphite + Statsd Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 36 / 48
  • 75.
    Basta premesse: glistrumenti Monitoring Graphite + Statsd Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 37 / 48
  • 76.
    Basta premesse: glistrumenti Monitoring Integrazione di dati applicativi e di sistema È lo stesso grafico di prima — un paio di ore dopo, per la precisione — ma col load di ogni Riak server del cluster (5 server virtuali diversi). Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 38 / 48
  • 77.
    Basta premesse: glistrumenti Monitoring Grafana Grafana è una dashboard alternativa a graphite-web, molto curata dal punto di vista dell’UI e della presentazione. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 39 / 48
  • 78.
    Basta premesse: glistrumenti Alerting Indice 1 Prima premessa: una cosa chiamata cloud 2 Seconda premessa: una cosa chiamata DevOps CAMS 3 Basta premesse: gli strumenti Una nota importante Logging Monitoring Alerting Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 40 / 48
  • 79.
    Basta premesse: glistrumenti Alerting Una telefonata nel cuore della notte Address: node022.example.com Service: Memory used State: WARNING -> OK (RECOVERY) Command: check_mk-mem.used Output: OK - 3.07 GB used (2.82 GB RAM + 0.24 GB SWAP, this is 4.9% of 62.89 GB RAM) Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 41 / 48
  • 80.
    Basta premesse: glistrumenti Alerting Il sistema di allarme SIA IL SISTEMA di logging che quello di monitoring avevano come ulteriore (sotto-)componente il sistema di alerting, che è pertanto trasversale e comune a diversi ambiti. Un sistema d’allarme è un meccanismo che genera messaggi specifici ad uno stato del sistema, e li recapita ad un determinato destinatario. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 42 / 48
  • 81.
    Basta premesse: glistrumenti Alerting Il sistema di allarme SIA IL SISTEMA di logging che quello di monitoring avevano come ulteriore (sotto-)componente il sistema di alerting, che è pertanto trasversale e comune a diversi ambiti. Un sistema d’allarme è un meccanismo che genera messaggi specifici ad uno stato del sistema, e li recapita ad un determinato destinatario. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 42 / 48
  • 82.
    Basta premesse: glistrumenti Alerting Come fare un sistema di alerting ? Nella sua versione minimale un sistema d’allarme è composto dai seguenti componenti: 1 un generatore di allarmi, 2 il messaggio, che descrive l’allarme, 3 il destinatario del messaggio, 4 il sotto-sistema preposto alla consegna del messaggio. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
  • 83.
    Basta premesse: glistrumenti Alerting Come fare un sistema di alerting ? Nella sua versione minimale un sistema d’allarme è composto dai seguenti componenti: 1 un generatore di allarmi, 2 il messaggio, che descrive l’allarme, 3 il destinatario del messaggio, 4 il sotto-sistema preposto alla consegna del messaggio. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
  • 84.
    Basta premesse: glistrumenti Alerting Come fare un sistema di alerting ? Nella sua versione minimale un sistema d’allarme è composto dai seguenti componenti: 1 un generatore di allarmi, 2 il messaggio, che descrive l’allarme, 3 il destinatario del messaggio, 4 il sotto-sistema preposto alla consegna del messaggio. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
  • 85.
    Basta premesse: glistrumenti Alerting Come fare un sistema di alerting ? Nella sua versione minimale un sistema d’allarme è composto dai seguenti componenti: 1 un generatore di allarmi, 2 il messaggio, che descrive l’allarme, 3 il destinatario del messaggio, 4 il sotto-sistema preposto alla consegna del messaggio. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 43 / 48
  • 86.
    Basta premesse: glistrumenti Alerting Come fare un sistema di alerting ? I componenti di un sistema di alerting: Generator nagios, icinga, flapjack, riemann (che chiamano questa componente event processing), sensu, Message email, SMS, sirene, . . . Router nagios, icinga, flapjack, riemann, sensu, Delivery determinata dal message type, quindi SMTP per l’email, eccetera. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 44 / 48
  • 87.
    Basta premesse: glistrumenti Alerting Good ol’ Nagios Check_MK Multisite Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 45 / 48
  • 88.
    Basta premesse: glistrumenti Alerting Good ol’ Nagios Check_MK Multisite Dettaglio: sono presenti anche dati di monitoraggio. Gli strumenti di vecchia concezione mescolano diversi aspetti in un’unica interfaccia. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 46 / 48
  • 89.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 90.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 91.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 92.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 93.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 94.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 95.
    Basta premesse: glistrumenti Alerting Concludendo e riassumendo I sistemi di logging, monitoring e alerting, servono e serviranno sempre di più. Sono sistemi trasversali, soprattutto per l’integrazione di dati applicativi (Dev) e di sistema (Ops). Integrazione senza la quale certe attività di debug possono essere impossibili. Esistono soluzioni moderne per costruire sistemi modulari ed evolvibili. Rifuggete la tentazione di adottare un sistema monolitico. Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 47 / 48
  • 96.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
  • 97.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
  • 98.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
  • 99.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
  • 100.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48
  • 101.
    Basta premesse: glistrumenti Alerting Thanks & see you soon . . . Grazie dell’attenzione!1 IDI2015 Incontro DevOps Italia 2015, Bologna 2015.4.10 @incontrodevops http://incontrodevops.it More news Seguite il blog BioDec http://blog.biodec.com/ Feedback Leave your feedback on Joind.in! https://joind.in/event/view/3347 Domande? 1licenza della presentazione: http://creativecommons.org/licenses/by-sa/3.0/ Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 48 / 48