diff --git a/README.md b/README.md index e224419..09effa2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ # Data Collector Service -## Η εργασία υλοποιήθηκε στα πλαίσια του εργαστηρίου «Υπολογιστική Νέφους & Υπηρεσίες» από τους φοιτητές: -#### Μαρία-Νεφέλη Μαρκοπουλιώτου (**151141**) & Ιωάννη Κωνσταντινίδη (**161076**) +###### Η εργασία υλοποιήθηκε στα πλαίσια του εργαστηρίου «Υπολογιστική Νέφους & Υπηρεσίες» από τους φοιτητές: +##### Μαρία-Νεφέλη Μαρκοπουλιώτου (**151141**) & Ιωάννη Κωνσταντινίδη (**161076**) ----- - - Στα πλαίσια του project υλοποιήθηκαν οι εξής λειτουργίες: * Δημιουργία Δικτύου * Αυτόματη Εγκατάσταση προγράμματος για τη συλλογή δεδομένων @@ -12,6 +10,28 @@ * Δημιουργία ΒΔ (Database Replication) * onEvent αποθήκευση δεδομένων στη βάση αυτή + +1. Για τις ανάγκες του project χρησιμοποιήσαμε το εργαστηριακό hybrid-linux του Swarmlab-Hybrid. Αρχικά, δημιουργήθηκε ένα σμήνος (swarm) μέσω της εφαρμογής. Το κάθε σμήνος (Ν nodes) αποτελείται από ένα master και Ν-1 workers. Εφόσον συνδεθούμε στον master, μπορούμε να ελέγξουμε και το υπόλοιπο σμήνος. +*Σημείωση #1:* Μπορούμε να δούμε το σμήνος, αλλά και τα περιεχόμενα όσων δικτύων χρησιμοποιούμε στο πεδίο Instances > Containers +*Σημείωση #2:* Στην περίπτωση που έχουμε δημιουργήσει ήδη κάποιο σμήνος, μπορούμε να το χρησιμοποιήσουμε. Εάν θελήσουμε να φτιάξουμε νέο, θα διαγραφεί το παλιό και ύστερα θα δημιουργηθούν τα νέα Instances. + +Για να συνδεθούμε στον master, αλλά και στους workers, θα χρησιμοποιήσουμε την εφαρμογή. Πατώντας Action στην εκάστοτε μηχανή εμφανίζεται μεταξύ άλλων η επιλογή connect. Εφόσον πατηθεί, εμφανίζεται ένα pop-up μήνυμα το οποίο περιέχει τις εξής πληροφορίες: +* Την εντολή που τρέχουμε για να συνδεθούμε στο node +* Το path στο οποίο αποθηκεύεται το project μας τοπικά +* Πού αποθηκεύεται η πληροφορία του node στην εφαρμογή + +Μέσω του σμήνους μας θα μπορέσουμε να συλλέξουμε δεδομένα από τον φάκελο /log-in και να τα αποθηκεύσουμε είτε προσωρινά στο φάκελο /mylogs, είτε σε μία βάση δεδομένων. +Στο terminal στο οποίο έχουμε συνδεθεί στον master, στο path /project/courses/fluentd$ τρέχουμε τις εξής εντολές: +* **./fluentd.yml.sh** (onEvent – local/προσωρινή αποθήκευση δεδομένων) +* **./fluentd-config-update.yml.sh** (onEvent αποθήκευση δεδομένων στη βάση αυτή) +Και τα δύο προαναφερθέντα script, αφορούν την αυτοματοποίηση των εντολών που εκτελούμε για να γίνει η συλλογή των δεδομένων και η καταγραφή στα logs. +*Σημείωση #1:* Θα μας ζητηθεί 3 φορές κωδικός για κάθε script. (docker – docker --[ENTER]) +*Σημείωση #2:* Εάν εμφανιστεί κάποιο σφάλμα ακολουθούμε τα εξής βήματα – πάντοτε στο path **/project/courses/fluentd$** +* Εκτελούμε **ps aux** για να δούμε τα τρέχοντα processes +* Δύο εξ’ αυτών θα έχουν path usr/bin/ruby… +* Εκτελούμε **kill -9 PID1 PID2**, όπου PID1 και 2 αυτά των προηγούμενων processes +* Ξανατρέχουμε το script που μας ενδιαφέρει και παρατηρούμε ότι αυτή τη φορά, μπορούμε να δούμε το debug, άρα να βρούμε και το λάθος. + ### Πηγές [Docker Compose Implementation](https://docs.docker.com/compose/compose-file/#compose-and-docker-compatibility-matrix) \ No newline at end of file