- Codemotion Rome 2015

of 101 /101
Sistemi di monitoring, logging e alerting moderni (ovvero come preservare la propria sanità mentale) Ivan Rossi [email protected] – BioDec Codemotion Rome 2015 Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 1 / 48

Transcript of - Codemotion Rome 2015

Sistemi di monitoring, logging e alerting moderni(ovvero come preservare la propria sanità mentale)

Ivan Rossi

[email protected] – 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 annisarà 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 annisarà 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 acui è abituato l’IT tradizionale, e certi problemi di gestione si presentanosolo su grande scala.O per meglio dire: sapere quello che accade nel piccolo non è un buonmetro 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 acui è abituato l’IT tradizionale, e certi problemi di gestione si presentanosolo su grande scala.O per meglio dire: sapere quello che accade nel piccolo non è un buonmetro 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 unlavoro “ibrido” di sviluppo e di sistemi, e non è contento dicome 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. Grandesuccesso.

marzo 2011 Il rapporto Gartner “The Rise of a New IT Operations SupportModel” prevede che per il 2015 le metodiche DevOpssaranno 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, aRoma, 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 DevOpsItalia”, 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, aRoma, 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 DevOpsItalia”, 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 9 / 48

Seconda premessa: una cosa chiamata DevOps CAMS

Uno slogan: CAMS

C cultureA automateM measureS share

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48

Seconda premessa: una cosa chiamata DevOps CAMS

Uno slogan: CAMS

C cultureA automateM measureS share

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48

Seconda premessa: una cosa chiamata DevOps CAMS

Uno slogan: CAMS

C cultureA automateM measureS share

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48

Seconda premessa: una cosa chiamata DevOps CAMS

Uno slogan: CAMS

C cultureA automateM measureS share

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 10 / 48

Seconda premessa: una cosa chiamata DevOps CAMS

Uno slogan: CAMS

C cultureA automateM measureS 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, allautomation 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 svoltada 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 svoltada 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 svoltada 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 chequesta 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 chequesta 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 chequesta 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 chequesta 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 monitoringnon è 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 laparte applicativa ha — nella migliore delle ipotesi — al più una soluzione adhoc.

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 monitoringnon è 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 laparte applicativa ha — nella migliore delle ipotesi — al più una soluzione adhoc.

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, delletecniche, degli strumenti, fra gruppi eterogenei, e che hanno obiettivi

differenti (complementari).

Sharing is the loopback in the CAMS cycle. Creating a culturewhere 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 deveessere automatizzata . . . ovvero trasformata in software . . . implica chechiunque adotti queste pratiche, e indipendentemente dal nome con cui sifa 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 deveessere automatizzata . . . ovvero trasformata in software . . . implica chechiunque adotti queste pratiche, e indipendentemente dal nome con cui sifa 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 deveessere automatizzata . . . ovvero trasformata in software . . . implica chechiunque adotti queste pratiche, e indipendentemente dal nome con cui sifa 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 deveessere automatizzata . . . ovvero trasformata in software . . . implica chechiunque adotti queste pratiche, e indipendentemente dal nome con cui sifa 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 (perragioni diverse, non necessariamente perché inadeguati),

il testo cancellato indica programmi che si possono sostituire conalternative 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 comesi “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 comesi “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 comesi “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 comesi “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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 softwaredi cui parleremo spesso svolgono diverse funzioni tutte insieme.

Come principio generale sarebbe bene avere perlomeno un sistema di alertindipendente, che faccia (bene) solo quello, e che usi come componentii 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 nonsulla 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 softwaredi cui parleremo spesso svolgono diverse funzioni tutte insieme.

Come principio generale sarebbe bene avere perlomeno un sistema di alertindipendente, che faccia (bene) solo quello, e che usi come componentii 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 nonsulla 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 softwaredi cui parleremo spesso svolgono diverse funzioni tutte insieme.

Come principio generale sarebbe bene avere perlomeno un sistema di alertindipendente, che faccia (bene) solo quello, e che usi come componentii 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 nonsulla 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 sovrappostoo confuso con il concetto di misurare il funzionamento di un sistema.

Un log è diverso da un sistema di misura, perché, sebbene abbia lamedesima connotazione di serie temporale, quanto tracciato sono eventi enon 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 sovrappostoo confuso con il concetto di misurare il funzionamento di un sistema.

Un log è diverso da un sistema di misura, perché, sebbene abbia lamedesima connotazione di serie temporale, quanto tracciato sono eventi enon 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 soluzioniproprietarie, 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 nellegrandi installazioni è molto spesso anche un altro componente con funzionidi cache dei messaggi a monte del Logstash server. Comunemente Rediso 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 streamfiles: logs

servizi (server): syslog, log4j, gelf, tcp, collectd, . . .servizi (client): redis, rabbitmq, websocket, irc, xmpp, . . .

Filter: trasformazione del contenuto dei messaggi (parsingcondizionale, 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 gestireLogstash, 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 vengonorimpiazzati 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 vengonorimpiazzati 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 vengonorimpiazzati 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 vengonorimpiazzati 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

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 definirecosa 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 serietemporale 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 definirecosa 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 serietemporale 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 graficodi prima — un paiodi ore dopo, per laprecisione — macol load di ogniRiak server delcluster (5 servervirtuali 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 puntodi 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 DevOpsCAMS

3 Basta premesse: gli strumentiUna nota importanteLoggingMonitoringAlerting

Ivan Rossi (BioDec) DevOps MLA Codemotion Rome 2015 40 / 48

Basta premesse: gli strumenti Alerting

Una telefonata nel cuore della notte

Address: node022.example.comService: Memory usedState: WARNING -> OK (RECOVERY)Command: check_mk-mem.usedOutput: 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 comeulteriore (sotto-)componente il sistema di alerting, che è pertanto

trasversale e comune a diversi ambiti.Un sistema d’allarme è un meccanismo che genera messaggi specifici aduno 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 comeulteriore (sotto-)componente il sistema di alerting, che è pertanto

trasversale e comune a diversi ambiti.Un sistema d’allarme è un meccanismo che genera messaggi specifici aduno 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 seguenticomponenti:

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 seguenticomponenti:

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 seguenticomponenti:

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 seguenticomponenti:

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 questacomponente 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 vecchiaconcezione 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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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 servirannosempre di più.

Sono sistemi trasversali, soprattutto per l’integrazione di datiapplicativi (Dev ) e di sistema (Ops). Integrazione senza la qualecerte attività di debug possono essere impossibili.

Esistono soluzioni moderne per costruire sistemi modulari edevolvibili.

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