BP KristianKuruc System Monitorovanie Sluzieb Pre Cloud

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

PANEURÓPSKA VYSOKÁ ŠKOLA

FAKULTA INFORMATIKY

FI-184954-20874

SYSTÉM MONITOROVANIA SLUŽIEB

PRE CLOUD

Bakalárska práca

2024
Kristián Kuruc
PANEURÓPSKA VYSOKÁ ŠKOLA
FAKULTA INFORMATIKY

SYSTÉM MONITOROVANIA SLUŽIEB

PRE CLOUD

Bakalárska práca

Kristián Kuruc

Študijný program: Aplikovaná informatika

Študijný odbor: Informatika

Školiace pracovisko: Ústav aplikovanej informatiky

Školiteľ: Ing. Juraj Štefanovič, PhD.

Bratislava 2024
Poďakovanie

Pri vypracovaní tejto práce by som sa rád poďakoval za odbornú pomoc pánovi doc. Ing. Juraj
Štefanovičovi PhD., ktorý mi poskytol mnoho cenných rád a konzultácií.
Čestné prehlásenie

Čestne vyhlasujem, že záverečnú prácu som vypracoval samostatne a že som uviedol všetku
použitú literatúru.

............................................
Abstrakt

Bakalárska práca sa zaoberá monitorovacím systémom so službami v Cloude prostredníctvom


technológii Python, Azure, SQL, Webhook server, mail server a sms API, nginx, etc. Tento
monitorovací a notifikačný systém bude slúžiť ako ukážka moderných riešení priamo z praxe,
určený pre pohotovostných IT profesionálov pôsobiacich v malých a stredných podnikoch.

Kľúčové slová: Cloud computing, monitoring, Python, SQL, Azure, Webhook


Abstract

The aim of this thesis is to design a monitoring system in Azure Cloud using technologies like
Python, MySQL, Webhook server, mail server and sms API, nginx, etc. This monitoring and
notification system is demonstartion of modern solutions directly from practice desinged for
standby IT professionals operating in small and medium-sized businesses.

Keywords: Cloud computing, monitoring, Python, SQL, Azure, Webhook


Obsah
Zoznam ilustrácií ........................................................................................................................9
Zoznam skratiek a značiek ........................................................................................................10
Zoznam tabuľiek .......................................................................................................................12
Úvod..........................................................................................................................................13
1 Cloud computing ...............................................................................................................14
1.1 Výhody a nevýhody cloud computingu .....................................................................14
1.1.1 Hlavné výhody cloud computingu ......................................................................15
1.1.2 Nevýhody cloud computingu ..............................................................................15
1.2 Modely služieb poskytovaných technológií Cloud Computing .................................16
1.3 Microsoft Azure .........................................................................................................18
1.3.1 História MS Azure ..............................................................................................18
1.3.2 Azure compute service........................................................................................19
1.3.3 Licenčná politika Azure ......................................................................................19
2 Analýza zvolených technológií .........................................................................................20
3 Návrh cloudovej architektúry ............................................................................................22
3.1 Hierarchia Jira tiketov ................................................................................................22
3.2 Návrh služieb systému ...............................................................................................24
4 Implementácie cloudových služieb ...................................................................................27
4.1 Vytvorenie verejného a privátneho kľúča ..................................................................27
4.2 Zakladanie cloudových zdrojov v Azuri ....................................................................29
4.3 SQL Databáza ............................................................................................................32
4.4 Konfigurácia systému.................................................................................................34
4.5 Konfigurácia softvérov...............................................................................................34
4.5.1 Pohotovostný dashboard .....................................................................................35
4.5.2 Webhook server ..................................................................................................38
4.5.3 Aplikačný server .................................................................................................40
Záver .........................................................................................................................................40
Použitá literatúra .......................................................................................................................44
Prílohy .......................................................................................................................................46
Zoznam ilustrácií

Obrázok 1 – Všeobecný diagram cloud computingu ........................................................... 14


Obrázok 2 – Ako funguje model IaaS ................................................................................. 17
Obrázok 3 – Služby Microsoft Azure .................................................................................. 18
Obrázok 4 – Azure compute diagram .................................................................................. 19
Obrázok 5 – Diagram monitorovacieho systému ................................................................ 21
Obrázok 6 – Založenie virtuálneho servera v Jire- inštrukcie ............................................. 22
Obrázok 7 – Inštalácia požadovaného softvéru v Jire - inštrukcie ...................................... 23
Obrázok 8 – Testovanie softvérov ....................................................................................... 23
Obrázok 9 – Diagram pre časť systému – aplikačný server ................................................ 24
Obrázok 10 – Diagram pre časť systému – emergency board ............................................. 25
Obrázok 11 – Diagram pre časť systému – webhook server ............................................... 26
Obrázok 12 – Proces vytvorenia verejného a privátneho kľúča .......................................... 27
Obrázok 13 – Vygenerovaný privátny kľúč ........................................................................ 28
Obrázok 14 – Vygenerovaný verejný kľúč .......................................................................... 29
Obrázok 15 – Resource group, mscs_rg .............................................................................. 29
Obrázok 16 – Virtual network, mscs_vnet .......................................................................... 30
Obrázok 17 – SQL server, mscs-master .............................................................................. 30
Obrázok 18 – SQL database, mscs_master_db .................................................................... 31
Obrázok 19 – Virtuálny počítač, mscs-application01 .......................................................... 32
Obrázok 20 – Topológia virtuálnej siete mscs_vnet ............................................................ 32
Obrázok 21 – Databázový diagram ..................................................................................... 33
Obrázok 22 – SQL skripty na vytvorenie tabuliek .............................................................. 33
Obrázok 23 – Interaktívna tabuľka, SQL dotaz ................................................................... 36
Obrázok 24 – Pohotovostný dashboard ............................................................................... 37
Obrázok 25 – Štruktúra webhook servera............................................................................ 38
Obrázok 26 – Časť zdrojového kódu, spustenie servera - webhook-server ........................ 39
Obrázok 27 – Časť zdrojového kódu, uloženie správa do databázy - webhook-server ....... 40
Obrázok 28 – Zdrojový kód – smtp-server .......................................................................... 41
Obrázok 29 – Ukážka webovej stránky ............................................................................... 42

9
Zoznam skratiek a značiek

OS Operating system - Operačný systém

Softvér, ktorý spravuje zdroje počítača

MS Microsoft - Microsoft

Medzinárodná technologická firma

IoT Internet of Things – Internet vecí

Prepojenie zariadení, objektov a ľudí s internetom

AI Artifical intelligence – Umelá inteligencia

Tvorba systémov riešiacich komplexné úlohy

VM Virtual machine – Virtuálny počítač

Vytvára virtualizované prostredie pre rôzne platformy

SaaS Software as a Service – Softvér ako služba

Základný cloudový model

PaaS Platfrom as a Service – Platforma ako služba

Základný cloudový model

IaaS Infrastructure as a Service – Infraštruktúra ako služba

Základný cloudový model

CaaS Communication as a Service – Komunikácia ako služba

Základný cloudový model

HaaS Hardware as a Service – Hardvér ako služba

Druhé označovanie IaaS, základný cloudový model

10
EaaS Everything as a Service – Všetko ako služba

Cloud poskytuje všetko ako službu

HTML HyperText Markup Language – HyperText značkovací jazyk

Slúži na vytváranie webových stránok

PAYG Pay as You go – systém priebežného financovania

Platíte za skutočne využívaný výkon

VOIP Voice over Internet Protocol – Prenos hlasu internetovým protokolom

Prenos hlasovej prevádzky prostredníctvom paketov pomocou protokolu IP

SMTP Simple Mail Transfer Protocol – Prenos pošty internetovým protokolom

Jednoduchý protokol, ktorý umožňuje prenos digitálnej pošty

API Application programming interface – Rozhranie pre programovanie aplikácií

Ide o funkcie a tried, ktoré určujú spôsob komunikácie

cURL Client for URLs – Klient(príkazový riadok) pre URL

