You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Maria-Nefeli bda5272d80 Update 'README.md' 3 years ago
files Upload files to 'files' 3 years ago
fluentd Upload files to 'fluentd' 3 years ago
README.md Update 'README.md' 3 years ago

README.md

Data Collector Service

Η εργασία υλοποιήθηκε στα πλαίσια του εργαστηρίου «Υπολογιστική Νέφους & Υπηρεσίες» από τους φοιτητές:
Μαρία-Νεφέλη Μαρκοπουλιώτου (151141) & Ιωάννη Κωνσταντινίδη (161076)

Στα πλαίσια του project υλοποιήθηκαν οι εξής λειτουργίες:

  • Δημιουργία Δικτύου
  • Αυτόματη Εγκατάσταση προγράμματος για τη συλλογή δεδομένων
  • onEvent – local/προσωρινή αποθήκευση δεδομένων
  • Δημιουργία ΒΔ (Database Replication)
  • onEvent αποθήκευση δεδομένων στη βάση αυτή

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

Για τις ανάγκες του 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, άρα να βρούμε και το λάθος.

Πηγές

swarmlab/hybrid-linux | Docker Compose Implementation | Fluend | RED HAT Ansible | Mongo DB