Rivista Magazine free on-line CAD 2D and 3D - Settembre 2014 n° 4
Linuxday2013
-
Upload
mariano-fiorentino -
Category
Software
-
view
72 -
download
0
description
Transcript of Linuxday2013
![Page 1: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/1.jpg)
Case Study
MongoDB come collettore dilog
Mariano Fiorentino
![Page 2: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/2.jpg)
● - Co fondatore Php User Group Torino
● Responsabile Tecnico su progetti legati . all'automotive per Eng it
Chi Sono
![Page 3: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/3.jpg)
La velocita' in scrittura su mongodb si presta all'utilizzo in un costesto di questo
:tipo
● non viene eseguito un controllo di consistenza in fase di scrittura
● l'affidabilità dei dati è data dalla rindondanza dei server
MongoDB per collezionare log?
![Page 4: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/4.jpg)
Una delle caratteristiche delle web application moderne e' di produrre un
. grande quantitativo di log :In un lamp stack classico abbiamo
● ( , )Apache error_log access_log● ( )Php php_errors● Le applicazioni
Contesto applicativo
![Page 5: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/5.jpg)
Contesto applicativo
![Page 6: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/6.jpg)
Contesto applicativo
● E' evidente che in un sistema di questo tipo centralizzare le informazioni è la
chiave per avere un accesso rapido ai dati in fase di troubleshotting
● Individuare uno strumento compatibile con gli standard di un LAMP Stack
![Page 7: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/7.jpg)
Fluentd
’ Nell ambito delle soluzioni ri open di log, ( :// . /) collector fluentd http fluentd org è un
componente compatibile con gli standard dei log di apache e php
● Permette di collezionare molteplici , sorgenti verso una o più destinazioni compresi db non relazionali
● E' possibile scrivere plugin personalizzati
![Page 8: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/8.jpg)
Architettura dellasoluzione
![Page 9: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/9.jpg)
Cosa succede suMongoDB?
<source> type tail format apache2 path /var/log/apache2/access_log pos_file /var/log/td-agent/access_log.pos tag mongo.apache.access</source>
Le collezioni su vengono automaticamente in :base alla configurazione
![Page 10: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/10.jpg)
Rendere i datidisponibi l i
● Si e' scelto di separare lo strato di , accessibilita' ai dati su MongoDB resi
, disponibili tramite rest service dalla webapp vera e propria che e' stata sviluppata in solo javascript
● In questo modo i dati eventualmente “ ” possono essere importati da server terzi
.per ulteriori analisi e operazioni
![Page 11: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/11.jpg)
E' un framework event-driven per il motore Javascript V8, su piattaforme UNIX like.
Si tratta quindi di un framework relativo all'utilizzo server-side di Javascript
.Node js
![Page 12: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/12.jpg)
● Driver nativi verso MongoDB● Librerie che facilitano la creazione diservizi
● Open Source● Una REST interface su MongoDB in
alpha● Ci ha permesso di lavorare su uno stack
completamente JavaScript
Un REST Service .con Node js
![Page 13: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/13.jpg)
JavaScript Stack
![Page 14: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/14.jpg)
AMID : - abbiamo forkato mongodb rest per : gestire un numbero maggiore di operazioni
● / / count distinct sort sulle collezioni● / excel csv export● lista delle db collection● -supporto al multi threads● ricerca per data
. Another js Mongo Internet Driver
![Page 15: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/15.jpg)
Ritorna i documenti che soddisfano la condizione “ ” :specificata da query ordinati in modo ascendente
GET / /db collection?={“ ”: }& =[{" ": ," ":" "}]query isDone false sort property null direction ASC
:Lista delle collezioni disponibi l i sul db specificato
GET /db
:Ritorna il documento con id specificato
GET / / /db collection id
. Another js Mongo Internet Driver
![Page 16: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/16.jpg)
:Conta gli elementi
GET / /db collection =% % % % %?query 7B 22isDone 22 3A 20false% & = 7D operation count
: Export in Excel
GET / /db collection?= & =& ={% % :-operation excel query sort 22$natural 22
}& =1 limit 15000
. Another js Mongo Internet Driver
![Page 17: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/17.jpg)
( Inserisce un nuovo documento il JSON è nel POST):Body
POST / /db collection
( ):Aggiorna un documento il JSON è nel POST Body
PUT / / / db collection id
:Cancella un documento dato un id
DELETE / / /db collection id
. Another js Mongo Internet Driver
![Page 18: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/18.jpg)
WebApp in Extjs 4
● Griglia autoconfigurante in base alle chiavi delle collection su MongoDB
● Campi di ricerca in base al tipo dicolonna
– Data– Numero– Stringa
![Page 19: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/19.jpg)
WebApp in Extjs 4
![Page 20: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/20.jpg)
Punti di attenzione
● Corruzione del db su mongo e indici sulle colonne
● .Out of memory Exception su node js● Gestione dei timeout su tutto lo stack
![Page 21: Linuxday2013](https://reader033.fdocumenti.com/reader033/viewer/2022042816/559b087f1a28ab81758b47a4/html5/thumbnails/21.jpg)
Documentazione
● :// . / -https github com mariano/fiorentino amid
● :// . /http nodejs org● :// . . /http www mongodb org● :// . . /http www sencha com