Dy vjet më parë kam bërë një postim për . Tani ka disa zhvillime të projektit, dhe kam publikuar me , prandaj vendosa të shkruaj në habr këtë përmbledhje të vogël.

[ ]
Kujt mund të i interesojë kjo
Kjo mund t'ju interesojĂ« nĂ«se punoni nĂ« njĂ« ekip tĂ« vogĂ«l ose madje vetĂ«m. Nuk keni monitorim dhe nuk jeni tĂ« sigurt se a Ă«shtĂ« i nevojshĂ«m. Apo keni provuar ndonjĂ« monitorim tĂ« njohur, por pĂ«r ju nuk ka funksionuar, ose punon nĂ« njĂ« konfigurim pothuajse default dhe nuk ka ndryshuar shumĂ« jetĂ«n tuaj. Gjithashtu â nĂ«se nuk planifikoni tĂ« angazhoni njĂ« tĂ« punĂ«suar (ose ndoshta njĂ« departament) pĂ«r tĂ« monitoruar tĂ« paktĂ«n disa orĂ« nĂ« ditĂ« nĂ« panelin e monitorimit ose pĂ«r ta konfiguruar atĂ«.
ĂfarĂ« e bĂ«n okerr tĂ« veçantĂ«
Më pas do të tregoj karakteristikat interesante të okerr, që e dallojnë atë nga disa monitorime të tjera.
Okerr është një monitorim hibrid
Me monitorimin e brendshĂ«m, nĂ« makinat e monitoruara ekzekutohet njĂ« «agent» qĂ« transmeton tĂ« dhĂ«na nĂ« serverin e monitorimit (pĂ«r shembull, hapĂ«sira e lirĂ« nĂ« disqe). Me monitorimin e jashtĂ«m, serveri kryen verifikime pĂ«rmes rrjetit (pĂ«r shembull, ping ose aksesueshmĂ«rinĂ« e njĂ« website). Ădo qasje ka kufizimet e saj. Okerr pĂ«rdor tĂ« dy variantet. Verifikimet nĂ« serverĂ« kryhen nga njĂ« agent shumĂ« tĂ« lehtĂ« (30Kb) ose nga skriptet dhe aplikacionet tuaja, dhe ato nĂ« rrjet kryhen pĂ«rmes sensorĂ«ve okerr nĂ« vende tĂ« ndryshme.
okerr nuk është thjesht një software, por gjithashtu edhe një shërbim
Pjesa serverike e çdo monitorimi është një gjë e madhe dhe e komplikuar, e cila është e vështirë për t'u vendosur dhe konfiguruar, dhe kërkon burime. Me okerr mund të vendosni serverin tuaj të monitorimit (është falas dhe open source), ose mund të përdorni vetëm pjesën klientike dhe të përfitoni nga shërbimi i serverit tonë. Po ashtu falas.
NĂ«se monitorimi mund tĂ« kompensojĂ«, pĂ«r tĂ« mbuluar mungesĂ«n e qĂ«ndrueshmĂ«risĂ« sĂ« serverĂ«ve dhe aplikacioneve, lind pyetja filozofike â kush e ruan ruajtĂ«sin? Si do tĂ« na informojĂ« monitorimi pĂ«r njĂ« problem, nĂ«se ai vetĂ« Ă«shtĂ« "shuar" pĂ«r ndonjĂ« arsye, veçmas ose sĂ« bashku me burime tĂ« tjera tuaja (p.sh. njĂ« kanal nĂ« datacenter Ă«shtĂ« rĂ«nĂ«)? Me pĂ«rdorimin e shĂ«rbimit tĂ« jashtĂ«m okerr â kjo çështje zgjidhet â do tĂ« merrni njĂ« alarĂ«m edhe nĂ«se e gjithĂ« datacentri me serverĂ«t tuaj do tĂ« ishte pa energji ose do tĂ« pĂ«rballej me njĂ« sulm zombie.
Natyrisht, ka njĂ« rrezik qĂ« serveri okerr tĂ« jetĂ« i paaksesueshĂ«m vetĂ«, kĂ«shtu Ă«shtĂ« (siç dihet, 90% e qĂ«ndrueshmĂ«risĂ« gjithmonĂ« arrihen thjesht dhe "pa pagesĂ«", 99% â me pĂ«rpjekje minimale, dhe çdo nĂ«ntĂ« tjetĂ«r Ă«shtĂ« eksponencialisht mĂ« e vĂ«shtirĂ«). Por, fillimisht, shanset pĂ«r kĂ«tĂ« janĂ« mĂ« tĂ« ulĂ«ta, dhe sĂ« dyti, problemi mund tĂ« mbetet i paobservuar vetĂ«m nĂ«se pĂ«rkon me probleme nĂ« serverĂ«t tanĂ«. NĂ«se kemi njĂ« qĂ«ndrueshmĂ«ri 99.9%, dhe ju po ashtu 99.9% (numra jo shumĂ« tĂ« lartĂ«), ateherĂ« shansi pĂ«r njĂ« dĂ«shtim tĂ« paobservuar â 0.1% nga 0.1% = 0.0001%. TĂ« shtosh tre nĂ«ntĂ« nĂ« qĂ«ndrueshmĂ«ri thuajse pa pĂ«rpjekje dhe pa kosto â Ă«shtĂ« shumĂ« mirĂ«!
NjĂ« avantazh tjetĂ«r i monitorimit si shĂ«rbim â ofruesi i hostimit ose studioja e internetit mund tĂ« instalojĂ« serverin okerr dhe t'u ofrojĂ« klientĂ«ve akses si njĂ« shĂ«rbim tĂ« paguar ose falas. Konkurrenca juaj ka thjesht hostim dhe faqe â ndĂ«rsa ju keni hostim tĂ« sigurt me monitorim.
Okerr â Ă«shtĂ« pĂ«r treguesit
Treguesi â Ă«shtĂ« "drita". Ai ka dy gjendje kryesore â e gjelbĂ«r (OK) ose e kuqe (ERR). NĂ« projekt â ka shumĂ« tregues tĂ« grumbulluar (p.sh. sipas serverĂ«ve). NĂ« faqen kryesore tĂ« projektit, menjĂ«herĂ« shihni, ose gjithçka Ă«shtĂ« e gjelbĂ«r (dhe mund tĂ« mbyllet), ose diçka Ă«shtĂ« duke ndriçuar e kuqe dhe duhet tĂ« rregullohet. Kur kaloni midis kĂ«tyre gjendjeve â dĂ«rgohet njĂ« njoftim. NjĂ« herĂ« nĂ« ditĂ«, kur ta konfiguroni â dĂ«rgohet njĂ« pĂ«rmbledhje pĂ«r projektin.