nástroj na prenos dát pomocou rôznych protokolov

SSH Secure shell – Zabezpečený prístup k príkazovému interpreteru

Zabezpečený komunikačný protokol v počítačovej sieti

GUI Graphical User Interface – Grafické užívateľské rozhranie

Spôsob interakcie medzi používateľom a počítačom

SCP Session Control Protocol – Zabezpečený protokol pre prenos súboru

Zabezpečený komunikačný protokol medzi dvoma počítačmi

11
Zoznam tabuliek

Tabuľka 1 - Mesačné výdavky systému .............................................................................. 19

12
Úvod

Cloud computing je moderný model vývoja a používania počítačových technológií. Možno


ho charakterizovať ako poskytovanie služieb prostredníctvom serverov, ktoré sú prístupné
z internetu. Tieto služby sú dostupné prevažne nepretržite a z kamkoľvek zo sveta. Na
zobrazenie používame webový prehliadač, emailového klienta alebo špecializovaný softvér.
V prípade, že služba je platená, užívateľ neplatí za softvér, ale za jeho používanie na
mesačnej alebo ročnej báze, pričom za jednotlivé moduly môže byť účtovaný príplatok.
Cieľom tejto práce je ukázať možnosti Cloud computingu v monitorovaní služieb. Najlepšie
využite tohto riešenia je pre pohotovostných pracovníkov, ktorý si starajú o cloudové
a nepretržité služby a potrebujú notifikačný systém, ktorý ich upozorní pri incidentoch
a systémových haváriách pomocou emailovej správy, správy alebo telefonického hovoru.
V nasledujúcej krátkej kapitole sa venujeme histórií cloud computingu a cloudovej
platforme Azure od spoločnosti Microsoft. Druhá kapitola sa zaoberá analýzou všetkých
technológií, ktorý budú súčasťou práce. Počas zoznamovaní si vysvetlíme ako budeme
implementovať jednotlivé technológie. Tretia kapitola sa zaoberá požiadavkami
architektúry, ktoré sú nutné a potrebné na vytvorenie systému. Prinášame ukážku z praxe
ako by vyzerala hierarchia Jira tiketov pre náš systém. Pripravíme diagramy celého systému
aj jednotlivých častí.
Štvrtá zároveň najdôležitejšia kapitola popisuje ako sme vytvorili potrebné servery, nastavili
prístupy, taktiež vytvorenie a konfigurácia databázy a nastavenie dashboardu. Vysvetlíme
ako sme nastavili komunikáciu medzi servermi a aplikáciami.
Posledná kapitola sa zaoberá praktickými možnosťami, ktoré aj ukážeme na modelových
situáciách pomocou generovania chybových správ. Ukážeme dashboard, ktorý
nakonfigurujeme v Grafane a bude nám prezentovať dáta v reálnom čase o chybových
správach a stave všetkých služieb. Taktiež otestujeme funkčnosť sms brány a mailovej
servery pomocou notifikačných správ, ktoré sme schopní poslať na ľubovoľné telefónne
číslo alebo mailovú adresu. Táto kapitola aj obsahuje krátke zamýšľanie nad využívaním
týchto notifikačných a monitorovacích služieb v malých a stredne veľkých podnikoch.

13
1 Cloud computing
Cloud computing je poskytovanie výpočtových služieb cez internet, umožňujúce užívateľom
prístup k zdieľaným zdrojom, infraštruktúre a aplikáciám na diaľku. Používatelia k nim
môžu pristupovať napríklad pomocou webového prehliadača alebo klienta danej aplikácie
a používať prakticky odkiaľkoľvek. Vlastnosti cloud computingu otvárajú dvere mnohým
odvetviam a poukazujú na možnosti softvérových riešení a aplikácií. Najčastejšie ide
o poskytovanie počítačových služieb vrátane serverov, úložísk, databáz, virtuálnych sietí,
analytiky a monitorovania. Zvyčajne platíte len za skutočne využívané zdroje a služby,
avšak existujú aj iné modely, ktorý ponúkajú fixné poplatky.
Prechod od interne spracúvaných údajov k modelu cloud computingu prináša významné
zmeny na všetkých úrovniach. Prijatie cloud computingu bude mať výrazný vplyv na spôsob
fungovania vo všetkých oblastiach života.[1]

Obrázok 1 - Všeobecný diagram cloud computing


https://inovia.sk/2023/03/31/cloud-computing-pre-kazdeho-startup-beby-cloud-ponuka-
riesenie/

1.1 Výhody a nevýhody cloud computingu

Hlavný princíp Cloud computingu spočíva v tom, že sú aplikácie poskytované u iných


spoločností. To znamená, že tým sa znižujú náklady na údržbu lokálnych údajových centier,
na priebežný servis, správu vlastných serverov, inštalácie, zálohovanie a pravidelné
aktualizácie serverových OS a jednotlivých aplikácii. Spravidla používanie Cloud
computingu je cenovo výhodnejšie oproti zariadeniam vlastnej infraštruktúry a umožňuje

14
jednoduchým používateľov, firmám a veľkých korporátom používať najmodernejšie
technológie. Koncepcia Cloud computingu je výhodná tam, kde niektorý zamestnanci
pracujú z domu alebo potrebujú pristupovať k firemným dátam na cestách. Vzhľadom
k tomu, že k práci v Cloude je v väčšinou potrebné iba webový prehliadač a prístup na
internet, taktiež je veľký pozitívum, že táto technológia bude okamžite fungovať na každom
zariadení nezávisle od platforme.[2]

1.1.1 Hlavné výhody cloud computingu

Náklady – Prechod do cloudu pomáha spoločnostiam optimalizovať náklady na IT. Cloud


computing eliminuje kapitálové náklady na nákup hardvéru a softvéru, nastavenie
a prevádzku dátových centier na mieste – stojany, serverov, nepretržitú elektrinu na
napájanie a chladenie, IT expertov na správu infraštruktúry.

Rýchlosť – Väčšina služieb cloud computingu sa poskytuje samoobslužne a na požiadanie,


takže aj obrovské množstvo výpočtových zdrojov možno poskytnúť v priebehu niekoľkých
minút, zvyčajne iba niekoľkými kliknutiami myšou. Táto technológia poskytuje veľkú
flexibilitu a znižuje tlak na plánované kapacity.

Bezpečnosť – Poskytovatelia cloudu ponúkajú širokú škálu zásad, technológií a prvkov,


ktoré celkovo posilňujú bezpečnosť a pomáhajú chrániť údaje, aplikácie pred potenciálnymi
hrozbami.

Výkon – Najväčšie služby cloud computingu fungujú na celosvetovej sieti zabezpečených


dátových centier, ktoré sú pravidelne inovované na najnovšiu generáciu rýchleho a
efektívneho hardvéru. To ponúka niekoľko výhod napr. zníženie sieťovej latencie pre
aplikácie.

Spoľahlivosť – Cloud computing zjednodušuje zálohovanie údajov, obnovu po havárii


a kontinuitu služieb.

1.1.2 Nevýhody cloud computingu

Hoci cloud computing prináša mnoho výhod, existujú aj niektoré potenciálne nevýhody,
ktoré treba zvážiť.

Závislosť na internete – Cloud computing vyžaduje spojenie s internetom. Ak je pripojenie


nedostupné alebo pomalé, môže to viesť k obmedzeniam ako napr. spomalený prístup
k dátam a službám.

Bezpečnosť – U niektorých organizácií môže vzbudiť obavy o bezpečnosť dát, keď sú


umiestnené mimo ich fyzických priestorov.

15
Možné dlhodobé náklady – Aj keď môže byť prvotné nasadenie do cloudu nákladovo
efektívne, dlhodobé náklady môžu narásť, najmä ak organizácia začne neefektívne využívať
veľké množstvo dát.

Výpadky služieb – ak poskytovateľ cloudu zažije výpadok služieb, môže to dočasne


ovplyvniť prístup k dátam a aplikáciám, čo môže byť kritické pre niektoré podniky.
Väčšinou sú to mänšie výpadky, väčšie môžu byť vopred naplánované

