From ab63eaa28ca00857f32fbe9127faea86835bb8f7 Mon Sep 17 00:00:00 2001 From: Panagiotis_Klironomos Date: Tue, 15 Jun 2021 17:45:41 +0000 Subject: [PATCH] Delete 'README.html' --- README.html | 248 ---------------------------------------------------- 1 file changed, 248 deletions(-) delete mode 100644 README.html diff --git a/README.html b/README.html deleted file mode 100644 index b54d926..0000000 --- a/README.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - - - - - - Data Collector Service - README - - - - - -
-
-
-
-
-
Πλέγμα Δικτύου μεταξύ Services και Microservices
-
-

Σκοπός του project, είναι να δημιουργήσουμε ένα "σμήνος" από εικονικές μηχανές (ή αλλιώς nodes ή containers), - οι οποίες θα έχουν την δυνατότητα να επικοινωνούν μεταξύ τους με - διάφορους τρόπους επικοινωνίας.

-
-
- - - - - -
-
Note
-
-
-

Λειτουργικότητα Σμήνους

-
-
-

Σε ένα σμήνος εικονικών μηχανών, υπάρχουν - μηχανές που συλλέγουν δεδομένα (συνήθως - έχουν τον ρόλο των clients) και μηχανές - που "αποκτούν" αυτά τα δεδομένα καθώς στη συνέχεια επικοινωνούν μεταξύ τους για διάφορους σκοπούς (συνήθως έχουν τον ρόλο των servers ή devices). - To undertand this better lets look at the picture bellow - and imagine that red dots are iot devices that can send and - receive and black ones are clients that gather data.

-
-
-
-
-

Για το σκοπό του εργαστηρίου, θα χρησιμοποιηθούν τα παρακάτω εργαλεία:

-
-
-
    -
  • -

    Swarmlab

    -
  • -
  • -

    Ansible

    -
  • -
  • -

    Fluentd

    -
  • -
  • -

    MongoDB

    -
  • -
  • -

    NodeJS

    -
  • -
-
-
-
-
-
-
-

1. Πρώτη Ενότητα

-
-
-

1.1. Δημιουργία Δικτύου:

-
-

Για να μπορέσουμε να θέσουμε σε λειτουργία τις εικονικές - μηχανές αλλά και να τις διαμορφώσουμε κατάλληλα έτσι - ώστε να συλλέγουν και να μεταφέρουν δεδομένα, - θα χρειαστεί να δημιουργήσουμε ένα δίκτυο, πάνω στο - οποίο θα γίνουν οι επιθυμητές ενέργειες.

-
-
-
-

1.2. Αυτόματη Εγκατάσταση Προγράμματος Σύλλογης Δεδομένων:

-
-

Για να μπορέσουμε να συλλέξουμε δεδομένα από ένα σύνολο εικονικών μηχανών - και να τα στείλουμε σε διάφορα σημεία, θα πρέπει οι εικονικές μηχανές - να έχουν εγκαταστήσει ορισμένα πακέτα που θα περιέχουν - ειδικά εργαλεία για την κάθε διαδικασία που επιθυμούμε - να εκτελέσουν.

-
-
-

Χρησιμοποιούμε το Ansible, με το οποίο δίνουμε τις διευθύνσεις - των εικονικών μηχανών που επιθυμούμε να κάνουν τις απαραίτητες εγκαταστάσεις πακέτων, - σε ένα αρχείο Inventory, καθώς και σε ένα άλλο αρχείο - fluentd.conf.yml δίνουμε ορισμένα πακέτα που θέλουμε - να εγκατασταθούν στις εικονικές μηχανές.

-
-
-

Για την συλλογή δεδομένων θα χρησιμοποιήσουμε ένα ειδικό εργαλείο, - το οποίο έχει την δυνατότητα να συλλέγει δεδομένα από διάφορες πηγές - (π.χ. system logs, apache logs, web app / mobile logs, - IoT Sensors logs κλπ.) και να τα στέλνει σε διάφορα - σημεία που επιθυμούμε (π.χ. AWS, Hadoop, - Βάσεις Δεδοένων).

-
-
-

Το εργαλείο που θα χρησιμοποιήσουμε ονομάζεται Fluentd και θα επιχειρήσουμε την συλλογή δεδομένων από αρχεία logs αναφορικά με διάφορα στατιστικά της εφαρμογής μας, - καθώς και από αρχεία που έχουμε γράψει μέσα σε αυτά.

-
-
-

