Korjoogteynta ayaa noqotay qayb aad muhiim u ah oo ka mid ah xalalka koraya ee daruuraha iyada oo kakanaanta nidaamyada la qaybiyey ay korodho. Waa lagama maarmaan in la fahmo dhaqankooda. Waxaan u baahanahay qalab la miisaami karo oo ka soo ururin kara xogta dhammaan adeegyada - oo siiya khabiiro leh hal interface oo leh falanqaynta waxqabadka, muujinta khaladka, helitaanka iyo diiwaannada.
Qalabkan la midka ah waa inuu noqdaa mid hufan oo waxtar leh. Maqaalkan, waxaan ku eegi doonaa laba xirmo tignoolajiyada caanka ah: EFK (Elasticsearch) iyo PLG (Loki) waxaanan baari doonaa qaab dhismeedka iyo kala duwanaanshahooda.
Tusmada ugu hooseysa ee EFK
Waxaa laga yaabaa inaad horey u maqashay ELK ama EFK ee caanka ah. Raasasku waxa uu ka kooban yahay dhawr qaybood oo kala duwan: Elasticsearch (kaydinta shay), Logstash ama FluentD (ururinta iyo isu geynta), iyo Kibana si loo arko.
Socodka shaqada caadiga ah wuxuu u eg yahay sidan:
Elasticsearch - kaydinta shay la qaybiyey oo leh goobid iyo falanqeynta wakhtiga-dhabta ah. Xalka ugu fiican ee xogta habaysan ee habaysan sida logyada. Macluumaadka waxaa loo kaydiyaa sida dukumeenti JSON ah, oo la tusmeeyay wakhtiga dhabta ah waxaana loo qaybiyaa qanjidhada kooxda. Tilmaan-rogid ayaa la isticmaalaa, oo ka kooban dhammaan ereyada gaarka ah iyo dukumentiyada la xidhiidha raadinta qoraal-buuxa, taas oo iyana ku salaysan Apache Lucene search engine.
FluentD waa xog ururiye mideeya xogta marka la ururinayo oo la isticmaalayo. Waxay isku daydaa inay xogta JSON ku habayso intii suurtogal ah. Nashqaddeedu waa la dheerayn karaa, waxaa jira qaar badan boqollaal kordhin kala duwan, bulshadu taageerto, mar walba.
Kibana - qalab sawir-qaadista xogta ee Elasticsearch oo leh awoodo dheeraad ah oo kala duwan, tusaale ahaan, falanqaynta taxanaha wakhtiga, falanqaynta garaafyada, barashada mashiinka iyo in ka badan.
Elasticsearch architecture
Xogta kutlada Elasticsearch waxa lagu kaydiyaa ku faafsan dhamaan noodkeeda. Kooxdu waxay ka kooban tahay noodo badan si loo hagaajiyo helitaanka iyo adkeysiga. Node kasta wuxuu qaban karaa dhammaan doorarka kooxda, laakiin hawlgalinta baaxadda weyn, noodhadhka ayaa caadi ahaan loo qoondeeyaa hawlo gaar ah.
Noocyada qanjirada kooxda:
Master node - waxay maamushaa kooxda, ugu yaraan saddex ayaa loo baahan yahay, mid had iyo jeer firfircoon;
noodhka xogta - waxay kaydisaa xogta la calaamadeeyay waxayna ku qabataa hawlo kala duwan;
ingest node - waxay abaabushaa dhuumaha si ay u beddelaan xogta ka hor inta aan la tilmaamin;
Ha la yaabin haddii aadan heli karin eraygan la soo gaabiyey, maadaama loo yaqaan Grafana Loki. Si kastaba ha ahaatee, xidhmadani waxay helaysaa caan sababtoo ah waxay isticmaashaa xalal farsamo oo la xaqiijiyay. Waxaa laga yaabaa inaad horey u maqashay Grafana, qalab muuqaal-muuqaal oo caan ah. Sameeyayaasheeda, oo uu dhiirigeliyay Prometheus, horumariyay Loki, qaab toosan oo la miisaami karo, nidaamka iskudarka logaga waxqabadka sarreeya. Loki ayaa tilmaamaya kaliya metadata, ma aha joornaalada laftooda, xal farsamo oo u oggolaanaya in ay fududahay in la isticmaalo oo kharash-ool ah.
Ballanqaad - wakiilka ka soo dirida diiwaannada nidaamka hawlgalka kooxda Loki. Grafana waa qalab muuqaal ah oo ku salaysan xogta Loki.
Loki waxa lagu dhisay mabaadi'da Prometheus, taas oo ka dhigaysa mid ku habboon kaydinta iyo falanqaynta Kubernetes.
Loki architecture
Loki waxa loo ordi karaa hab hal mar ah ama habab badan, taas oo u oggolaanaysa miisaan toosan.
Waxa kale oo ay u shaqayn kartaa sidii codsi monolithic ah ama adeeg-yaro ahaan. U ordaynta hal habraac waxay faa'iido u yeelan kartaa horumarka deegaanka ama la socodka yar. Hirgelinta warshadaha iyo culeyska shaqada ee la miisaami karo, waxaa lagu talinayaa in la isticmaalo ikhtiyaarka adeegga yar yar. Dariiqyada qoraalka iyo xogta akhrisku waa kala go'an yihiin, markaa si fiican ayaa loo hagaajin karaa oo loo miisaami karaa haddii loo baahdo.
Aynu eegno qaab-dhismeedka nidaamka ururinta log-yada iyadoon si faahfaahsan u tagin:
Ballanqaad - wakiil lagu rakibay qanjidhada (sida adeegyo kala duwan), waxay ka saartaa diiwaannada hawlaha oo ay gasho Kubernetes API si ay u hesho xog badan oo calaamadin doonta logyada. Kadib waxay u dirtaa log-ka adeega Loki ee ugu weyn. Khariidaynta metadata waxay taageertaa isla xeerarka sumadaynta ee Prometheus.
Qaybiyaha - qaybiyaha adeegga oo u shaqeeya sidii kayd. Si loo farsameeyo malaayiin rikoor ah, waxay xirxirtaa xogta soo socota, iyadoo ku cadaadinaya baloogyada markay timaaddo. Dhowr saxan oo xog ah ayaa isku mar wada socda, laakiin diiwaannada ka tirsan hal il xogta soo socota waa inay ka soo muuqdaan oo keliya mid iyaga ka mid ah dhammaan baloogyadiisa. Tan waxa loo habeeyey giraanta saxanka iyo xashiishyada xidhiidhsan. Dulqaadashada qaladka iyo dib-u-celinta, tan waxaa la sameeyaa n jeer (3 haddii aan la habeynin).
Ingester - qaataha adeegga. Xirmooyinka xogtu waxay yimaadaan iyagoo cufan oo lagu daray diiwaanka. Marka balooggu uu le'eg yahay cabbir ku filan, baloogga waxaa lagu daadiyaa kaydka xogta. Metadata waxay aadaysaa tusmada, xogta laga helay block log waxay aadaysaa Chunks (badanaa kaydinta shayga). Dib u dajinta ka dib, qaataha waxa uu abuuraa baloog cusub halkaas oo wax cusub lagu dari doono.
Index - database, DynamoDB, Cassandra, Google BigTable, iwm.
Su'aal - dariiqa wax-akhriska ee qabta dhammaan shaqada wasakhda ah. Waxay eegaysaa kala duwanaanshaha wakhtiga iyo shaambada wakhtiga, ka dibna waxay eegtaa tusmada si ay u hesho tartamo. Marka xigta, waxay akhridaa xogta blocks oo ay shaandhayso si ay natiijada u hesho.
Hadda aan aragno wax walba oo ficil ah.
Ku rakibida
Habka ugu fudud ee lagu rakibo Kubernetes waa in la isticmaalo koofiyadda. Waxaan u qaadaneynaa inaad mar hore rakibtay oo aad habaysay (iyo nooca saddexaad!qiyaastii turjumaan)
Hoos waxaa ku yaal dashboard tusaale ah oo muujinaya xogta Prometheus ee metrics Etcd iyo Loki ee IWM.
Hadda aan ka wada hadalno qaab-dhismeedka labada nidaam, oo aan sidoo kale barbar dhigno awooddooda midba midka kale.
Isbarbar dhigid
Luuqada waydiinta
Elasticsearch waxay isticmaashaa Query DSL iyo Lucene luqada waydiinta si ay u bixiso awoodo raadinta qoraal buuxa. Waa makiin raadin awood leh oo la aasaasay oo leh taageero hawlwadeen oo ballaadhan. Iyada, waxaad ku raadin kartaa macnaha guud oo waxaad ku kala sooci kartaa ku habboonaanta.
Dhinaca kale ee giraanta waa LogQL, oo ββlagu isticmaalo Loki, ku-beddelka PromQL (Luqadda weydiinta Prometheus). Waxay adeegsataa log tags si ay u shaandhayso oo ay u doorato xogta log. Waa suurtogal in la isticmaalo hawlwadeenada qaarkood iyo xisaabinta sida lagu sharaxay halkan, laakiin xagga awoodaha waxa ay ka dambaysaa luqadda Elastic-ka.
Mar haddii su'aalaha Loki ay la xiriiraan summada, way fududahay in la isku xidho cabbirrada, taas awgeed, way fududahay in la abaabulo la socodka hawlgalka.
Miisaanka
Labada xirmo ayaa si toos ah loo qiyaasi karaa, laakiin Loki ayaa fududeyneysa sababtoo ah waxay leedahay wadooyin akhris iyo qorri oo gooni ah iyo qaab dhismeedka adeegyada yar yar. Loki waa la habayn karaa si ay ugu habboonaato baahiyahaaga waxaana loo isticmaali karaa tiro aad u badan oo xogta log ah.