Závislosť od poskytovateľa služieb – ak sa organizácia rozhodne pre konkrétnu cloudovú


platformu, môže sa stávať závislou od tohto poskytovateľa, čo obmedzuje možnosti
migrácie.

Právne a regulačné otázky – Rôzne krajiny majú rôzne právne a regulačné požiadavky na
spracovanie a uchovávanie dát, čo môže byť komplikované pre globálne organizácie.

1.2 Modely služieb poskytovaných technológií Cloud Computing

V rámci modelov cloudu existuje niekoľko typov cloudových služieb vrátane infraštruktúry
a softvérových aplikácií. Modely cloudových služieb sa navzájom nevylučujú a je možné
používať viacero modelov v kombinácií alebo dokonca všetky naraz. Cloud Computing
umožňuje poskytovateľom ponúkať služby svojim zákazníkom z nasledujúcich modelov:

Software as a Service (SaaS) – Softvér ako služba

Softvér je umiestnený na serveroch poskytovatelia a zákazníci k nemu pristupujú


prostredníctvom webového prehliadača alebo natívnych aplikácií. Keď porovnáme so
štandardným modelom softvéru, ktorý nakúpime a nainštalujeme priamo na počítač, tak
tento model je zvyčajne licencovaný vo forme predplatného, kde si používateľ vyberá
z viacerých plánov, ktoré sa líšia podľa veľkosti prideleného dátového priestoru alebo
v počte pristupujúcich používateľov. Výhoda je, že o celý softvér a podporu sa stará
poskytovateľ. Koncepcia SaaS je funkčný na prevádzku väčšiny bežných typov softvéru,
pričom pre niektoré aplikácie môže byť nepoužiteľné napr. Aplikáciám, ktoré pracujú s
veľmi citlivými údajmi, ako sú utajované informácie, obchodné tajomstvá alebo duševné
vlastníctvo, môžu lepšie poslúžiť lokálne riešenia, kde má organizácia plnú kontrolu nad
ukladaním a zabezpečením údajov. Typické aplikácie ktoré využívajú model SaaS sú CRM
systémy, účtovnícke softvéry, administratíva a správa webového obsahu a kancelárske
aplikácie.

16
Platform as a Service (PaaS) – Platforma ako služba

Táto služba je oveľa výhodnejšia pre vývojárov. PaaS poskytuje platformu pre vývoj,
testovanie, implementácie a hostovanie vlastných aplikácií. Najväčšou výhodou konceptu
je, že vývojári môžu vytvárať aplikácie nezávisle od operačného systému. Z toho vyplýva,
že nevýhodou je nekompatibilita medzi poskytovateľmi vývojovej platformy. Väčšinou
systémy typu PaaS je založený na jazyku HTML spoločne s JavaScriptom a pracuje sa nim
v prostredí webového prehliadača. Najznámejšou príkladom je Google App Engine, ktorá
umožňuje vývojárom z celého sveta tvoriť aplikácie pre prostredí Google Apps.

Infrastructure as a Service (IaaS) – Infraštruktúra ako služba

IaaS veľakrát označovaný ako HaaS (Hardware as a Service) je ďalšou službou ponúkaných
v rámci cloud computingu. SaaS a PaaS ponúkajú zákazníkom aplikácie, koncept IaaS
ponúka používateľom hardvér na ľubovoľné použitie. Namiesto toho, aby bolo potrebné
kupovať servery, racky a sieťové prvky. Tieto zdroje vlastní poskytovateľ vo svojom
dátovom centre. Medzi výhodami patrí hlavne to, že IaaS umožňuje prenajať úložný priestor,
sieťové zariadenia, pamäť a procesory. Ďalšou výhodou je, že zvolenú konfiguráciu možno
v prípade potreby rýchlo a jednoducho zvýšiť alebo úplne zmeniť v závislosti od aktuálnej
situácie. Tento model umožňuje aj menším spoločnostiam s obmedzenými zdrojmi používať
špičkové a výkonné technológie. Platba alebo fakturácie za používanie služby je zvyčajne
v pravidelných intervaloch na mesačnej báze alebo metódou PAYG, čo znamená, že platíte
za skutočne využití výkon. V praktickej časti budem používať metódu IaaS, ktorý mi
zabezpečí všetky potrebné prostriedky a možnosti pre náš monitorovací systém.[3]

Obrázok 2 – Ako funguje model IaaS


https://www.spiceworks.com/tech/cloud/articles/what-is-iaas/

Communication as a Service (CaaS) – Komunikácia ako služba

Príchodom cloudu sa objavila ďalšia vývojová etapa v telekomunikácií. Služby ako


telefonovanie cez internet (VoIP), email, video hovory a video konferencie sú v prostredí
cloudu.
17
Okrem týchto štyroch najčastejších konceptoch existujú ďalšie miešané koncepty, ktorý je
možné realizovať v prostredí internetu pomocou cloudu. Preto sme označili Cloud
computing ako EaaS (Everything as a Service – Všetko ako služba) a ponúka nekonečné
množstvo modelov, ktoré môžeme využiť v rámci cloudu.

1.3 Microsoft Azure

MS Azure je cloudová platforma a súbor služieb poskytovaná spoločnosťou Microsoft. Je to


súbor cloudových služieb, ktorý umožňuje vývoj, nasadzovanie a správu aplikácií. Má pod
správou globálnu sieť dátových centier. Azure má široký spektrum služieb ako napr.
výpočtové a úložné zdroje až po IoT a AI. Tento verejný cloud prevádzkuje spoločnosť
Microsoft.[4]

Obrázok 3 - Služby Microsoft Azure


https://learn.microsoft.com/en-us/azure/?product=popular

1.3.1 História MS Azure

Microsoft Azure bol prvýkrát prestavený pre publikum 28. októbra 2008 ako operačný
systém cloud computingu, ktorý bol zameraný na biznis a vývojárov bez dodatočného
kódovania. V prvom rade Azure bol interný projekt, ktorý mal kódové označenie „Project
Red Dog“ a vývoj trval od 2004 až 2008. Microsoft oficiálne oznámil svoju cloudovú
platformu ako Azure v októbri 2008. V roku 2014 názov sa mení na Microsoft Azure.
V priebehu pár rokov Microsoft výrazne rozšíril svoje služby typu výpočtové, úložné, dátové
a pokračuje vo vývoji a v pridávaní nových funkcií a inovácií ako IoT, AI a frameworky.

18
1.3.2 Azure compute service

Počas projektu budeme využívať najviac službu Azure compute service. Azure Compute je
zodpovedná za hosťovanie služieb pre aplikácie, ktoré musia byť zabezpečené nepretržitou
dostupnosťou. Poskytuje infraštruktúru a spustenie akýchkoľvek aplikácií a ich prevádzku
v reálnom čase. Nasadenie, hostovanie, správa a spustenie aplikácie je možné iba pomocou
služby Azure Compute. Budeme využívať služby ako Azure VM, na vytvorenie
virtualizovaného prostredia, kde budú bežať služby ako sms gateway, email server
a webhook server.[5]

Obrázok 4 - Azure compute diagram


https://learn.microsoft.com/en-us/azure/?product=popular

1.3.3 Licenčná politika Azure a kalkulácia

Licenčná politika Azure je rozsiahla a komplexná. Služby je možné získať na základe celých
licenčných balíkov, ako aj jednotlivo. Samotná výpočtová technika je možné vypočítať
pomocou cenovej kalkulačky na webovej stránke Azure, kde máme možnosť vybrať
napríklad počet virtuálnych počítačov, čas používania, operačný systém, výkon a následne
získať výslednú cenu. Treba poznamenať, že ceny pre jednotlivé licencie nie sú fixné, o cene
je možné vyjednávať kontaktovaním obchodného oddelenia.[6]

