izpis_h1_title_alt

Monitoring of Distributed System Processing Application in Waste to Energy Plants
ID Boncelj, Tadej (Avtor), ID Bešter, Janez (Mentor) Več o mentorju... Povezava se odpre v novem oknu, ID Mali, Luka (Komentor)

.pdfPDF - Predstavitvena datoteka, prenos (4,25 MB)
MD5: 40B9F22ECA808A2648FD5762336221F8

Izvleček
In the evolving environment of distributed systems, the challenge isn't just about processing data, but also ensuring its smooth flow and timely observability. A system's efficiency and reliability consisting of multiple components - from cameras to servers and further down the line custom-made solutions and algorithms - relies heavily on its performance metrics, health status, and anomalies. This becomes especially critical when dealing with containerized systems like Docker, where each component plays a role. This MSc Thesis focuses on the implementation and analysis of an integrated monitoring and observability solution using Kibana, aided by Filebeat and Heartbeat components, all encapsulated within Docker containers. Such a solution allows real-time and historical insights into each component of the system, ensuring its robustness and quicker resolution of potential issues. The research seeks to understand the indicate the nature of system monitoring, its best practices, and the benefits of integrating observability tools in complex architectures. The aim is not just to detect issues but to predict and prevent them in advance, thus ensuring a smooth, uninterrupted data flow from source to sink. Through an automated approach, coupled with expert oversight, this research contributes to enhancing the reliability and efficiency of distributed systems.

Jezik:Angleški jezik
Ključne besede:System Monitoring, Distributed Systems, Elastic, Kibana, Docker
Vrsta gradiva:Magistrsko delo/naloga
Organizacija:FE - Fakulteta za elektrotehniko
Leto izida:2024
PID:20.500.12556/RUL-155381 Povezava se odpre v novem oknu
COBISS.SI-ID:190879491 Povezava se odpre v novem oknu
Datum objave v RUL:28.03.2024
Število ogledov:375
Število prenosov:175
Metapodatki:XML DC-XML DC-RDF
:
Kopiraj citat
Objavi na:Bookmark and Share

Sekundarni jezik

