4.8 KiB
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