Počas projektu budeme používať licenciu pre študentov, ktorá zahŕňa v sebe 200$
v prepočte 183€ kreditu. Credit môžeme používať neobmedzene pre všetky služby v Azure.
Nasledujúca tabuľka nám znázorňuje mesačné výdavky môjho projektu, ktoré som používal
3 mesiace.

Tabuľka 1- Mesačné výdavky systému

Produkt Funkcia PaYg 1 rok viazanosť


Virtual Machine Application server 26.64€ 23.95€
Virtual Machine Webhook server 26.64€ 23.95€
Virtual Machine Application server 26.64€ 23.95€
Standard HDD 32GB Storage 3x 4.36€ 4.36€
MS SQL Database SQL Database 4.93 4.93
Celkové výdavky za mesiac 89.21€ 81.14€

19
2 Analýza zvolených technológií
Dôležitá fáza je plánovanie, ktoré do istej miery objavuje v každom kroku. Po určení cieľov
nasleduje analýza systémových požiadaviek, kde je presne určené aké funkcie očakávame
od jednotlivých technológií. V našom prípade som zvolil technológie, ktoré som počas
môjho pôsobenia v IT sektore som mal možnosť vyskúšať. Krátkosti vysvetlím prečo som
vybral práve tú technológiu a načo bude slúžiť počas projektu.

Jira

Je softvérový nástroj pre evidencii chýb a problému, ale taktiež slúži na riadenie projektu.
Je veľmi populárny systém v súčasnosti medzi spoločností, lebo ponúka prehľad vo
firemných procesoch a znižuje počet mailov. Na začiatku bol email, do ktorého spíšete údaje
a úlohy, následne odošlete ho na spracovanie. Jira tiket obsahuje všetky informácie ohľadom
problému, jednotlivé termíny ako čas vytvorenia, čas poslednej aktualizácie a čas splnenia.
Obsahuje komentáre, súbory a prílohy od ostatných tímov, ktoré sú automaticky
notifikovaný o zmenách. Počas návrhu systému si vytvoríme Jira tiket pre viaceré časti
systému.[7]

MS Azure

MS Azure je cloudová platforma vhodný pre naše potreby. Ponúka pre nás virtuálnu sieť,
virtuálne úložisko, virtuálne a databázové servery. Veľkou výhodou je, že pre študentov
ponúka kredit, ktoré nám bude stačiť na naše náklady. [8]

MS SQL Database

MS SQL Database je relačná databáza, ktorá je vyvýjanou spoločnosťou Microsoft. Ponúka


niekoľko vylepšení a nových funkcií, ktoré môžu byť atraktívne týka sa to napríklad
optimalizácií a podpora nových úložísk alebo podpora pokročilých funkcií. Avšak v našom
prípade bude slúžiť ako štandardná databáza v cloude. Bude slúžiť na spracovanie dát ako
napríklad vkladanie a ukladanie dáta alebo na priebežné vykonávanie dotazov ktoré
prichádzajú na databázu.

Grafana dashboard

Grafana je otvorený softvér pre vizualizáciu a analýzu dát. Poskytuje nástroje ktoré sú hodné
práve pre pohotovostné tímy, ktoré potrebujú sledovať dáta a štatistiky. Budeme
vizualizovať dáta z relačnej databázy pomocou dotazov, ktoré sú veľmi užitočné pri riešení
incidentov. Samotná grafana obsahuje v sebe emailový notifikačný systém, ale v našom
prípade budeme používať vlastný mailový server na posielanie notifikácií.

20
Webhook server

Webhook server je program napísané v programovacom jazyku python. Tento server nám
zabezpečí prijímanie stavových správ od jednotlivých aplikácií. Podľa preddefinovaných
nastavení ich prijíma a posiela ďalej na spracovanie. Po ich klasifikovaní sú vykonané ďalšie
kroky ako uloženie údajov do databázy alebo posielanie notifikáčných emailov či sms správ.
Existuje viac podobných serverov, ktoré majú podobné alebo možno rovnaké funkcie, avšak
verzia, ktorú budeme používať sme upravovali my. Pridali sme funkcie pre vlastné potreby
ako napríklad uloženie údajov do relačnej databázy alebo posielanie notifikácií v sms správe.
Na tom istom servery nakonfigurujeme mailový SMTP server, ktorý bude posielať
notifikačných emailov pomocou krátkych skriptov. Pomocou ďalších krátkych skriptov
zabezpečujeme posielanie jednotlivých SMS správ. Skript obsahuje príkazy týkajúce sa
nástroju cURL, ktorý komunikuje so SMS API gatewayom pre posielanie SMS správ.

Nginx, aplikačný server

Aplikačný server bude slúžiť na interakciu medzi službami posielajúce stavových správ
a Webhook serverom. Pomôže nám pri testovaní a modelovaní havarijných situácií.
Súčasťou bude aj jednoduchá webstránka, ktorá nám umožní jednoducho posielať stavové
správy z jednotlivých služieb, generovať sériu stavových správ, nastaviť mobilné číslo
a emailovú adresu na testovanie.

Obrázok 5 - Diagram monitorovacieho systému

21
3 Návrh cloudovej architektúry
V tejto fáze musíme navrhnúť architektúru nielen všetkých služieb ale aj celého systému.
Vysvetlíme ako fungujú jednotlivé časti systému, ich rozloženie vo virtuálnej sieti v cloude,
jednotlivé služby a ich komunikácia medzi sebou. Najlepší a osvedčení spôsob na grafické
znázornenie je vytvorenie infraštruktúrnych diagramov. Na vytváranie diagramov existuje
veľa nástrojov. My budeme používať známy webový softvér diagrams.net, ktorá ponúka
moderné ikony zo sveta IT. Nájdeme ikony o známych softvéroch, technológií, cloudu
a operačných systémov. Názov nášho projektu bude:

Monitoring system for Cloud Services


MSCS

3.1 Hierarchia Jira tiketov

Väčšina technologických firiem používa softvér na riadenie projektu, pri zadávaní a plnení
úloh, meranie výkonu. Pre ukážku budeme používať známy a obľúbený nástroj Jira od
spoločnosti Atlassian, Inc. Hierarchiu Jira tiketov ukážeme na časti systému a vybrali sme
databázu s dashboardom.

Pohotovostný dashboard - Emergency board

Prvým krokom je vytvorenie virtuálneho počítača/servera v príslušnom resource groupe


a virtuálnej sieti v Azuri. Vytvoríme tiket pre tím v ktorom definujeme podrobnosti ohľadom
servera. Treba definovať dôležité parametre ako názov, zdroj, tier, procesor, operačná
pamäť, operačný systém, sieť, privátna a verejná IP adresa, úložisko, porty.

Obrázok 6 – Založenie virtuálneho servera v Jire - inštrukcie

22
Server je správne nakonfigurovaný, operačný systém je nainštalovaný, takže už máme
prístup na samotný server pomocou služby ssh. Nasledujúcim krokom je vytvorenie tiketu
na inštaláciu požadovaných softvérov podľa požiadaviek, ktoré nájdeme v tikete.

Obrázok 7 - Inštalácia požadovaného softvéru v Jire - inštrukcie

Posledným krokom je testovanie funkčnosti softvérov. Otestujeme čítanie z databázy pod


užívateľom grafanaReader, vloženie dát do databázy pod užívateľom writer, komunikáciu
medzi databázou a dashboardom, vykonáme jednoduchých dotazov cez grafana dashboard.

Obrázok 8 - Testovanie softvérov – inštrukcie

23
3.2 Návrh služieb systému

Pri návrhu infraštruktúry sa orientujeme na poskytovanie funkčnosti vo forme služieb. Za


veľmi dôležité pokladáme správne implementácie rôznych technológií a ich prepájaní do
funkčného celku. Náš systém sa pozostáva z nasledujúcich častí:

1. Aplikačný server

Základným softvérom je operačný systém bežiaci na virtuálnom počítači.


Rozšíreným systémom pre servery je Linux(Debian) ktorý treba manuálne stiahnuť
a nainštalovať, avšak Azure nám ponúka overený a predinštalovaný operačný systém
Linux (Ubuntu 22.04), ktorý je veľmi identický a poskytuje všetky potrebné funkcie.