Jezik:Slovenski jezik
Naslov:Spremljanje programskih sistemov s porazdeljeno arhitekturo v obratih za predelavo odpadkov
Izvleček:
V zadnjem desetletju se podjetja vse bolj obračajo k porazdeljeni arhitekturi svojih aplikacij, s čimer se soočajo s pomembnim izzivom, kako zagotoviti zanesljivost in celovit pregled nad njihovimi aplikacijami in programi. Ta prehod omogoča podjetjem, da lažje razvijajo produkte in povečujejo zanesljivost ter skalabilnost svojih sistemov, obenem pa se s porazdeljeno arhitekturo sistema poveča tudi kompleksnost v nadzorovanju in sledenju delovanja. Za razliko od centraliziranih sistemov, kjer nadzor in opazovanje potekata preko enega centralnega strežnika ali sistema, porazdeljeni sistemi predstavljajo poseben izziv. V takih sistemih so posamezne komponente večinoma izolirane znotraj Docker vsebnikov, kar otežuje neposreden dostop in spremljanje. Takšna arhitektura zahteva razvijanje in uporabo naprednih orodij za zajem in obdelavo podatkov, ki lahko dostopajo do podatkov v vsebnikih in jih posredujejo do baze podatkov. Na trgu obstajajo različna orodja podjetij, med katerimi izstopajo Splunk, Datadog, New Relic, in Elastic. Orodja teh podjetij zagotavljajo natančen vpogled in omogočajo učinkovit nadzor nad porazdeljenimi sistemi večinoma s pomočjo agentov, a izbira pravega orodja in pristopa zahteva natančno razumevanje specifičnih potreb podjetja ter samo sestavo aplikacije, kjer želimo vzpostaviti nadzor. Agenti so programsko orodje, ki posreduje podatke, dnevniške zapise (ang. logs) in metrike programov ali aplikacij, ki jo nazdoruje v bazo podatkov (v oblaku ali lokalno). Obstajata dve vrsti agentov – prva vrsta zbira telemetrijo programa, kjer deluje v ozadju kot demon ali storitev, druga pa kot agent, ki se pritrdi na aplikacijo kot paket ali individualna komponenta \cite{splunk_agent_overview_2024}. Elasticsearch ima v svojem širokem izboru orodij možnost uporabe Elastic agentov, vendar hkrati ponuja tudi orodje Filebeat, ki je izredno nezahtevno in enostavno orodje za posredovanje dnevniških zapisov (ang. lightweight shipper). Omenjeno orodje se pripne na sistem na podoben način kakor agent \cite{filebeat_overview_2024}. Naš sistem obsega več različnih komponent, ki jih moramo nadzorovati. Obsega tako strojno kot programsko opremo, hkrati pa vspostavlja povezavo do oblaka, kjer lahko dostopamo do vizualizacij, nastavitev in informacij alarmov in imamo pregled nad dnevniškimi zapisi. Vse komponente so s pomočjo programske opreme enkapsulirane znotraj Docker vsebnikov, kar nam omogoča varno in zanesljivo delovanje. Strojna oprema deluje v sklopu s programsko opremo. To je IP kamera, ki nam omogoča pregled nad jamo, kamor komunalne službe pripeljejo in odvržejo smeti. Kamera deluje s pomočjo python skripte in namenske knjižnice depthai, s katero lahko konfiguriramo nastavitve kamere. Kamero lahko spremljamo na več načinov – preko IP naslova ali pa s pomočjo dnevniških zapisov. Ker pa potrebujemo le informacijo o tem, ali kamera deluje ali ne, nam zadošča spremljanje s pomočjo orodja Elastic Heartbeat. To orodje v rednih intervalih pošilja ping na IP naslov kamere in čaka na odziv nato pa v realnem času na grafičnem vmesniku Kibane poroča o njenem stanju. Drug način spremljanja delovanja kamere pa je z orodjem Filebeat, kjer bi brali .log datoteko python skripte s katero upravljamo kamero, a ker ne potrebujemo podrobnih informacij o samem delovanju kamere in je v samem bistvu nadzorovanje storitve z orodjem Heartbeat bolj transparentno smo se odločili za orodje Heartbeat. Naslednja komponenta, nad katero potrebujemo podroben pregled, je python aplikacija. Ta aplikacija skrbno beleži vse informacije dnevniških zapisov s pomočjo logger knjižnice, ki nam omogoča beleženje syserr in sysout informacij. Kot prej rečeno lahko s pomočjo orodja Filebeat iz .log datoteke neprenehoma beremo in prenašamo dnevniške zapise v oblak, kar nam omogoča celovit in podroben pregled nad aplikacijo. Ker pa naš sistem deluje znotraj Docker vsebnikov, moramo poskrbeti, da je orodje sposobno dostopati do posameznih aplikacij, ter nadalje prebrane informacije posreduje v oblak. Filebeat ter Heartbeat lahko zaženemo kot samostojni komponenti znotraj Docker vsebnikov in s pomočjo konfiguracijskih datotek vzpostavimo kanal, ki posreduje informacije od aplikacij do oblaka, kjer jih lahko pregledujemo. Dnevniške zapise in dnevnik delovanja lahko predstavimo v uporabniškem vmesniku Kibana. S pomočjo tega orodja lahko uredimo razne preglednice, grafe, vizualizacije po meri, ki nam omogočajo maksimalno preglednost nad sistemom, ki ga nadzorujemo. Kibana je povezana s storitvijo ki živi v oblaku Elasticsearch Cloud. Naša izbira orodij omogoča celovito rešitev za spremljanje osnovnega porazdeljenega sistema. Z orodji, kot so Heartbeat, Filebeat in Kibana, učinkovito in zanesljivo nadzorujemo ključne dele sistema. Heartbeat nam omogoča natančno spremljanje delovanja kamere v realnem času, Filebeat pa neprekinjeno zbira in prenaša dnevniške vnose v Elasticsearch oblak. S kibano lahko prilagodimo vizualizacijo delovanja sistema in nastavimo učinkovite alarme. Ta funkcionalnost je ključna za hitro odkrivanje in odzivanje na morebitne anomalije ali težave v sistemu, obenem pa nam omogoča v preostalem času delati na drugih stvareh. Uporaba Docker vsebnikov prispeva k večji modularnosti, zanesljivosti in enostavnosti uporabe našega sistema v povezavi z osnovnim, že postavljenim sistemom. Ta pristop nam prav tako omogoča enostavno skaliranje, saj lahko z minimalnimi prilagoditvami uporabimo iste storitve v različnih okoljih. S tem ko lahko nadzorni sistem poženemo na enak način kot osnovni sistem, s pomočjo Docker vsebnika, nam to omogoča boljšo in lažjo integracijo v celoto. Podatki, ki jih zbirajo orodja Heartbeat in Filebeat, so shranjeni v Elasticsearch oblaku, zaradi česar je do njih mogoče dostopati kjerkoli in kadarkoli. Med samo uporabo zasnovane rešitve smo prišli do zaključka, da je naša rešitev za spremljanje sistemov primerna, zanesljiva, nas pravočasno opomni na alarme in pravilno delovanje osnovnega sistema, prišli pa smo do spoznanja, da lahko v določenih okoliščinah pride do motenega delovanja prenosa dnevniških zapisov. Po bolj natančnem pregledu dokumentacije smo opazili, da naš pristop, kjer s Filebeatom dostopamo do .log datoteke posameznih Docker vsebnikov, ni pravilen. V redkih primerih, ko želita dve storitvi naenkrat dostopati do datoteke, bi lahko Docker vsebnik Filebeatu preprečil dostop. To pomeni, da v tistem času Filebeat nebi moral dostopati do podatkov, vendar pa bi jih prejel z določeno zakasnitvijo, ki pa ni znana. To bi lahko rešili z uporabo orodja Logstash, ki deluje podobno kot Filebeat, vendar z nekoliko bolj kompleksno konfiguracijo. Naša izkušnja kaže, da so orodja družine Elastic, kot so Heartbeat, Filebeat in Kibana, izjemno primerna za zagotavljanje zanesljivega in preglednega nadzora nad porazdeljenimi sistemi. Njihova integrabilnost, enostavnost uporabe in močna podpora s strani Elastic skupnosti in podporne strani so ključni elementi, ki prispevajo k uspešnosti naše rešitve.

Ključne besede:Nadzor sistema, Porazdeljeni sistemi, Elastic, Kibana, Docker

Podobna dela

Podobna dela v RUL:
Podobna dela v drugih slovenskih zbirkah:

Nazaj