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
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&parent=%2Fpersonal%2Fice19390012_uniwa_gr%2FDocuments%2Fimages&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>
|