Hlavným softvérom bude Nginx, ktorý nám poskytne webový server na ktorom bude
uložená jednoduchá webstránka, ktorá bude slúžiť na vykonávanie modelových
situácií v našom systému.

Naše služby budú bežať tiež na aplikačnom servery. Služby slúžia na to aby nám
dodali dáta formou stavových správ - Webhooky na webhook server pomocou
protokolu http.

Obrázok 9 - Diagram pre časť systému – aplikačný server

24
Jednotlivé služby poskytujú nám rôzne typy dát:

MSCS - Mobile Guard Service – poskytuje dáta o ochrane mobilných zariadení

ESTS - Elysian Shadow Threat service – poskytuje nám dáta o zachytených hrozieb

HCD - Health Check Service – poskytuje nám dáta o dostupnosti služieb

CLS - Continuous Load Service – poskytuje nám dáta o výkone serverov

2. Pohotovostný dashboard

Na serveri budeme používať predinštalovaný Linux(Ubuntu 22.04).

Databázou používame Azure SQL Database, ktorý nám zabezpečuje spracovanie,


uchovávanie, triedenie, zoradenie a opätovné vyhľadávanie informácií. Budeme
využívať iba základné funkcie ako vyhľadávanie, vloženie dát, ako autentifikačnú
metódu „Používateľské meno a heslo“ a takzvaný Connection string.

Na vizualizáciu dát a vytvorenie pohotovostných dashboardov sme vybrali tiež open


source softvér Grafana OSS od Grafana Labs, avšak existuje aj platná verzia ktorá
ponúka cloudové služby a hostovanie aplikácií na vlastnom serveri.

Obrázok 10 - Diagram pre časť systému - pohotovostný board

25
3. Webhook server

Na virtuálnom počítači taktiež bude bežať predinštalovaný operačný systém Linux


(Ubuntu 22.04).

Na serveri budeme mať viac dôležitých softvérov, ktorých sme buď vytvorili sám
alebo sme upravili open-source kód na naše potreby. Na to aby sme vedeli spracovať
http požiadavky od služieb bežiacich na aplikačnom serveri. Tento webhook server
nám prijíma stavové správy od všetkých služieb. Prijaté správy sú kontrolované
a v prípade, že správy sú validné tak sa prebehne prvá kategorizácia správ podľa
jednotlivých služieb, následne sa uložia do príslušného adresára.

Ďalší softvér nám spracuje validné správy. V prvom kroku sa správy uložia do Azure
SQL databázy, kde budú zbierané všetky správy zo všetkých služieb. V ďalšom
kroku sa prebehne druhá zložitejšia kategorizácia správ. Správy kategorizované
podľa služieb budú ďalej rozdelené podľa typu obsahu správy. Potom podľa priority
a vopred stanovených pravidiel správy budú ďalej posunuté na mailový server alebo
na sms gateway. Správy ktorý išli na mailový server budú posielané mailom
pomocou SMTP protokolu pohotovostníkovi alebo príslušnému pracovníkovi.
V prípade, že správy išli na sms gateway, ten ich posiela ako sms správu priamo na
ich pohotovostný telefón.

Obrázok 11- Diagram pre časť systému – webhook server

26
4 Implementácie cloudových služieb
Nasledujúca kapitola zahŕňa v sebe praktickú časť našej práce. V tejto kapitole popíšeme
nasledujúce častí:

• Vytvorenie verejného a privátneho kľúča tzv. kryptografia s verejným kľúčom, ktorá


nám slúži na autentifikáciu používateľa na serveri.

• Vytvorenie a zakladanie v Azure skupinu cloudových zdrojov, virtuálnej siete,


virtuálnych počítačov/serverov, virtuálnych diskov a virtuálnej relačnej databázy.

• Konfigurácia základnej softvérovej výbavy virtuálnych počítačov, inštalácia


a aktualizácia softvérových balíkov.

• Inštalácia a konfigurácia hlavných softvérov ako napr. web server – Nginx.

• Nastavenie skriptov pre posielanie, prijímanie, spracovanie, kategorizovanie,


uloženie stavových správ.

• Overenie funkčnosti všetkých vytvorených a nastavených služieb

4.1 Vytvorenie verejného a privátneho kľúča

Šifrovanie verejným kľúčom inak nazývame asymetrické šifrovanie používa páry súvislých
kľúčov. Každý kľúčový pár pozostáva z verejného kľúča a príslušného privátneho kľúča.
Tieto páry sú generované kryptografickým algoritmom založeným na matematických
funkcií. Bezpečnosť kryptografie s verejným kľúčom závisí od utajenia súkromného kľúča,
z toho vyplýva, že verejný kľúč sa môže otvorene šíriť bez toho, aby sa narušila
bezpečnosť.[9]

Obrázok 12 - Proces vytvorenia verejného a privátneho kľúča


27
Pár kľúčov môžeme vygenerovať s viacerými spôsobmi, napr. pomocou známeho softvéru
PuTTYgen alebo v príkazovom riadku Windows či Linux. V prípade, že kľúče vytvárame
pomocou softvéru, tak väčšinou musíme vygenerovať náhodnú postupnosť pohybov napr.
pomocou myši, aby sme vytvorili náhodnú šifru. My sme zvolili spôsob vygenerovanie pár
kľúčov cez Linux terminál. Jednoducho napíšeme do terminálu príkaz ssh-keygen, následne
zadáme cestu kam sa vygeneruje privátny a verejný kľúč. Druhý krok je zabezpečenie
privátneho kľúča pomocou hlavného hesla, ktoré je potrebné zadať vždy pred použitím
privátneho kľúča. Vytvoriť hlavné heslo nad privátnym kľúčom nie je podmienkou
vytvorenia, ale veľmi odporúčaná. Príkaz automaticky vyžaduje od nás heslo pred
generovaním, ale môžeme nechať prázdne. Po zadaní hesla kľúč sa vygeneruje do adresára.

Obrázok 13 – Časť vygenerovaného privátneho kľúča

Konfigurácia prístupu na server začíname vložením verejného kľúča do súboru


authorized_keys, ktorý sa nachádza na príslušnom serveri v skrytom adresári používateľa
/home/akuruc/.ssh/. Tieto kľúče sú matematicky prepojené dĺžka ich kľúča je oveľa väčšia
ako pri kľúčoch používaných v symetrickej kryptografii spravidla od 1024 do 2048 bitov.

Obrázok 14 - Vygenerovaný verejný kľúč

Tento verejný kľúč musíme nahrať na všetky serveri, ktoré sme vytvorili v Azuri aby sme
mali na nich prístup. Zaheslovaný privátny kľúč si uložíme na pracovný počítač na bezpečné
miesto.

Aby sme nemuseli pred každým prihlásením na serverov zadať hlavné heslo na odomykanie
privátneho kľúča, budeme používať autentifikačného agenta. Privátny kľúč pridáme do
agenta, ktorý od nás vypýta hlavné heslo iba za určitý čas. Agent poskytuje privátny kľúč
vždy pred každou autentifikáciou na serve.

28
4.2 Zakladanie cloudových zdrojov v Azuri

Resource group

Najvyšší úroveň v Azuri predstavuje Resource group. Tu si nastavíme predplatné, názov


a oblasť. V našom prípade použijeme bezplatnú licenciu Azure for students, ktorá zahŕňa
v sebe 100€ kredit, ktoré môžeme ľubovoľne použiť. Názov mscs_rg je skratka názvy
projektu a skratka resource groupi. Oblasť, ktorá je blízko k Slovensku a poskytuje
najlacnejšie zdroje je German West Central. Pod touto skupinou budú patriť všetky naše
prostriedky.

Obrázok 15 - Resource group, mscs_rg

Virtual network