Ădo tregues okerr ka kushte tĂ« pĂ«rfshira, sipas tĂ« cilave ndryshon gjendjen (nĂ« Zabbix quhet trigger). PĂ«r shembull, ngarkesa mesatare duhet tĂ« jetĂ« mĂ« pak se 2 (natyrisht, kjo konfigurhet). Dhe pĂ«r çdo kontrolle tĂ« brendshme (ngarkesa mesatare, hapĂ«sira nĂ« disk, ...) â ka njĂ« watchdog. NĂ«se pĂ«r ndonjĂ« arsye nuk kemi marrĂ« konfirmim tĂ« suksesshĂ«m nĂ« kohĂ«n e caktuar â regjistrohet njĂ« gabim dhe dĂ«rgohet njĂ« alarĂ«m.
Skema jonë e zakonshme e punës është kontrolli i mëngjesit të email-it, aty mes email-eve të tjera shohim përmbledhjen (koha e saj është caktuar për fillimin e punës). Nëse gjithçka është në rregull atje, merremi me çështje të tjera të rëndësishme (por mund të shikojmë shpejt në dashboard-in e okerr-it për siguri, për t'u siguruar që edhe në atë moment gjithçka është në gjendje të mirë). Nëse vjen një alarmi, reagojmë.
Sigurisht, ka mundësi thjesht të mbash indikatorë "informatik" (për të parë imazhin e rrjetit nga monitorimi), por gjithçka është bërë që të jetë e thjeshtë, e lehtë dhe e shpejtë për të krijuar indikatorë për vëzhgim automatik dhe dërgim alarmesh.
Qëllimi për të cilin konfiguroni okerr-in është në alarme, në atë mënyrë që të mund të krijoni një indikator brenda një minute, ai mund të ketë "fjetur" për një vit, thjesht duke pranuar përditësime, dhe kur pas një viti diçka prishet, ai ndizet dhe dërgon një alarmin. Minuta që keni kaluar një herë duke krijuar një indikator është mëse e vlefshme, e dini për problemin menjëherë, para të gjithëve. Ndoshta edhe e keni rregulluar, para se dikush ta vërejë. Një e shpejtë e ngritur nuk konsiderohet si e rënë!
Siguria
Do tĂ« ishte e dĂ«mshme nĂ«se vendosni monitorimin pĂ«r tĂ« rritur besueshmĂ«rinĂ«, dhe nĂ« rezultat â ju sulmohen pĂ«rmes tij nĂ« rrjet, dhe ka shumĂ« vulnerabilitete tĂ« ndryshme nĂ« mjete tĂ« monitorimit (, ).
Agjenti (okerrmod nga paketa ), i cili punon nĂ« sistemin â nuk Ă«shtĂ« njĂ« server rrjeti, por njĂ« klient. Prandaj, nĂ« serverin e vĂ«zhguar nuk ka porte tĂ« hapura shtesĂ«, klienti punon lehtĂ«sisht pas njĂ« firewalle ose NAT-i dhe Ă«shtĂ« shumĂ« e vĂ«shtirĂ« (do tĂ« thosha "e pamundur") tĂ« hakohet pĂ«rmes rrjetit, pasi ai nuk dĂ«gjon thjesht socket-in e rrjetit.
Përmbushje e plotë e monitorimit
Tani kemi njĂ« rregull â ne mĂ«sojmĂ« pĂ«r tĂ« gjitha problemet teknike nga okerr. NĂ«se ndonjĂ«herĂ« rregulli shkelet (okerr nuk na paralajmĂ«ron pĂ«r ardhjen e saj tĂ« mundshme (nĂ«se Ă«shtĂ« e mundur) ose pĂ«r faktin qĂ« ajo ka ndodhur tashmĂ«) â ne shtojmĂ« kontrolle nĂ« okerr.
Kontrolle të jashtme
Një grup mjaft tipik:
- ping
- statusi http
- kontrolli i vlefshmërisë dhe freskisë së certifikatës SSL (do të paralajmërojë nëse koha është gati për t'u skaduar)
- port TCP i hapur dhe baneri mbi të
- http grep (në faqe [nuk] duhet të ndodhet një tekst i caktuar)
- hash sha1 për të kapur ndryshimin e faqes.
- DNS (ndryshimi DNS duhet të ketë një vlerë të caktuar)
- WHOIS (do të paralajmërojë nëse domeni do të skadojë së shpejti)
- Antispam DNSBL (kontrolli i host-it menjëherë për 50+ blacklist-e anti-spam)
Kontrolli të brendshme
Po ashtu, një grup mjaft tipik (por lehtësisht i zgjerueshëm).
- df (hapësira e lirë në diska)
- load average
- opentcp (tcp socket-e të hapura që dëgjojnë - do të lajmërojë nëse diçka ka nisur ose ka rënë)
- uptime - thjesht uptime i serverit. Do të lajmërojë nëse ai ka ndryshuar në rënie (dmth. serveri është rinstaluar)
- client_ip
- dirsize - ne e përdorim për të ndjekur kur rootfs e virtualëve tona kalojnë përmasat e lejuara, pa vendosur kufizime të forta, dhe për përmasat e katalogëve të përdoruesve
- empty dhe nonempty - ndjekin skedarët që duhet të jenë të zbrazët (ose jo të zbrazët). P.sh., error log i serverit okerr - duhet të jetë i zbrazët, dhe nëse ka ndonjë rresht - do të marr një lajmërim dhe do ta kontrolloj. Ndërsa mail.log në serverin e postës duhet Tà MOS jetë I zbrazët (pas N minutash nga rotacioni). Ndonjëherë kemi pasur të jetë i zbrazët, pas përditësimit të sistemit, kur logrotate nuk mundi ta rifillonte saktë rsyslog.
- linecount - numri i rreshtave në skedar (si wc -l). E përdorim si një zëvendësim më të butë për empty, kur error log gjithsesi mund të rritet, por vetëm ngadalë (p.sh., googlebot na shqetëson disa faqe të mbyllura). Ekziston një kufi prej 2 rreshta çdo 20 minuta. Nëse është më shumë - do të ketë alart
Kontrolli të brendshme interesante
Nëse deri në këtë vend keni lexuar «në diagonale», tani do të jetë më interesante të lexoni me kujdes.
backupet
Monitoron backupet në katalog. Ne kemi skedarë backup që kanë emra si «ServerName-20200530.tar.gz». Për çdo server në okerr krijohet një indikator ServerName-DATE.tar.gz (data reale ndryshohet me rreshtin «DATE»). Ndjeket si prania e një backupi të ri ashtu edhe përmasat e tij (p.sh., nuk mund të jetë më pak se 90% nga backupi i mëparshëm).
ĂfarĂ« duhet tĂ« bĂ«ni qĂ« njĂ« backup i ri tĂ« fillojĂ« tĂ« ndiqet, pasi e kemi nisur tĂ« krijojmĂ« dhe ta vendosim nĂ« kĂ«tĂ« katalog? AsgjĂ«! Ky Ă«shtĂ« njĂ« qasje shumĂ« komode, kur duhet tĂ« bĂ«sh «asgjë», sepse:
- Të bësh «asgjë» - është mjaft e shpejtë, kursen kohë
- E vështirë të harrosh të bësh «asgjë»
- E vështirë të bësh «asgjë» gabim. Asgjë - është metoda më e besueshme
Nëse papritmas ndalojnë të shfaqen skedarë të rinj backup-i - do të ketë alart. Nëse, për shembull, keni çaktivizuar një nga serverët, dhe backupet e tij nuk duhet të ekzistojnë më - do t'ju duhet të hiqni indikatorin (përmes ndërfaqes së uebit ose nga shell përmes API).
maxfilesz
Kalon ndjek madhësinë e skedarëve më të mëdhenj (zakonisht: /var/log/*). Kjo lejon të kapim probleme të paparashikueshme, si për shembull, kalimi i fjalëkalimeve ose shpërndarja e spamit përmes serverit.
runstatus/runline
Këto janë dy module të rëndësishme proxy, për të ekzekutuar programe të tjera në server. Runstatus raporton në indikatorin e kodit të daljes së programit. Për shembull, në okerr nuk ka (nuk kërkohet) modul për të kontrolluar nëse shërbimet systemd funksionojnë. Kjo bëhet përmes runstatus (shih më poshtë). Runline raporton në server rreshtin që jep programi. Për shembull, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" në konfiguracionin Runline në serverin tonë krijon një indikator servername:temp me temperaturën e procesorit.
sql
Ekzekuton njĂ« kĂ«rkesĂ« numerike ndaj MySQL dhe raporton rezultatin nĂ« indikator. NĂ« njĂ« rast tĂ« thjeshtĂ«, mund tĂ« bĂ«ni, pĂ«r shembull, "SELECT 1" â kjo do tĂ« verifikojĂ« qĂ« nĂ« pĂ«rgjithĂ«si DBMS funksionon.
Por njĂ« pĂ«rdorim shumĂ« mĂ« interesant Ă«shtĂ«, pĂ«r shembull, tĂ« monitorosh numrin e porosive nĂ« dyqan. NĂ«se e dini qĂ« nĂ« orĂ« keni mbi 100 porosi, mund tĂ« vendosni njĂ« kufi minimal prej 100 ose 80. AtĂ«herĂ«, nĂ«se papritur ju bien shitjet â do tĂ« merrni njĂ« alarĂ«m dhe mund tĂ« hetoni.
Vini re â nuk ka rĂ«ndĂ«si pĂ«r çfarĂ« arsyeje tĂ« paparashikueshme ndodhi kjo:
- Serveri është thjesht i paarritshëm (pa energji ose pa rrjet), dhe alarimi erdhi nga fakti se indikatorin "skaduar".
- Serveri është ngarkuar me diçka, punon ngadalë ose humbasin paketa, përdoruesit ndihen në siklet dhe ikin pa blerë.
- Serveri ka përfunduar në listat e spam-it dhe emaili prej tij nuk pranohet, përdoruesit nuk mund të regjistrohen.
- Ka përfunduar buxheti i fushatës publicitare, banerët nuk paraqiten.
Arsyet mund të jenë sa të duash, dhe nuk është e mundur të parashikohet gjithçka përpara, dhe teknikisht është e vështirë të gjurmosh. Por është e lehtë të mbash nën vëzhgim parametrin përfundimtar (përporositë) dhe në bazë të tij të përcaktohet se situata është e dyshimtë dhe meriton të shqyrtohet.
Indikatorët logjikë
Lejon pĂ«rdorimin e shprehjeve logjike (sintaksa Python) pĂ«rmes modulit (). TĂ« dhĂ«nat e projektit dhe indikatorĂ«ve tĂ« tij janĂ« tĂ« disponueshme pĂ«r shprehjen. PĂ«r shembull, nĂ« kapitullin mbi kontrollin SQL mĂ« sipĂ«r, ndoshta keni vĂ«nĂ« re njĂ« dobĂ«si â gjatĂ« ditĂ«s mund tĂ« kemi mbi 100 shitje nĂ« orĂ«, por natĂ«n â 20, dhe kjo Ă«shtĂ« normale, nuk Ă«shtĂ« problem. ĂfarĂ« tĂ« bĂ«jmĂ«? Indikatori, pas tĂ« gjitha, do tĂ« panikojĂ« vazhdimisht natĂ«n.
Mund të krijoni dy tregues, një për ditën dhe një për natën. Të dy t'i bëni "të qetë" (nuk do të dërgojnë njoftime). Dhe të krijoni një tregues logjik, i cili kërkon që deri në ora 20:00 treguesi i ditës të jetë OK, ndërsa pas 20:00 mjafton që treguesi i natës të jetë OK.
Një shembull tjetër i përdorimit të treguesit logjik është eskalimi. Për shembull, menaxheri i projektit shkyçet nga alarmet (nuk i nevojiten, administratorët duhet të reagojnë ndaj problemeve të zakonshme), por regjistrohet në treguesin logjik, i cili bëhet i kuq nëse çdo tregues në projekt nuk rregullohet brenda kohës së caktuar.
Po ashtu, ka mundĂ«sinĂ« pĂ«r tĂ« caktuar njĂ« kohĂ« tĂ« lejuar pĂ«r punĂ«, pĂ«r shembull, nga 3 deri nĂ« 5 tĂ« mĂ«ngjesit. Nuk na intereson nĂ«se serverat dhe faqet e internetit "bien" nĂ« atĂ« kohĂ«. Por nĂ« ora 5:00, ata duhet tĂ« funksionojnĂ«. NĂ«se nuk funksionojnĂ« nĂ« çdo kohĂ« tjetĂ«r â do tĂ« ketĂ« njĂ« alarm. Gjithashtu, treguesi logjik lejon tĂ« merret parasysh rezervimi i serverave. NĂ«se keni 5 servera web, atĂ«herĂ« administratorĂ«t mund tĂ« çaktivizojnĂ« 1-2 servera nĂ« çdo kohĂ«. Por nĂ«se nĂ« funksion janĂ« mĂ« pak se 3 nga 5 serverat â do tĂ« ketĂ« njĂ« alarm.
Shembujt e mĂ«sipĂ«rm nuk janĂ« funksione tĂ« okerr, nuk janĂ« ndonjĂ« karakteristikĂ« qĂ« duhet aktivizuar dhe konfiguruar. TĂ« gjitha kĂ«to funksione nuk janĂ« nĂ« okerr, por ka njĂ« modul logjik qĂ« lejon tĂ« realizoni kĂ«tĂ« funksionalitet (PĂ«rafĂ«rsisht, si nĂ« njĂ« gjuhĂ« programimi â nĂ«se kemi operatorĂ« aritmetikĂ«, atĂ«herĂ« nuk na nevojitet njĂ« funksion i veçantĂ« i gjuhĂ«s pĂ«r llogaritjen e 20% TVSH-sĂ«, e kemi mundĂ«sinĂ« ta bĂ«jmĂ« vetĂ« sipas nevojave tona).
Treguesi logjik, ndoshta, është një nga temat relativisht të komplikuara në okerr, por lajm i mirë është se nuk keni nevojë t'i mësoni derisa të lindë ndonjë nevojë. Por në të njëjtën kohë ata zgjedhin shumë mundësi, duke e mbajtur sistemin mjaft të thjeshtë.
Shtimi i kontrolleve tuaja
Do doja shumĂ« tĂ« pĂ«rcillja mendimin se okerr â nuk Ă«shtĂ« njĂ« grup me mijĂ«ra kontrolle tĂ« gatshme pĂ«r çdo rast, pĂ«rkundrazi â para sĂ« gjithash â Ă«shtĂ« njĂ« motor i thjeshtĂ« me mundĂ«sinĂ« e thjeshtĂ« pĂ«r tĂ« krijuar kontrollin tuaj. Krijimi i kontrolleve tuaja nĂ« okerr â nuk Ă«shtĂ« njĂ« detyrĂ« pĂ«r hakerĂ«t, bashkekrijuesit e sistemit, ose tĂ« paktĂ«n pĂ«rdoruesit e avancuar tĂ« okerr, por njĂ« detyrĂ« e arritshme pĂ«r çdo administrator qĂ« para njĂ« muaji vendosi pĂ«r herĂ« tĂ« parĂ« linux.
Kontrollimet e minimumeve bëhen përmes modulit :
Kjo linjë në konfigurim do t'ju njoftojë, nëse ndonjëherë /bin/true nuk fillon ose kthen jo 0.
true_OK=\/bin\/trueNjĂ« rresht i vetĂ«m â dhe ja, ne tashmĂ« kemi zgjeruar pak funksionalitetin okerr. Madje njĂ« kontroll i tillĂ« â tashmĂ« ka vlerĂ«n e tij: nĂ«se ndodhi qĂ« serveri juaj tĂ« bjerĂ« â treguesi pĂ«rkatĂ«s nĂ« serverin okerr nuk do tĂ« pĂ«rditĂ«sohet nĂ« kohĂ«, dhe pas kalimit tĂ« njĂ« kohe do tĂ« lindĂ« njĂ« alarm.
Ky kontroll do t'ju njoftojĂ« se serveri apache2 ka rĂ«nĂ« (pĂ«r çdo rastâŠ):
apache_OK="systemctl is-active --quiet apache2"
Prandaj, nĂ«se zotĂ«roni ndonjĂ« gjuhĂ« programimi, sĂ« paku mund tĂ« shkruani skripte shell â atĂ«herĂ« ju tashmĂ« mund tĂ« shtoni kontrollin tuaj.MĂ« e komplikuar â mund tĂ« shkruani (nĂ« çdo gjuhĂ«) modul tuaj pĂ«r okerrmod. NĂ« rastin mĂ« tĂ« thjeshtĂ«, ai duket kĂ«shtu:
A nuk është shumë e thjeshtë? Moduli duhet të bëjë kontrollin vetë dhe të japë rezultatet në STDOUT. Një modul më i komplikuar ofron, për shembull, këtë:
#!/usr/bin/python3
print("STATUS: OK")$ okerrmod --dump df NAME: pi:df-\/ TAGS: df METHOD: numerical|maxlim=90 DETAILS: 49.52%, 13.9G\/28.2G përdorur, 13.0G të lira STATUS: 49.52NAME: pi:df-\/boot TAGS: df METHOD: numerical|maxlim=90 DETAILS: 84.32%, 53.1M\/62.9M përdorur, 9.9M të lira STATUS: 84.32
Ai përditëson menjëherë disa tregues (të ndarë me një hapësirë të zbrazët), krijon ato kur është e nevojshme, tregon detajet e kontrollit dhe etiketën, me të cilën në panelin e kontrollit është e lehtë të gjeni treguesit e nevojshëm.Ka një bot Telegram
Telegram
@OkerrBot Faqet e statusit
NĂ« kohĂ«n tonĂ«, faqet e statusit â janĂ« pothuajse njĂ« nevojĂ« pĂ«r çdo biznes qĂ« ka IT, njĂ« qĂ«ndrim tĂ« pĂ«rgjegjshĂ«m ndaj besueshmĂ«risĂ« dhe qĂ« respekton klientĂ«t\/pĂ«rdoruesit e saj.
Në kohën tonë, faqet e statusit janë tashmë pothuajse të domosdoshme për çdo biznes që ka IT, që i qaset me përgjegjshmëri besueshmërisë dhe që e respekton klientin/përdoruesin e vet.
Imagjinoni njĂ« situatĂ« â pĂ«rdoruesi dĂ«shiron tĂ« bĂ«jĂ« diçka, tĂ« shikojĂ« informacion ose tĂ« bĂ«jĂ« njĂ« porosi, dhe diçka nuk funksionon. Ai nuk e di se ku qĂ«ndron problemi, nĂ« anĂ«n e kujt Ă«shtĂ« dhe kur do tĂ« zgjidhet. Ndoshta faqja juaj Ă«shtĂ« thjesht jashtĂ« funksionimit? Apo ka qenĂ« e prishur pĂ«r gjysmĂ« viti dhe do tĂ« rregullohet pas dy vjetĂ«sh? E frigoriferi duhet blerĂ« tani, ai Ă«shtĂ« gjithashtu nĂ« shportĂ«... Dhe Ă«shtĂ« krejt e ndryshme kur njeriu sheh se ndodhi ndonjĂ« problem (tĂ« paktĂ«n e qartĂ« qĂ« problemi nuk Ă«shtĂ« nĂ« anĂ«n e tij), qĂ« problemi Ă«shtĂ« identifikuar, se ju jeni duke punuar mbi tĂ«, dhe ndoshta madje e keni shkruar njĂ« kohĂ« tĂ« pĂ«rafĂ«rt pĂ«r rregullimin. PĂ«rdoruesi mund tĂ« regjistrohet dhe tĂ« marrĂ« njĂ« njoftim nĂ« postĂ« kur problemi tĂ« rregullohet dhe do tĂ« mund tĂ« bĂ«jĂ« atĂ« qĂ« donte (tĂ« blejĂ« frigoriferin).

Problemet, pezullimet - ndodhin tek të gjithë. Por përdoruesit dhe partnerët i besojnë më shumë atyre që janë më të hapur dhe e trajtojnë këtë me përgjegjësi.
Ja . Këtu janë disa shembuj, si duken këto faqe në projekte dhe . .
Dështimi
Për të mos e bërë këtë artikull edhe më të gjatë, do të citoj sërish artikullin tim të mëparshëm - . Nëse mund të bëni një server dublues, duke përdorur dështimin, në parim nuk do të keni pezullim të gjatë - sapo të zbulohet problemi, përdoruesit do të ridrejtohen automatikisht në serverin rezervë që funksionon. Mendoj se kjo është një funksion shumë interesante dhe e dallueshme që ndodhet pak në treg.
Kërkesat e ulëta sistemore
Për serverët okerr - ne përdorim makina me RAM prej të paktën 2Gb. Për sensorët e rrjetit - madje edhe 512Mb është mjaft. Pjesa klienti - është pothuajse zero. (Paketa peshon 26 Kb, por kërkon Python3 dhe bibliotekat standarde). Klienti niset nga një skriptë cron, kështu që ka një konsum të përhershëm zero të memories. Ndër makinat e vëzhguara kemi sensorë (VPS shumë të lira me 512Mb RAM) dhe Raspberry Pi. Madje mund të dërgoni përditësime pa pjesën klient. ! (shih më poshtë)
Duke marrë parasysh këtë - okerr, ndoshta, është më e lirë Sistemi i monitoringut nga ato që ekzistojnë, sepse madje për të përdorur një sistem tjetër falas të kodit burimor si Zabbix ose Nagios, duhet t'i dedikoni burime (server), dhe kjo është tashmë një kostot. Për më tepër, ende kërkohet një mbështetje e caktuar për serverin. Me okerr, kjo pjesë mund të hiqet. Ose mund ta mbani dhe të përdorni serverin tuaj - varësisht nga si ju pëlqen më shumë.
API dhe integrimi në softuerin tuaj të brendshëm
Arkitektura e thjeshtë dhe e hapur. Okerr ka një arkitekturë mjaft të thjeshtë , me të cilën është e lehtë të punosh. Dëshironi të krijoni 1000 tregues? Një skript shell me 3-4 rreshta do ta bëjë këtë. Dëshironi të rikonfiguroni 1000 tregues? Edhe kjo është shumë e lehtë. Për shembull, ne duam të rikonfirmojmë të gjithë certifikatat tona HTTPS pikërisht me sensorin rus:
#!/bin/sh
for indicator in `okerrclient --api-filter sslcert`
do
echo set location for $indicator
okerrclient --api-set location=ru retest=1 --name $indicator
doneTreguesin mund ta rinovoni ndonjëherë duke përdorur modulin tonë klient, madje edhe pa të, thjesht përmes curl.
# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK
# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/Mund të përditësoni treguesit direkt nga programi juaj. Për shembull, duke dërguar sinjalet heartbeat, për të bërë që okerr të dijë se ai është aktiv dhe të ngritë alarmin nëse ka rënë ose ka ngecur. Për fat të mirë, komponentët e okerr e bëjnë saktësisht këtë - okerr e monitoron veten dhe problemi në pothuajse çdo modul do të zbulohet dhe do të gjenerojë një njoftim për problemin. (Dhe për rastin e këtij "pothuajse" - ato kontrollohen ndërmjet një serveri tjetër)
Ja një kod i tillë (i thjeshtuar) në botin tonë të Telegramit:
from okerrupdate import OkerrProject, OkerrExc
op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
os.getpid(), dhms(uptime), commands_cnt))Për përditësimin e treguesve nga programet Python - ka një bibliotekë , për çdo gjuhë tjetër - nuk ka bibliotekë, por mund të thirrni skenarin okerrupdate, ose të kryeni një kërkesë HTTP në serverin okerr.
Si na ndihmon okerr
Okerr ka ndryshuar jetën tonë. Në të vërtetë. Ndoshta një sistem tjetër monitorimi mund të bënte gjithashtu, por me okerr është e lehtë dhe e thjeshtë të punojmë dhe ka të gjitha funksionet që na duhen (ato që nuk ishin - ne i shkruam vetë). Jepni një herë, nëse ndonjë funksionaliteti nuk është në dispozicion - pyesni, dhe unë do t'i shtoj ato (nuk e premtoj, por dua që okerr të jetë sistemi më i mirë i monitorimit për projektet e vogla e të mesme). Apo, edhe më mirë, shtoni vetë - është shumë e thjeshtë.
Kemi arritur tĂ« jetojmĂ« sipas parimit "tĂ« mĂ«sojmĂ« pĂ«r tĂ« gjitha problemet nga okerr". NĂ«se ndodhi ndonjĂ« problem pĂ«r tĂ« cilin nuk mĂ«suam nga okerr â ne shtojmĂ« njĂ« kontroll nĂ« okerr. (nĂ« kĂ«tĂ« rast nĂ«n "ne" e kuptoj veten si pĂ«rdorues tĂ« sistemit, e jo si bashkodeshkrues). NĂ« fillim kjo ndodhte shpesh, por tani ka filluar tĂ« jetĂ« shumĂ« e rrallĂ«.
Monitorimi
PĂ«rmes okerr ne ndjekim pĂ«rmasat e logĂ«ve nĂ« tĂ« gjitha serverĂ«t. TĂ« lexosh me kujdes çdo rresht tĂ« logut me sy â natyrisht, Ă«shtĂ« e pamundur, por thjesht ndjekja e shpejtĂ«sisĂ« sĂ« rritjes â tashmĂ« ofron shumĂ«. NĂ«pĂ«rmjet kĂ«saj ne kemi zbuluar dhe dĂ«rgimin e spam-it dhe pĂ«rpjekjet pĂ«r sulm me forcĂ« bruto ndaj fjalĂ«kalimeve, si dhe kur disa nga aplikacionet "çmenden", nuk funksionojnĂ« siç duhet dhe pĂ«rsĂ«risin vazhdimisht (çdo herĂ« duke shtuar disa rreshta nĂ« log).
Certifikatat SSL. Padyshim menjĂ«herĂ« pas nisjes klienti ynĂ« filloi tĂ« ofrojĂ« klientĂ«ve tĂ« tij certifikata SSL falas (rreth njĂ« mijĂ«). Dhe kjo u shpall njĂ« ferr pĂ«r administrim! Problemi Ă«shtĂ« se faqet janĂ« "tĂ« gjalla", klientĂ«t herĂ« pas here kĂ«rkojnĂ« diçka qĂ« t'u bĂ«het, programuesit e bĂ«jnĂ«. Ata mund tĂ« transferojnĂ« krejtĂ«sisht faqen nĂ« njĂ« DocumentRoot tjetĂ«r, pĂ«r shembull. Ose tĂ« shtojnĂ« njĂ« Rewrite tĂ« pandĂ«rprerĂ« nĂ« konfigurimin e virtualhost-it. Natyrisht, pas njĂ« ndryshimi tĂ« tillĂ«, rifreskimi automatik i certifikatave dĂ«shton. Tani tĂ« gjitha hostet SSL shtohen automatikisht nĂ« okerr pĂ«rmes njĂ« tjetĂ«r utilitare tĂ« dobishme nga paketa jonĂ« . Thjesht e lançojmĂ« a2okerr.py â dhe nĂ«se nĂ« server Ă«shtĂ« krijuar disa faqe tĂ« reja â ato do tĂ« shfaqen automatikisht nĂ« okerr. NĂ«se pĂ«r ndonjĂ« arsye certifikati nuk rifreskohet, tre javĂ« para skadimit tĂ« certifikatave â ne jemi tĂ« informuar, dhe merremi me çështjen, pse nuk po rifreskohet. a2certbot.py nga e njĂ«jta paketĂ« â ndihmon shumĂ« nĂ« kĂ«tĂ« (menjĂ«herĂ« kontrollon problemet mĂ« tĂ« mundshme â dhe raporton se çfarĂ« Ă«shtĂ« verifikuar mirĂ«, dhe ku ka mĂ« shumĂ« gjasa tĂ« jetĂ« njĂ« problem).
Ne ndjekim datat e skadimit tĂ« tĂ« gjithĂ« domainĂ«ve tanĂ«. Dhe tĂ« gjithĂ« serverĂ«t tanĂ« tĂ« postĂ«s, qĂ« dĂ«rgojnĂ« email â gjithashtu kontrollohen nĂ« mbi 50 lista tĂ« ndryshme tĂ« bllokimit. (Dhe ndonjĂ«herĂ« pĂ«rfshihen nĂ« to). PĂ«r mĂ« tepĂ«r, e dini se serverĂ«t e postĂ«s sĂ« Google gjithashtu ndodhen nĂ« lista tĂ« bllokimit? Thjesht pĂ«r testim tĂ« vetĂ«, ne shtuam mail-wr1-f54.google.com nĂ« serverĂ«t e ndjekur, dhe ai Ă«shtĂ« nĂ« listĂ«n e bllokimit SORBS! (Kjo Ă«shtĂ« nĂ« lidhje me vlerĂ«n e "antispamerĂ«ve")
Backups â I already mentioned how easy it is to monitor them with okerr. But we also keep track of fresh backups on our server, and (with the help of a separate utility that uses okerr) â for the backups that we upload to Amazon Glacier. And yes â problems do occur from time to time. Itâs no wonder we keep an eye on them.
We use an escalation indicator. It shows if any problem has gone unresolved for a long time. And sometimes, when I'm solving tasks, I might forget about them. Escalation is a good reminder, even if Iâm keeping track myself.
Overall, I believe that the quality of our work has significantly improved. Downtime is almost non-existent (or the client doesnât notice it in time. Just shhh!), while the workload has decreased and working conditions have become calmer. We have moved from frantic efforts to patching holes with tape to a calm and measured workflow, where many problems are anticipated in advance and there is time to prevent them. Even issues that have already occurred are easier to fix now: firstly, we learn about them before clients start panicking; secondly, it often happens that the issue is related to recent work (while fixing one thing, I broke another) â therefore, itâs easier to resolve it quickly.
And hereâs another case...
Did you know that in the popular Debian 9 (Stretch) distribution, such a popular package as phpmyadmin is still (after many months!) in a vulnerable status? (). When the vulnerability was discovered, we quickly concealed it in various ways. But I set up tracking for the security-tracker page in okerr to know when a 'clean' solution (through SHA1 content hash) would be released. Several times the indicator alerted me, the page changed, but as you can see â since January 2019, it still hasnât indicated that the problem has been resolved. By the way, does anyone know what the issue is that a package so important remains vulnerable for over a year?
NjĂ« herĂ« tjetĂ«r nĂ« njĂ« situatĂ« tĂ« ngjashme: pas njĂ« dobĂ«sie nĂ« SSH, duhej tĂ« pĂ«rditĂ«soheshin tĂ« gjithĂ« serverĂ«t. Dhe kur jep njĂ« detyrĂ« â duhet tĂ« kontrollosh pĂ«rmbushjen. (NĂ«nshtruarit kanĂ« tendencĂ«n tĂ« kuptojnĂ« ndryshe, tĂ« harrojnĂ«, tĂ« ngatĂ«rrohen, tĂ« bĂ«jnĂ« gabime). Prandaj, sĂ« pari ne nĂ« okerr shtuam kontrollin e versionit tĂ« SSH nĂ« tĂ« gjithĂ« serverĂ«t, dhe pĂ«rmes okerr e ndoqĂ«m pĂ«r t'u siguruar qĂ« pĂ«rditĂ«simet u aplikuan nĂ« tĂ« gjithĂ« serverĂ«t. (E pĂ«rshtatshme! Zgjodha kĂ«tĂ« lloj treguesi, dhe menjĂ«herĂ« dallohet se nĂ« cilin server Ă«shtĂ« cili version). Kur u siguruam se detyra u krye nĂ« tĂ« gjithĂ« serverĂ«t â i hoqĂ«m treguesit.
Disa herĂ« ka pasur situata kur njĂ« problem ndodhte dhe pastaj kalonte vetĂ«. (ndoshta, tĂ« gjithĂ«ve u duket e njohur?). Derisa ta vĂ«resh, derisa ta kontrollosh â aty nuk ka asgjĂ« pĂ«r tĂ« verifikuar â gjithçka funksionon siç duhet. Por pastaj kthehet pĂ«rsĂ«ri. Kjo na ndodhi, pĂ«r shembull, me produktet qĂ« ngarkonim nĂ« Amazon Marketplace (MWS). NĂ« njĂ« moment tĂ« caktuar, inventari i ngarkuar ishte i pasaktĂ« (nuk ishin sasinĂ« e duhur tĂ« produkteve dhe çmimet ishin tĂ« gabuara). E zgjidhĂ«m. Por qĂ« tĂ« zgjidhet â ishte e rĂ«ndĂ«sishme tĂ« dihej pĂ«r problemin menjĂ«herĂ«. Fatkeqsisht, MWS, si tĂ« gjitha shĂ«rbimet e Amazonit â Ă«shtĂ« pak ngadaltĂ«, kĂ«shtu qĂ« gjithmonĂ« kishte vonesa, por pĂ«r tĂ« paktĂ«n â arritĂ«m tĂ« kapim lidhjen mes problemit dhe skripteve qĂ« e shkaktojnĂ« atĂ« (bĂ«mĂ« njĂ« kontroll, e lidhĂ«m me okerr, dhe e verifikuam menjĂ«herĂ« pas marrjes sĂ« alarmeve).
NjĂ« rast interesant nĂ« koleksionin tim u shtua sĂ« fundmi nga njĂ« host i madh dhe tĂ« shtrenjtĂ« evropian, me tĂ« cilin punon klienti ynĂ«. Papritmas, tĂ« gjitha serverat tanĂ« humbĂ«n nga radarĂ«t! Fillimisht, klienti vĂ«rejti me "duar" (shpejt se sa Okerr!) qĂ« faqja me tĂ« cilĂ«n po punonte nuk hapte dhe bĂ«ri njĂ« tiket pĂ«r kĂ«tĂ«. Por, nuk ishte vetĂ«m njĂ« faqe, pĂ«r tĂ« qenĂ« e qartĂ«, tĂ« gjitha! (Natasha, tĂ« gjithĂ« i kemi rrĂ«zuar!). Dhe kĂ«tu edhe Okerr filloi tĂ« dĂ«rgonte mesazhe tĂ« gjata me tĂ« gjitha treguesit qĂ« ishin ndezur. Panik, panik, vrapojmĂ« nĂ«pĂ«r rreth (çfarĂ« tjetĂ«r tĂ« bĂ«jmĂ«?). Pastaj, gjithçka u rikuperua. Doli se nĂ« qendrĂ«n e tĂ« dhĂ«nave po bĂ«heshin punĂ« tĂ« rregullta (njĂ« herĂ« nĂ« shumĂ« vite) dhe natyrisht do duhej tĂ« na kishin informuar. Por ndodhi ndonjĂ« derdhin jo e qartĂ« dhe nuk njoftuan. Pak mĂ« tepĂ«r infarkt, pak mĂ« pak infarkt. Por pas rikuperimit tĂ« gjithçkaje â duhet gjithçka tĂ« kontrollohet! Nuk e pĂ«rfytyroj dot si do ta bĂ«ja kĂ«tĂ« me duar. Okerr e testoi gjithçka pĂ«r disa minuta. Doli se pjesa mĂ« e madhe e serverĂ«ve ishte thjesht e pĂ«rkohshme jo e disponueshme, por punonte. Disa u ngarkuan, por gjithashtu u rikuperuan siç duhej. Nga tĂ« gjitha humbjet â ne humbĂ«m dy backup-e, qĂ« sipas programit duhej tĂ« ishin krijuar dhe ngarkohet nĂ« atĂ« kohĂ«, ndĂ«rsa po ndodhte kjo situatĂ«. Nuk e bĂ«ra as, thjesht pas njĂ« dite mbĂ«rritĂ«n alarme se gjithçka ishte OK, backup-et u shfaqĂ«n. MĂ« pĂ«lqen shumĂ« ky shembull, sepse Okerr doli tĂ« ishte shumĂ« i dobishĂ«m nĂ« njĂ« situatĂ«, pĂ«r tĂ« cilĂ«n as nuk menduam paraprakisht, por kjo Ă«shtĂ« edhe detyra e monitorimit â pĂ«rballimi i tĂ« papriturave.
PĂ«r sensorĂ«t Okerr ne pĂ«rdorim hostinga maksimalisht tĂ« lira (atje cilĂ«sia dhe besueshmĂ«ria nuk janĂ« tĂ« rĂ«ndĂ«sishme, ato sigurojnĂ« njĂ«ra-tjetrĂ«n). Pra, sĂ« fundmi gjetĂ«m njĂ« host shumĂ« energjik dhe super tĂ« lirĂ«, benchmark-at janĂ« fantastike. Por⊠ndonjĂ«herĂ« del se lidhjet dalĂ«se nga virtualka kryhen nga njĂ« IP tjetĂ«r (fqinji). Mrekulli. Moduli client_ip me nuk merr IP-nĂ« e duhur. Edhe nĂ« log-et e serverit tĂ« indikatorit duket se pĂ«rditĂ«simi ka ardhur gjithashtu nga kjo IP fqinje. Tani po merremi me suportin. E mira Ă«shtĂ« qĂ« e vĂ«rejta kĂ«tĂ« nĂ« njĂ« kohĂ« paqeje. Por, pĂ«r shembull, shpesh ndodh qĂ« akseset shkruhen nĂ« njĂ« listĂ« tĂ« bardhĂ« IP â dhe nĂ«se serveri ndonjĂ«herĂ« shkĂ«lqen pĂ«r njĂ« kohĂ« tĂ« shkurtĂ«r kĂ«shtu â mund tĂ« pĂ«rpiqesh shumĂ« gjatĂ« pĂ«r ta kapur kĂ«tĂ« problem.
Dhe sa pĂ«rmendĂ«m VPS hostet, ne gjithmonĂ« pĂ«rdorim tĂ« lira (hetzner, ovh, scaleway). Edhe nga benchmarkĂ«t dhe stabiliteti â jemi shumĂ« tĂ« kĂ«naqur. PĂ«rdorim edhe Amazon EC2, i cili Ă«shtĂ« shumĂ« mĂ« i shtrenjtĂ« pĂ«r projekte tĂ« tjera. Pra, falĂ« okerr kemi njĂ« opinion tĂ« arsyeshĂ«m. TĂ« dy bien ndonjĂ«herĂ«. Dhe nuk do tĂ« thoja se pĂ«r sa kohĂ« po vĂ«zhgojmĂ«, hostet e lira si hetzner kanĂ« rezultuar ndjeshĂ«m mĂ« pak stabile se EC2. Prandaj, nĂ«se nuk jeni tĂ« lidhur me karakteristika tĂ« tjera tĂ« Amazon â pse tĂ« paguani mĂ« shumĂ«? đ
ĂfarĂ« ndodh mĂ« tej?
NĂ«se nĂ« kĂ«tĂ« fazĂ« nuk ju kam frikĂ«suar ende shumĂ« nga Okerrâit â provojeni! PikĂ«risht pĂ«rmes kĂ«saj lidhjeje mund tĂ« hyni nĂ« (Klikoni tani!). Por mbani mend â qĂ« llogaria demo Ă«shtĂ« njĂ« pĂ«r tĂ« gjithĂ«, prandaj, nĂ«se bĂ«ni diçka â dikush tjetĂ«r nĂ« tĂ« njĂ«jtĂ«n llogari mund tâju shqetĂ«sojĂ«. Ose (mĂ« mirĂ«) regjistrohuni pĂ«rmes lidhjes nĂ« â gjithçka Ă«shtĂ« e thjeshtĂ«, pa SMS. NĂ«se nuk doni tĂ« pĂ«rdorni e-mailin tuaj tĂ« vĂ«rtetĂ« â mund tĂ« pĂ«rdorni njĂ« tĂ« pĂ«rkohshĂ«m, si mailinator (UnĂ« rekomandoj ). KĂ«to llogari mund tĂ« fshihen me kalimin e kohĂ«s â por pĂ«r testim janĂ« tĂ« dobishme.
Pas regjistrimit do tĂ« propozohet tĂ« kaloni njĂ« trajnim (tĂ« kryeni disa detyra tĂ« thjeshta edukative). KufijtĂ« fillestarĂ« janĂ« shumĂ« tĂ« vogla, por pĂ«r trajnimin ose njĂ« server janĂ« tĂ« mjaftueshme. Pas pĂ«rfundimit tĂ« trajnimit â kufijtĂ« (pĂ«r shembull, numri maksimal i indikatorĂ«ve) do tĂ« rriten.
Nga dokumentacioni â nĂ« radhĂ« tĂ« parĂ« pĂ«r pjesĂ«n server dhe pĂ«r klientin (). Por nĂ«se diçka nuk Ă«shtĂ« e qartĂ« â shkruani nĂ« support (at) okerr.com ose lajmĂ«roni pĂ«rmes njĂ« bilete â do tĂ« pĂ«rpiqemi tĂ« zgjidhim gjithçka shpejt.
NĂ«se do ta pĂ«rdorni seriozisht dhe kĂ«ta kufij tĂ« rritur nuk do tĂ« mjaftojnĂ« â gjithashtu, shkruani nĂ« suport, do tâi rrisim (falas).
Do tĂ« dĂ«shironit tĂ« vendosni serverin okerr nĂ« serverin tuaj? Ja . Ne rekomandojmĂ« tĂ« vendosni nĂ« njĂ« virtual tĂ« pastĂ«r, atĂ«herĂ« do ta bĂ«ni kĂ«tĂ« lehtĂ«sisht me skriptin e instalimit. NĂ« virtualin tuaj â asnjĂ« kufizim :-). Edhe njĂ« herĂ«, nĂ«se keni ndonjĂ« problem â do tĂ« pĂ«rpiqemi gjithmonĂ« tĂ« ndihmojmĂ«.
Ne duam qĂ« ky projekt tĂ« ngrihet, qĂ« bota tĂ« bĂ«het mĂ« e sigurt falĂ« nesh. FalĂ« software-it dhe shĂ«rbimeve falas, bota Ă«shtĂ« bĂ«rĂ« mĂ« miqĂ«sore dhe po zhvillohet mĂ« dinamike. Kodin burimor mund ta ruani nĂ« github falas, pĂ«r postĂ« mund tĂ« pĂ«rdorni gmail falas. Ne pĂ«rdorim falas pĂ«r mbĂ«shtetje. AsgjĂ« nga kĂ«to nuk kĂ«rkon qĂ« tĂ« paguani serverĂ«t, nuk Ă«shtĂ« e nevojshme tĂ« shkarkoni dhe konfiguroni dhe tĂ« zgjidhni probleme tĂ« ndryshme pĂ«r shfrytĂ«zim. Ădo projekt i ri, çdo ekip â menjĂ«herĂ« ka si postĂ«n ashtu edhe repository-t dhe CRM-in. Dhe tĂ« gjithĂ« kĂ«to janĂ« shumĂ« cilĂ«sore dhe falas dhe menjĂ«herĂ«. Ne duam qĂ« pĂ«r monitorimin tĂ« jetĂ« po ashtu â kompanitĂ« dhe projektet e vogla tĂ« mund tĂ« pĂ«rdorin falas okerr dhe madje nĂ« fazĂ«n e lindjes dhe rritjes tĂ« kenĂ« sigurinĂ« si projektet e rritur serioze.
Burimi: habr.com
