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.

201 lines
9.1 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.4">
<title>Data Collector Service</title>
<link rel="stylesheet" href="https://asciidoclive.com/assets/asciidoctor.js/css/asciidoctor.css">
</head>
<body class="article">
<div id="header">
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#__strong_data_collector_service_strong"><strong>Data Collector Service</strong></a></li>
<li><a href="#__strong_strong"><strong>Προαπαιτούμενα</strong></a></li>
<li><a href="#__strong_strong_2"><strong>Μέρος Πρώτο</strong></a></li>
<li><a href="#__strong_strong_3"><strong>Δέυτερο Μέρος</strong></a></li>
<li><a href="#__strong_strong_4"><strong>Τρίτο μέρος</strong></a></li>
<li><a href="#__strong_link_strong"><strong>Link για τα αρχεία</strong></a></li>
</ul>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="__strong_data_collector_service_strong"><strong>Data Collector Service</strong></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Καρύδης Πέτρος 711141245</p>
</div>
<div class="paragraph">
<p>Ματέο Ρουμπάτι 71347122</p>
</div>
<div class="paragraph">
<p>Ευθύμης Σδράκας 71346681</p>
</div>
<div class="paragraph">
<p>To project "Data collector service" αποτελεί τη βασική επιλογή για την
εξέταση του εργαστηρίου και χωρίζεται σε 3 ενότητες:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Πρώτη</strong></p>
<div class="ulist">
<ul>
<li>
<p>Δημιουργία δικτύου</p>
</li>
<li>
<p>Αυτόματη εγκατάσταση προγράμματος για την συλλογή των δεδομένων</p>
</li>
<li>
<p>onEvent - τοπική/προσωρινή αποθήκευση των δεδομένων</p>
</li>
</ul>
</div>
</li>
<li>
<p><strong>Δεύτερη</strong></p>
<div class="ulist">
<ul>
<li>
<p>Δημιουργία βάσης δεδομένων(Database replication)</p>
</li>
<li>
<p>onEvent αποθήκευση των δεδομένων στην βάση</p>
</li>
</ul>
</div>
</li>
<li>
<p><strong>Τρίτη</strong></p>
<div class="ulist">
<ul>
<li>
<p>Δημιουργία GUI ή</p>
</li>
<li>
<p>Δημιουργία Websocket σύνδεσης με την βάση ή με τις βασικές υπηρεσίες
για άμεση μεταφορά των δεδομένων</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__strong_strong"><strong>Προαπαιτούμενα</strong></h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p><a href="https://uniwagr-my.sharepoint.com/personal/ice19390012_uniwa_gr/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fice19390012_uniwa_gr%2FDocuments%2Fimages%2Fgeneric%2Eqcow2&amp;parent=%2Fpersonal%2Fice19390012_uniwa_gr%2FDocuments%2Fimages&amp;originalPath=aHR0cHM6Ly91bml3YWdyLW15LnNoYXJlcG9pbnQuY29tLzp1Oi9nL3BlcnNvbmFsL2ljZTE5MzkwMDEyX3VuaXdhX2dyL0ViaGpRSWVpRGVORmtma1NCV2N6UmdnQmNKcTJQdjZsQUpzLU5La1Q0aFhnLWc_cnRpbWU9eXhGbk9lb3AyVWc"
target="_blank">Linux Ubuntu 20.04.2 LTS</a></p>
</li>
<li>
<p><a href="https://www.fluentd.org/download" target="_blank">Fluentd</a></p>
</li>
<li>
<p><a href="https://www.ansible.com/" target="_blank">Ansible</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__strong_strong_2"><strong>Μέρος Πρώτο</strong></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Στο πρώτο μέρος για την δημιουργία του δικτύου χρησιμοποίησαμε το εικόνικό
εργαστήριο hybrid-linux από το <a href="http://localhost:3088/" target="_blank">Swarmlab</a>.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="https://i.imgur.com/U0D4UxL.png" alt="U0D4UxL"></span></p>
</div>
<div class="paragraph">
<p>docker exec -it -udocker hybrid-linux_master_1 /bin/bash // Συνδεόμαστε
στο master του swarm</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__strong_strong_3"><strong>Δέυτερο Μέρος</strong></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Για την υλοποίση του δέυτερου μέρους ανοίγουμε ξανά μέσα από το swarmlab
ένα εικονικό εργαστήριο για τη mongoDB.</p>
</div>
<div class="paragraph">
<p>Τρέχουμε το makefile δίνοντας make στο terminal όπου θα εγκαταστήσει σε
όλες τις εικονικές μηχανές του δικτύου τα απαραίτητα προγράμματα που
χρειάζονται για την υλοποίηση του data collection, καθώς και το config-update
το οποίο βοηθάει στη διασύνδεση των κόμβων με τη mongoDB.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="https://i.imgur.com/nr9olNX.png" alt="nr9olNX"></span> docker exec -it swarmlabmongo1 /bin/sh // Συνδεόμαστε στη mongoDB</p>
</div>
<div class="paragraph">
<p>Αφού συνδεθούμε μέσω του terminal στη mongo χρησιμοποιούμε τις παρακάτω
εντολές για να προσπελάσουμε την βάση:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>mongo</p>
</li>
<li>
<p>use app_swarmlab</p>
</li>
<li>
<p>db.auth('/app_swarmlab', '/app_swarmlab')</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
Για τη σύνδεση της βάσης και του σμήνους συνδέσαμε το δίκτυο "χειροκίνητα" μέσα απο
το swarmlab και όχι μέσω microservice με nodejs.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Στη συνέχεια για να ελέγξουμε αν η σύνδεση με τη βάση λειτουργεί τρέχουμε
ένα απο τα αρχεία test-mongo που έχουμε δημιουργήσει.Έπειτα αφού τα τρέξουμε
πηγαίνουμε στη βάση και τρέχουμε την εντολή <strong>db.logs.find({}).sort( { _id: -1 } )</strong> για να δούμε αν έχουν γίνει οι εγγραφές μέσα στη βάση.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__strong_strong_4"><strong>Τρίτο μέρος</strong></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Λόγω περιορισμένου χρόνου δεν καταφέραμε να υλοποιήσουμε το τρίτο μέρος
της εργασίας.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__strong_link_strong"><strong>Link για τα αρχεία</strong></h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://git.swarmlab.io:3000/cse47122/DATACENTER.git" class="bare">https://git.swarmlab.io:3000/cse47122/DATACENTER.git</a></p>
</div>
</div>
</div>
</div>
</body>
</html>