Professional Documents
Culture Documents
BP KristianKuruc System Monitorovanie Sluzieb Pre Cloud
BP KristianKuruc System Monitorovanie Sluzieb Pre Cloud
BP KristianKuruc System Monitorovanie Sluzieb Pre Cloud
FAKULTA INFORMATIKY
FI-184954-20874
PRE CLOUD
Bakalárska práca
2024
Kristián Kuruc
PANEURÓPSKA VYSOKÁ ŠKOLA
FAKULTA INFORMATIKY
PRE CLOUD
Bakalárska práca
Kristián Kuruc
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
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.
9
Zoznam skratiek a značiek
MS Microsoft - Microsoft
10
EaaS Everything as a Service – Všetko ako služba
11
Zoznam tabuliek
12
Úvod
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]
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]
Hoci cloud computing prináša mnoho výhod, existujú aj niektoré potenciálne nevýhody,
ktoré treba zvážiť.
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.
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.
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:
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.
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]
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]
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.
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
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.
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.
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:
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.
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.
23
3.2 Návrh služieb systému
1. Aplikačný server
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.
24
Jednotlivé služby poskytujú nám rôzne typy dát:
ESTS - Elysian Shadow Threat service – poskytuje nám dáta o zachytených hrozieb
2. Pohotovostný dashboard
25
3. Webhook server
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.
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í:
Š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]
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
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.
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.
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.
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ť.
31
Topológia virtuálnej sieti
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
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.
CREATE TABLE webhooks: Táto časť dotazu začína vytváranie novej tabuľky s názvom
"webhooks".
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().
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 systému:
sudo apt upgrade - tento príkaz aktualizuje všetky nainštalované balíky na najnovšie
verzie.
34
4.5.1 Pohotovostný dashboard
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.
36
Obrázok 24 - Pohotovostný dashboard
System load in % - zobrazuje záťaž servera, pre správne fungovanie služieb hodnota musí
byť medzi 70% a 100%
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.
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.
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.
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]:
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ň
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
3. John Savill, 2019, Microsoft Azure Infrastructure Services for Architects, John Wiley
& Sons, ISBN 9781119596578
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
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