Musíme si vytvoriť virtuálnu sieť aby sme spojili na sieťovej úrovni všetky vytvorené
služby, virtuálne počítače a databázu. Patrí pod skupinou mscs_rg a predplatnou Azure for
students. Názov virtuálnej sieti bude mscs_vnet. Adresovanie nastavíme na IPv4
10.100.100.0/24, čo nám zabezpečí subnet pre 256 adries a rozsah bude 10.100.100.0 –
10.100.100.255.

Obrázok 16 - Virtual network, mscs_vnet


29
SQL server

Pri zakladaní SQL servera nastavíme názov mscs-master avšak azure tam doplní
.database.windows.net, predplatné Azure for Students, región German West Central
a taktiež nastavíme virtuálnu sieť mscs_vnet. SQL server nám zabezpečí manažovanie SQL
databáz.

Obrázok 17 - SQL server, mscs-master

SQL database

Pri vytváraní sql databázy musíme nastaviť názov čo bude mscs_master_db, bude to patriť
do mscs-master servera a do virtuálnej sieti mscs_vnet. Ostatné položky sa vyplnia
automaticky a rozšírené nastavenia necháme predvolené. Po vytváraní databázy systém nám
vygeneruje connection string, čo slúži na pripojenie do sql databázy.

Obrázok 18 - SQL database, mscs_master_db

30
Virtual machine

Virtuálne počítače budú nám slúžiť ako serveri pre naše služby. Všetky 3 servery budeme
zakladať rovnakým spôsobom iba názov a IP adresa bude líšiť. Serveri sme pomenovali
podľa toho aké služby budú bežať na serveri, sú to mscs-application01, mscs-emergency-
board01 a mscs-webhook01. Všetky serveri patria pod skupinou mscs_rg, do virtuálnej sieti
mscs_vnet a do oblasti German West Central. Architektúra bude x64 a operačný systém
bude Ubuntu. Zdroje is nastavíme na Standard_B1s, ktorý obsahuje 1 virtuálny CPU a 1GiB
operačnú pamäť. Na autentifikáciu použijeme službu SSH, takže musíme nastaviť
používateľské meno, SSH verejný kľúč a štandardný port 22. V ďalšom kroku si vytvoríme
úložisko veľkosť 30GiB a na naše účely použijeme typ HDD. VM priradíme do sieti
mscs_vnet a vytvoríme privátnu IP adresu v príslušnom subnete, verejná IP adresa sa vytvorí
automaticky. Automaticky sa nám vytvoria ďalšie zdroje ako sieťový adaptéra bezpečnostná
skupina. Nastavíme základne monitorovanie servera, aby sme mali údaje o zdrojov ako
využitý procesor, pamäť, úložisko a sieť.

Obrázok 19 - Virtuálny počítač, mscs-application01

31
Topológia virtuálnej sieti

Po vytvorený všetkých potrebných zdrojov sa nám vytvorí sieťová topológia. Obsahuje


všetky zdroje ktoré sú pripojené do virtuálnej sieti mscs_vnet. Private endpoint slúži na
bezpečné pripojenie do databázy v rámci internej sieti.

Obrázok 20 - Topológia virtuálnej sieti mscs_vnet

4.3 SQL Databáza

Azure nám ponúka databázu Microsoft SQL Server v cloude, ktorá bude kompatibilná so
všetkými zdrojmi v Azuri. Databáza bude obsahovať všetky dáta, ktoré spracuje webhook
server. Tým, že server spracuje http requesty, databáza bude jednoduchá bez vzťahov
a nazveme podľa projektu mscs_master_db. Pre uloženie všetkých dát potrebujeme 3
tabuľky. Tabuľka load bude obsahovať dáta o potrebnej záťaži servera pre správne
fungovanie. Druhá tabuľka healchecks obsahuje dáta o dostupnosti servera. Posledná
tabuľka webhooks obsahuje dáta o spracovaných http requestoch. Uložené dáta budú
základom monitorovacieho dashboardu.

32
Databázové diagramy

Databázové diagramy pomáhajú vizualizovať, ako sú dáta uložené a ako sú navzájom


prepojené.[10] Obsahujú štruktúry jednotlivých tabuliek, primárnych kľúčov a spojení. Naša
databáza skladá z týchto častí:

Obrázok 21 - Databázový diagram

SQL dotaz na vytvorenie tabuliek

Na vytvorenie tabuliek použijeme jazyk MS SQL. Dotaz obsahuje názov tabuliek, názov
jednotlivých stĺpcov, dátové typy a ďalšie parametre pre vytvorenie tabuľky.

Obrázok 22 - SQL skripty na vytvorenie tabuliek

CREATE TABLE webhooks: Táto časť dotazu začína vytváranie novej tabuľky s názvom
"webhooks".

id VARCHAR(36) PRIMARY KEY: definuje stĺpec s názvom id s dátovým typom


VARCHAR(36), čo znamená premenný reťazec s maximálnou dĺžkou 36 znakov. Obmedzenie
PRIMARY KEY označuje tento stĺpec ako primárny kľúč tabuľky, zabezpečujúc jeho
jedinečnosť.

source, service, text, type: Tieto riadky definujú ďalšie stĺpce (source, service, text a
type) s ich príslušnými dátovými typmi (VARCHAR(36) pre source, service a type, a TEXT
pre text).

33
created DATETIME DEFAULT GETDATE(): Tento riadok definuje stĺpec created s
dátovým typom DATETIME. Parameter DEFAULT GETDATE() určuje, že ak hodnota pre
created nie je poskytnutá počas operácie INSERT, predvolená hodnota bude aktuálny dátum
a čas, získaný pomocou funkcie GETDATE().

4.4 Konfigurácia systému

Pred inštaláciou softvéru musíme zaistiť aby virtuálne počítače mali najnovšie aktualizácie
operačného systému Ubuntu. Pravidelné aktualizovanie je dôležité, aby sa zabezpečila jeho
bezpečnosť, stabilita a plný potenciál. Bezpečnostné aktualizácie sú obzvlášť dôležité,
pretože neaktuálny systém môže byť vystavený väčšiemu riziku útokov a hrozieb.[11]
Aktualizácia systému sa najlepšie vykonávame pomocou príkazov v termináli:

Aktualizácia informácie o balíkoch:


sudo apt update - tento príkaz obnoví informácie o dostupných balíkoch zo zdrojov
balíkov.

Aktualizácia systému:
sudo apt upgrade - tento príkaz aktualizuje všetky nainštalované balíky na najnovšie
verzie.

Aktualizácia distribúcie(verzia systému):


sudo apt dist-upgrade - tento príkaz zvládne väčšie aktualizácie a zmeny verzie
systému.

Odstránenie nepotrebných balíkov:


sudo apt autoremove - tento príkaz odstráni balíky, ktoré už nie sú potrebné.

Kontrola závislosti balíkov:


sudo apt --fix-broken install - tento príkaz skontroluje a opraví nesprávne
závislosti balíkov.

Reštart systému: sudo reboot

4.5 Konfigurácia softvérov

Po aktualizácií virtuálnych počítačov si nakonfigurujeme potrebný softvér na každom z nich.


Počas inštalácie môže softvér vyžadovať iné komponenty alebo knižnice, ktoré sa nazývajú
závislosti. Tieto závislosti by mali byť tiež nainštalované, bez nich softvér bude nefunkčný
alebo niektoré časti môžu byť nefunkčné. Väčšinou závislosti sa nainštalujú automaticky
počas inštalácie softvéru. Snami vytvorené programy takú schopnosť nemajú, takže musíme
ich manuálne nainštalovať.

34
4.5.1 Pohotovostný dashboard

Hlavným softvérom na virtuálnom počítači mscs-emergency-board01 bude Grafana od


Grafana Labs. Grafana je open source analytický nástroj, ktoré poskytuje možnosť
vizualizovať dáta z rôznych zdrojov v reálnom čase. Je často používaný na monitorovanie a
analýzu údajov v oblasti IT infraštruktúry, aplikačného výkonu a viac. Hlavné funkcie
Grafany zahŕňajú:

1. Vizualizácie a dashboards - možné vytvárať vizuálne atraktívne grafy, tabuľky a


panely na zobrazovanie dát.