Η αποστολή και αποθήκευση της παραπάνω συλλογής δεδομένων, - όπως θα δούμε και παρακάτω, θα γίνεται αρχικά, σε - ένα αρχείο μέσα από το οποίο θα μπορούμε να δούμε - τι πληροφορίες έχουν συλλεχθεί. Έπειτα, με το κατάλληλο configuration, - η αποθήκευση των δεδομένων που συλλέχθηκαν θα γίνεται σε ένα κεντρικό σημείο και πιο συγκεκριμένα σε μια Βάση Δεδομένων. Για τους - σκοπούς του εργαστηρίου, θα χρησιμοποιήσουμε την MongoDB replica.

-
-
-

Στην Ενότητα 2, θα γίνει λεπτομερής περιγραφή της αποθήκευσης - δεδομένων στην Βάση Δεδομένων.

-
-
-
-

1.3. onEvent - Τοπική / Προσωρινή Αποθήκευση Δεδομένων:

-
-

Όπως αναφέρθηκε στην προηγούμενη υποενότητα, με τη βοήθεια του εργαλέιου Fluentd θα ορίσουμε ποιες εικονκές μηχανές θα συλλέξουν δεδομένα - και από ποια αρχεία εισόδου για διάβασμα.

-
-
-

Σε αυτό το σημείο του project, θα ορίσουμε το αρχείο εξόδου στο οποίο - θα αποθηκεύονται όλα τα συμβάντα σε περίπτωση που - υπάρξουν στα αρχεία εισόδου.

-
-
-
-
-
-

2. Δεύτερη Ενότητα

-
-
-

2.1. Δημιουργία Βάσης Δεδομένων:

-
-

Για να μπορέσουμε να στέλνουμε δεδομένα σε μια Βάση Δεδομένων, - θα χρειαστεί να την δημιουργήσουμε πρώτα.

-
-
-

Χρησιμοποιώντας το εργαλείο Mongo μπορούμε να σηκώσουμε - μια replicated Βάση Δεδομένων, να ορίσουμε το username και το password για την πρόσβασή μας σε αυτήν, καθώς - και τις πόρτες για την μελλοντική σύνδεση της Βάσης με ένα Websocket, - το οποίο θα καλυφθεί στην Ενότητα 3.

-
-
-
-

2.2. onEvent - Αποθήκευση Δεδομένων στην Βάση:

-
-

Αφότου δοκιμάσουμε την αποθήκευση των δεδομένων σε ένα αρχείο εξόδου, - μπορούμε έπειτα με την κατάλληλη διαμόρφωση στα configuration αρχεία του εργαλείου Fluentd, να ορίσουμε πλεόν ως - έξοδο για αποθήκευση δεδομένων την Βάση Δεδομένων, την οποία δημιουργήσαμε - μόλις.

-
-
-
-
-
-

3. Τρίτη Ενότητα

-
-
-

3.1. Δημιουργία Websocket:

-
-

Για να μπορέσουμε να έχουμεάμεση μεταφορά των δεδομένων, - θα χρειαστεί να ενεργοποιήσουμε Server, καθώς και - την Τεχνολογία των Sockets, έτσι ώστε να έχουμε την - δυνατότητα να ζητάμε κάποια δεδομένα από τον Server (ως Clients) και - να παίρνουμε το αποτέλεσμα.

-
-
-

Αυτό επιτυγχάνεται με την δημιουργία ενός Websocket, - το οποίο το θέτουμε σε λειτουργία μέσω Web Browser αφότου το προγραμματίσουμε κατάλληλα για την πόρτα στην οποία θα "ακούει" η σύνδεση.

-
-
-

Για τους σκοπούς του project, θα χρησιμοποιηθεί η Υπηρεσία RESTful API μέσω του Πρωτοκόλλου REST, για την επιχείρηση σύνδεσης - ενός (ή περισσότερων) Client με έναν Server σε μια συγκεκριμένη διεύθυνση και σε μια συγκεκριμένη πόρτα.

-
-
-
-

3.2. Σύνδεση Websocket και Βασικών Υπηρεσιών:

-
-

Για να μπορέσουμε να μεταφέρουμε δεδομένα μέσω ενός Websocket, η μια - λύση είναι να επιχειρήσουμε την σύνδεση του Websocket που δημιουργήσαμε - προηγουμένως, με τις βασικές υπηρεσίες που δημιουργήσαμε - στην Ενότητα 1, μέσω ορίσματος κατάλληλων ports.

-
-
-
-

3.3. Σύνδεση Websocket και Βάσης Δεδομένων:

-
-

Μια άλλη λύση για την μεταφορά δεδομένων μέσω ενός Websocket, είναι να - επιχειρήσουμε την σύνδεση του Websocket που δημιουργήσαμε προηγουμένως, - με την Βάση Δεδομένων που δημιουργήσαμε στην Ενότητα 2, - μέσω ορίσματος κατάλληλων ports.

-
-
-
-
-
- - - \ No newline at end of file