2. Podpora pre rôzne dátove Zdroje: grafana je schopná integrovať sa s rôznymi


dátovými zdrojmi vrátane databáz, časových radov, cloudových služieb a ďalších.

3. Upozornenia: Poskytuje možnosť nastaviť upozornenia, aby ste bol informovaní o


zmenách alebo problémoch vo vašich systémoch.

4. Rozšíriteľnosť: Mnoho doplnkov a pluginov, ktoré môžete použiť na rozšírenie


funkcionality Grafany podľa vašich potrieb.

Inštalácia Grafany na Ubuntu vykonávame v termináli[12]:

Pridanie GPG kľúč a repozitár Grafany:


sudo apt-get install -y software-properties-common
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add

Aktualizácia zoznam balíkov a nainštalujte Grafanu:


sudo apt-get update
sudo apt-get install grafana

Spustenie Grafany ako službu a nastavenie jej štart po reštarte:


sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Prístup k webovej konzole Grafany:

Webová konzola je prístupné z prehliadača cez port 3000, prihlasovacie údaje sú admin pre
meno a heslo. Štandardne port 3000 nie je povolený na verejnej IP adrese, takže aby sme
mali prístup ku Grafane otvoríme port na IP adrese 20.113.27.159. Po inštalácií si
konfigurujeme pripojenie k jednému alebo viacerým dátovým zdrojom v nastaveniach
Grafany. Definujeme kde sa dáta nachádzajú a ako majú byť spracované. Na pripojenie do
Azure SQL server - mscs_master_db potrebujeme iba pár údajov:

Host: mscs-master.database.windows.net
Database: mscs_master_db
Auth type: SQL Server Authentication
Username: db_admin
Password: ***********

35
Keď už Grafana má prístup k údajov, vytvoríme dashboard, ktorý je kolekciou panelov.
Každý panel môže obsahovať jedinečnú vizualizáciu, ako sú grafy, tabuľky, gauge a ďalšie.
Pre každý panel si vyberieme typ vizualizačného prvku a konfigurujeme ho podľa potreby.
Môžeme nastaviť osi, farby, filtre a ďalšie vlastnosti, aby sme dosiahli požadovaný vzhľad
a správanie.

Pre každý panel si nadefinujeme SQL dotaz, ktorý sa v pravidelných intervaloch vykonáva
a vracia najnovšie údaje z databázy. Dotaz môžeme napísať my alebo zostaviť v tzv. SQL
buildery priamo v Grafane.

Jeden z tých dotazov načítava z databázy všetky chyby, problémy a upozornenia, ktoré prišli
zo služieb. Pomocou panelu tabuľka, z načítaných dát si vytvoríme interaktívnu tabuľku
s filtrami a farebnými hodnotami.

Obrázok 23 - Interaktívna tabuľka, SQL dotaz

Po vytvorení všetkých panelov a dotazov nám vznikne prehľadný dashboard, ktorý


v reálnom čase monitoruje naše služby. Dashboard obsahuje počet dnešných problémov,
počet včerajších problémov, europsky/bratislavský čas, stav systému, potrebný záťaž na
systém a interaktívnu tabuľku s dátami a s históriou problémov.

36
Obrázok 24 - Pohotovostný dashboard

Popis jednotlivých častí dashboardu:

V strede sa nachádza lokálny čas pre Bratislavu

Yesterday’s mail alerts – zobrazuje počet včerajších problémov

Today’s mail alerts – zobrazuje počet dnešných problémov

System status UP/DOWN – zobrazuje dostupnosť servera, keď hodnota je 1 systém je


dostupný, keď hodnota je 0 systém je nedostupný

System load in % - zobrazuje záťaž servera, pre správne fungovanie služieb hodnota musí
byť medzi 70% a 100%

Webhook history – zobrazuje históriu všetkých správ zo služieb

Grafana je určená pre široké spektrum užívateľov, skupín či organizácií. Vo svete


informatiky využívajú vývojári a IT profesionáli, operátori systému, dátový analytici a tými
bezpečnostných špecialistov.

37
4.5.2 Webhook server

Webhook server je serverová aplikácia alebo koncový bod, ktorý počúva prichádzajúce
HTTP požiadavky (webhooky), ktoré sú spustené udalosťami z externých služieb alebo
aplikácií. Webhooky sú spôsobom, ako jedny systém upozorní iný systém na špecifické
udalosti alebo aktualizácie takmer v reálnom čase.

Na internete sú voľne dostupné už naprogramované webhook servery, avšak službu sme


naprogramovali sám v programovacom jazyku Python. Python slúži ako vysokoúrovňový
programovací jazyk s jednoduchou a čitateľnou syntaxou. Často sa používa pre rýchly vývoj
softvéru, preto nám najviac vyhovoval k projektu.

Obrázok 25 - Štruktúra webhook servera

smtp-server – skript spúšťa pomocou dvoch parametrov. Prvý parameter je predmet


emailovej správy a obsahuje názov služby. Druhý pramater obsahuje telo správy, ktoré
obsahuje podrobné informácie zo všetkých uložených správ, ktorý splnili podmienku.
Adresát je vždy tvrdo nastavená emailová adresa, kde posielame všetky upozornenia.

sms-gateway – skript sa spúšťa pomocou dvoch parametrov. Prvý parameter je telefónne


číslo na ktoré sa posiela správa. Väčšinou to je číslo na príslušného pracovníka, ktorý sa
mení podľa služieb tímu. Druhým parametrom je text, ktorý sa vloží do tela správy. Správa
obsahuje krátky opis problému.

modules – adresár obsahuje všetky moduly, ktoré sú vykonané po každom prijatí http
požiadavky na danú službu. Úloha jednotlivých modulov je aby danú požiadavku uložil do
hlavnej databázy mscs-master-db. Následne sa skontrolujú podmienky ako počet
webhookov za určený čas a celkový počet webhookov. V prípade, že podmenky sú splnené
modul posiela sms správy pomocou skriptu sms-gateway.py a email správu pomocou skriptu
smtp-server.py. Koniec skriptu zabezpečí presun uložených správ do adresára notified.
38
webhookd-server.py - samotný server je definovaný v tomto súbore a skladá sa z dvoch
častí. Prvá časť obsahuje samotný http server, ktorý prijíma požiadavky zo služieb. Druhá
časť je Request handler, kde definujeme ktorá požiadavka ako bude spracovaná. Úlohou
Request handlera je aby spracovával json dáta z http požiadavky, uložil ich na správne
miesto a podľa obsahu jsonu spúšťal potrebný modul.

Tu definujeme port na ktorom budú prichádzať http requesty a základnú zložku pre uložené
správy. Metoda TCPServer, ktorým parametrom je port a samotný Handler, ktorý spracuje
dotazy uloží ich na server a zavolá príslušný modul pre ďalšie spracovanie. Funkcia
httpd.serve_forever spustí samotný server a čaká na prichádzajúce dotazy.

Obrázok 26 – Časť zdrojového kódu, spustenie servera - webhook-server

Počas spracovanie dotazov sa vyselektujú dotazy, ktoré sú validné a podľa ich obsahu sa
kategorizujú a uložia sa na server. Po uložení sa za každú správu spustí modul, ktorý uloží
správu do databázy a kontroluje podmienky.

Obrázok 27 – Časť zdrojového kódu, uloženie správa do databázy - webhook-server


39
Keď niektorý z podmienok je splnený, tak pomocou smtp servera sa pošle email alebo
pomocou sms gatewaya sa pošle sms správa. Aby sme vedeli poslať ľubovolný predmet
a obsah správy, musíme ich zadať ako argumenty pri volaní skriptu.

Obrázok 28 - Zdrojový kód – smtp-server

4.5.3 Aplikačný server

Na aplikačnom serveri sa nachádza webový server nginx, v ktorom beží veľmi jednoduchá
webová stránka na ktorom spravujeme jednotlivé služby. Môžeme vykonať za jednotlivé
služby modelové situácie. Budeme modelovať situácie pri ktorých jednotlivé služby budú
posielať chybové správy. Na tieto správy bude reagovať webhook-server a pohotovostný
dashboard.

Pomocou web stránky budeme spúšťať jednotlivé scripty, ktoré budú generovať http
požiadavky na server mscs-webhookd01. Požiadavky generujeme pomocou nástroja curl.

Curl je nástroj na prenos dát pomocou URL adries, podporuje široké spektrum protokolov
ako napr. http, https, ftp, scp, atď.

40
Testovací príkaz vyzerá nasledovne[13]:

Curl -X POST -H "Content-Type: application/json" -d \


'{"source":"10.45.111.34", "type": "ERROR", "service": "Mobile Guard Service", \
"text": "Unathorized access to sensitive data stored in the cloud"}' \
10.100.100.6

Obrázok 29 - Ukážka webovej stránky

Na webovej stránke vidíme za každú službu tri tlačidlá, ktoré spúšťajú modelové situácie:
OK – služba začne posielať správy, ktoré neobsahujú žiadne chyby
Error – Load 70% - služba začne posielať chybové správy a zaťaž sa zníži na 70%
Error – Load Low - služba začne posielať chybové správy a zaťaž sa zníži na veľmi nízku
úroveň

Prichádzajúce chybové správy a záťaž sledujeme na monitorovacom paneli.

Môžeme si predstaviť, že všetko beží v poriadku, ale niekto bez oprávnenia sa viackrát skúša
dostať do systému. Systém to spracuje a vyhodnotí, že je to vážny problém, uloží do
databázy a pošle mailovú a textovú správu pre pracovníka.

Služba bude posielať http requesty na náš server, ktoré vyzerajú takto:
Curl -X POST -H "Content-Type: application/json" -d \
'{"source":"10.48.123.44", "type": "ERROR", "service": "Mobile Guard Service", \
"text": "Unathorized access to sensitive data stored in the cloud"}' \
10.100.100.6

41
Ďalšia situácia keď vypadne dátový center a záťaž na naše servery sa zníži na 70%, je to
vážny problém, avšak nie je možné aby sme to mi opravili, stačí keď systém odošle mailovú
správu.

Služba bude posielať http requesty na náš server, ktoré vyzerajú takto:
Curl -X POST -H "Content-Type: application/json" -d \
'{"source":"10.48.123.44", "type": "WARNING", "service": "Health Check Service", \
"health": 0 }' \
10.100.100.6

42
Záver
Cieľom tejto práce bolo ukázať možnosti využití technológie Cloud Computingu
v monitorovaní služieb. Ako každá technológia, ma svoje výhody a nevýhody, ktorý som sa
snažil popísať pre bežného užívatele systému. Virtualizácia, ktorú poskytuje Cloud,
nakoniec vedie k úspore nákladov a lepšiemu využívaniu zdrojov a tým k nárastu reálneho
výpočtového výkonu pre koncového užívateľa. Ďalšou výhodou tejto technológie, je
jednoduchosť údržby, využitie systémových zdrojov a aktualizácia softvéru či databázy.
Počas plánovania systému sme identifikovali kľúčové výzvy, ktorým čelí prípadná
organizácia alebo jednotlivé tímy. Výsledky práce ukazujú, že Cloud Computing je
technológia, ktorá je pre monitorovaní služieb veľmi zaujímavá. Naše úsilie smerovalo
k navrhnutiu a implementácií efektívneho monitorovacieho riešenia, ktoré by mohlo pomôcť
organizáciám zlepšiť dostupnosť, výkon a bezpečnosť ich cloudových infraštruktúr.
Implementácie cloudového poskytovateľa Microsoft Azure do projektu prebehla bez
výraznejších problému a v dobe dokončovaní tejto práce bol systém úspešne dokončení na
infraštruktúre Azure. Počas tohto obdobia sa niekoľko krát prejavila problém cloudových
služieb a to nedostupnosť zvoleného datacentra, čo spôsobil výpadky k služieb a výpadok
celého systému. Problém by sa mohol odstrániť pomocou premium funkcií od Azure.
Nasadenie a testovanie s nami vytvorených softvérov pre spracovanie dát, posielanie
notifikácií a zobrazovanie analytiky prebehol bez väčších problémov. V priebehu
implementácií služieb sme úspešne demonštrovali, že navrhnutý monitorovací systém
prináša merateľné výhody v sledovaní kľúčových služieb a udalostí v cloude. Naše riešenie
bolo schopné efektívne detekovať anomálie a udalosti, čo umožní rýchlu a presnú reakciu
na potenciálne problémy. Výsledky tejto práce majú priamy význam pre organizácie, ktoré
využívajú cloudové služby a môžu im poskytnúť cenné informácie na zlepšenie riadenia
a optimalizáciu nákladov. Avšak, je dôležité si spomenúť, že dynamika cloudových
technológií môže vyžadovať pravidelné aktualizácie a rozšírenia monitorovacích
mechanizmov, aby sa udržala ich relevancia a účinnosť. Celkovo možno konštatovať, že
téma monitorovania cloudových služieb predstavuje neustále rozvíjajúci sa obor s veľkým
potenciálom na zlepšenie a inovácie. V tejto práci sme vstúpili do tejto problematiky a
dúfame, že náš príspevok bude slúžiť ako podnet pre ďalšie výskumy a implementácie v
oblasti monitorovania v prostredí cloudu. Nakoniec, táto bakalárska práca nie je iba
záverom, ale otvára aj nové možnosti pre ďalší výskum. Prínosy a obmedzenia nášho
prístupu otvárajú priestor pre budúce projekty, ktoré sa môžu venovať hlbším analýzam,
rozšíreniu funkčnosti a implementácii v iných typoch cloudových prostredí.

43
Použitá literatúra

1. Microsoft documentation: What is cloud computing? A beginner’s guide [online]


Dostupné na: https://azure.microsoft.com/en-us/resources/cloud-computing-
dictionary/what-is-cloud-computing

2. Hallová, Marcela (2013), „Cloud computing – definícia, výhody a nevýhody“, ISBN


9788055209838

3. John Savill, 2019, Microsoft Azure Infrastructure Services for Architects, John Wiley
& Sons, ISBN 9781119596578

4. Microsoft official documentation: Advantages of cloud computing [online]


https://www.microsoft.com/sk-sk/windows-365/cloud-computing-advantages

5. Microsoft documentation: What is cloud computing? A beginner’s guide [online]


Dostupné na: https://azure.microsoft.com/en-us/resources/cloud-computing-
dictionary/what-is-cloud-computing

6. Microsoft documentation: Pricing [online]


Dostupné na: https://azure.microsoft.com/en-us/pricing/#product-pricing

7. Jira Documentation, Atlassian, Inc, Official documentation [online]


Dostupné na: https://confluence.atlassian.com/jiracoreserver073/getting-started-with-
jira-core

8. Microsoft documentation: What is cloud computing? A beginner’s guide [online]


Dostupné na: https://azure.microsoft.com/en-us/resources/cloud-computing-
dictionary/what-is-cloud-computing

9. IBM documentation: Public key cryptography [online]


Dostupné na: https://www.ibm.com/docs/en/integration-bus/10.0?topic=overview-
public-key-cryptography

44
10. Microsoft documentation: Design Database Diagrams
Dostupné na:https://learn.microsoft.com/en-us/sql/ssms/visual-db-tools/design-database-
diagrams-visual-database-tools?view=sql-server-ver16

11. Ubuntu documentation: How to upgrade


https://ubuntu.com/server/docs/upgrade-introduction

12. Grafana documentation: Install Grafana


https://grafana.com/docs/grafana/latest/setup-grafana/installation

13. Curl documentation: The man page


https://curl.se/docs/manpage.html

45
Prílohy
1. Privátny kľúč

46
2. Zdrojový kód – Webhookd server

47
3. Zdrojový kód – modul

48
4. E-mailová schránka pre monitorovanie

49
5. Textové správy

50
6. Pohotovostný dashboard

51

You might also like