SÄkotnÄji projekts saucÄs Road-To-Barcelona, āāvÄlÄk tas kļuva par Road-To-Berlin (tÄtad R2B ekrÄnuzÅÄmumos), un beigÄs to sauca par xRide.
Projekta galvenÄ ideja bija Å”Äda: tÄ vietÄ, lai nodroÅ”inÄtu centralizÄtu automaŔīnu vai motorolleru nomas pakalpojumu (mÄs runÄjam par skrejriteÅiem jeb elektriskajiem motocikliem, nevis skrejriteÅiem/motorolleriem), mÄs vÄlÄjÄmies izveidot platformu decentralizÄtai nomai. Par grÅ«tÄ«bÄm, ar kurÄm saskÄrÄmies jau rakstÄ«ju iepriekÅ”.
SÄkotnÄji projekts bija vÄrsts uz automaŔīnÄm, taÄu, Åemot vÄrÄ termiÅus, ÄrkÄrtÄ«gi ilgu saziÅu ar ražotÄjiem un milzÄ«gu skaitu droŔības ierobežojumu, pilotam tika izvÄlÄti elektriskie skrejriteÅi.
LietotÄjs tÄlrunÄ« instalÄja iOS vai Android aplikÄciju, piegÄja pie viÅam tÄ«kamÄ skrejriteÅa, pÄc kÄ telefons un skrejritenis izveidoja peer-to-peer savienojumu, notika ETH apmaiÅa un lietotÄjs varÄja uzsÄkt braucienu, ieslÄdzot skrejriteni, izmantojot telefons. Ceļojuma beigÄs bija iespÄja arÄ« apmaksÄt braucienu, izmantojot Ethereum no lietotÄja maka telefonÄ.
Papildus skrejriteÅiem lietotÄjs aplikÄcijÄ ieraudzÄ«ja āviedos lÄdÄtÄjusā, kurus apmeklÄjot, lietotÄjs pats varÄja nomainÄ«t esoÅ”o akumulatoru, ja tas bija zems.
KopumÄ Å”Ädi izskatÄ«jÄs mÅ«su pilots, kas tika palaists pagÄjuÅ”Ä gada septembrÄ« divÄs VÄcijas pilsÄtÄs: BonnÄ un BerlÄ«nÄ.
Un tad kÄdu dienu BonnÄ agri no rÄ«ta mÅ«su atbalsta komanda (kas atradÄs uz vietas, lai uzturÄtu motorollerus darba kÄrtÄ«bÄ) tika brÄ«dinÄta: viens no motorolleriem bija pazudis bez vÄsts.
KÄ to atrast un atgriezt?
Å ajÄ rakstÄ es runÄÅ”u par to, bet vispirms par to, kÄ mÄs izveidojÄm savu IoT platformu un kÄ mÄs to uzraudzÄ«jÄm.
Kas un kÄpÄc jÄuzrauga: skrejriteÅi, infrastruktÅ«ra, uzlÄdes stacijas?
TÄtad, ko mÄs vÄlÄjÄmies uzraudzÄ«t savÄ projektÄ?
PirmkÄrt, tie ir paÅ”i skrejriteÅi - paÅ”i elektriskie skrejriteÅi ir diezgan dÄrgi, bez pietiekamas sagatavoÅ”anÄs Å”Ädu projektu uzsÄkt nevar, ja iespÄjams, gribas savÄkt pÄc iespÄjas vairÄk informÄcijas par skrejriteÅiem: par to atraÅ”anÄs vietu, uzlÄdes lÄ«meni. utt.
TurklÄt es vÄlÄtos uzraudzÄ«t mÅ«su paÅ”u IT infrastruktÅ«ras stÄvokli - datu bÄzes, servisi un viss, kas tiem nepiecieÅ”ams, lai tie darbotos. TÄpat bija jÄuzrauga āviedo lÄdÄtÄjuā statuss, ja tie sabojÄjas vai beigsies pilni akumulatori.
Motorolleri
KÄdi bija mÅ«su skrejriteÅi un ko mÄs vÄlÄjÄmies par tiem uzzinÄt?
PirmÄ un vissvarÄ«gÄkÄ lieta ir GPS koordinÄtas, jo, pateicoties tÄm, mÄs varam saprast, kur tÄs atrodas un kur tÄs pÄrvietojas.
TÄlÄk seko akumulatora uzlÄde, pateicoties kurai varam noteikt, ka skrejriteÅu uzlÄde tuvojas beigÄm un nosÅ«tÄ«t sulu spiedi vai vismaz brÄ«dinÄt lietotÄju.
Protams, ir arÄ« jÄpÄrbauda, āākas notiek ar mÅ«su aparatÅ«ras komponentiem:
vai bluetooth darbojas?
vai pats GPS modulis strÄdÄ?
Mums bija arÄ« problÄma ar to, ka GPS varÄja nosÅ«tÄ«t nepareizas koordinÄtas un iestrÄgt, un to varÄja noteikt tikai ar skrejriteÅa papildu pÄrbaudÄm,
un pÄc iespÄjas ÄtrÄk paziÅojiet atbalsta dienestam, lai atrisinÄtu problÄmu
Un visbeidzot: programmatÅ«ras pÄrbaudes, sÄkot ar OS un procesoru, tÄ«kla un diska slodzi, beidzot ar mÅ«su paÅ”u moduļu pÄrbaudÄm, kas mums ir raksturÄ«gÄkas (Jolocom, atslÄgas apmetnis).
detaļas
KÄda bija mÅ«su ādzelzsā daļa?
Å emot vÄrÄ iespÄjami Ä«sÄko laika posmu un nepiecieÅ”amÄ«bu pÄc Ätras prototipÄÅ”anas, mÄs izvÄlÄjÄmies vieglÄko variantu ievieÅ”anai un komponentu atlasei - Raspberry Pi.
Papildus paÅ”am Rpi mums bija pielÄgots dÄlis (kuru mÄs paÅ”i izstrÄdÄjÄm un pasÅ«tÄ«jÄm no Ķīnas, lai paÄtrinÄtu gala risinÄjuma montÄžas procesu) un sastÄvdaļu komplekts - relejs (lai ieslÄgtu/izslÄgtu skrejriteni), akumulatora uzlÄdes lasÄ«tÄjs, modems, antenas. Tas viss tika kompakti iepakots Ä«paÅ”Ä āxRide kastÄā.
JÄpiebilst arÄ«, ka visa kaste tika darbinÄta ar papildu jaudas banku, kas savukÄrt tika darbinÄta no motorollera galvenÄ akumulatora.
Tas ļÄva izmantot uzraudzÄ«bu un ieslÄgt motorolleru pat pÄc brauciena beigÄm, jo āāgalvenais akumulators tika izslÄgts uzreiz pÄc aizdedzes atslÄgas pagrieÅ”anas pozÄ«cijÄ āoffā.
Dokeris? VienkÄrÅ”s Linux? un izvietoÅ”anu
AtgriezÄ«simies pie monitoringa, tÄtad Avene - kas mums ir?
Viena no pirmajÄm lietÄm, ko vÄlÄjÄmies izmantot, lai paÄtrinÄtu komponentu izvietoÅ”anas, atjauninÄÅ”anas un piegÄdes procesu fiziskajÄs ierÄ«cÄs, bija Docker.
DiemžÄl Ätri kļuva skaidrs, ka Docker uz RPi, lai gan tas darbojas, ir daudz pieskaitÄmu, jo Ä«paÅ”i enerÄ£ijas patÄriÅa ziÅÄ.
AtŔķirÄ«ba, izmantojot āvietÄjoā OS, lai arÄ« ne tik spÄcÄ«ga, tomÄr bija pietiekama, lai mÄs bÅ«tu piesardzÄ«gi par iespÄju pÄrÄk Ätri zaudÄt uzlÄdi.
Otrs iemesls bija viena no mÅ«su partneru bibliotÄkÄm vietnÄ Node.js (sic!) - vienÄ«gÄ sistÄmas sastÄvdaļa, kas nebija rakstÄ«ta Go/C/C++.
BibliotÄkas autoriem nebija laika nodroÅ”inÄt darba versiju nevienÄ no ādzimtajÄmā valodÄm.
Pats mezgls ne tikai nav elegantÄkais risinÄjums zemas veiktspÄjas ierÄ«cÄm, bet arÄ« pati bibliotÄka bija ļoti resursietilpÄ«ga.
MÄs sapratÄm, ka, pat ja mÄs vÄlÄtos, Docker izmantoÅ”ana mums bÅ«tu pÄrÄk liela pieskaitÄma. IzvÄle tika izdarÄ«ta par labu vietÄjai OS un darbam tieÅ”i zem tÄs.
OS
RezultÄtÄ mÄs atkal izvÄlÄjÄmies vienkÄrÅ”Äko opciju kÄ OS un izmantojÄm Raspbian (Debian build for Pi).
MÄs rakstÄm visu savu programmatÅ«ru programmÄ Go, tÄpÄc mÄs arÄ« ierakstÄ«jÄm galveno aparatÅ«ras aÄ£enta moduli mÅ«su sistÄmÄ Go.
TieÅ”i viÅÅ” ir atbildÄ«gs par darbu ar GPS, Bluetooth, uzlÄdes nolasÄ«Å”anu, skrejriteÅa ieslÄgÅ”anu utt.
Izvietot
Uzreiz radÄs jautÄjums par nepiecieÅ”amÄ«bu ieviest mehÄnismu atjauninÄjumu piegÄdei ierÄ«cÄm (OTA) - gan mÅ«su aÄ£enta/programmas atjauninÄjumus, gan paÅ”as OS/programmaparatÅ«ras atjauninÄjumus (jo jaunÄs aÄ£enta versijÄs var bÅ«t nepiecieÅ”ami kodola atjauninÄjumi vai sistÄmas komponenti, bibliotÄkas utt.) .
PÄc diezgan ilgas tirgus analÄ«zes izrÄdÄ«jÄs, ka ir diezgan daudz risinÄjumu ierÄ«ces atjauninÄjumu piegÄdei.
No salÄ«dzinoÅ”i vienkÄrÅ”Äm, galvenokÄrt uz atjauninÄÅ”anu/dubultÄ sÄknÄÅ”anas orientÄtÄm utilÄ«tprogrammÄm, piemÄram, swupd/SWUpdate/OSTree, lÄ«dz pilnvÄrtÄ«gÄm platformÄm, piemÄram, Mender un Balena.
PirmkÄrt, nolÄmÄm, ka mÅ«s interesÄ visaptveroÅ”i risinÄjumi, tÄpÄc izvÄle uzreiz krita uz platformÄm.
Ä»oti BalÄna tika izslÄgts, jo tas faktiski izmanto to paÅ”u Docker savÄ balenaEngine.
Bet es atzÄ«mÄju, ka, neskatoties uz to, mÄs pastÄvÄ«gi izmantojÄm viÅu produktu Balena Etcher zibatmiÅas programmaparatÅ«rai SD kartÄs - vienkÄrÅ”a un ÄrkÄrtÄ«gi Ärta utilÄ«ta.
TÄpÄc galu galÄ izvÄle krita Menders. Mender ir pilnÄ«ga platforma programmaparatÅ«ras montÄžai, piegÄdei un instalÄÅ”anai.
KopumÄ platforma izskatÄs lieliski, taÄu mums vajadzÄja apmÄram pusotru nedÄļu, lai izveidotu pareizo mÅ«su programmaparatÅ«ras versiju, izmantojot labotÄju veidotÄju.
Un jo vairÄk mÄs iedziļinÄjÄmies tÄ izmantoÅ”anas sarežģītÄ«bÄ, jo vairÄk kļuva skaidrs, ka, lai to pilnÄ«bÄ izmantotu, mums bÅ«s nepiecieÅ”ams daudz vairÄk laika, nekÄ mums bija.
DiemžÄl mÅ«su stingrie termiÅi nozÄ«mÄja, ka bijÄm spiesti atteikties no Mender lietoÅ”anas un izvÄlÄties vÄl vienkÄrÅ”Äku.
IespÄjams
VienkÄrÅ”Äkais risinÄjums mÅ«su situÄcijÄ bija izmantot Ansible. Lai sÄktu, pietika ar pÄris spÄļu grÄmatÄm.
ViÅu bÅ«tÄ«ba bija tÄda, ka mÄs vienkÄrÅ”i izveidojÄm savienojumu no resursdatora (CI servera), izmantojot ssh, ar mÅ«su avenÄm un izplatÄ«jÄm tiem atjauninÄjumus.
PaÅ”Ä sÄkumÄ viss bija vienkÄrÅ”i ā bija jÄbÅ«t vienÄ tÄ«klÄ ar ierÄ«cÄm, lieÅ”ana notika caur Wi-Fi.
BirojÄ bija vienkÄrÅ”i ducis testa aveÅu, kas pieslÄgti vienam tÄ«klam, katrai ierÄ«cei bija statiska IP adrese, kas norÄdÄ«ta arÄ« Ansible Inventory.
Tas bija Ansible, kas nogÄdÄja mÅ«su uzraudzÄ«bas aÄ£entu gala ierÄ«cÄm
3G / LTE
DiemžÄl Å”is Ansible lietoÅ”anas gadÄ«jums varÄja darboties tikai izstrÄdes režīmÄ, pirms mums bija faktiski skrejriteÅi.
Jo motorolleri, kÄ jÅ«s saprotat, nesÄž savienoti ar vienu Wi-Fi marÅ”rutÄtÄju, nepÄrtraukti gaidot atjauninÄjumus tÄ«klÄ.
PatiesÄ«bÄ motorolleriem nevar bÅ«t nekÄda cita savienojuma, izÅemot mobilo 3G/LTE (un pat tad ne visu laiku).
Tas nekavÄjoties rada daudzas problÄmas un ierobežojumus, piemÄram, zemu savienojuma Ätrumu un nestabilu saziÅu.
Bet vissvarÄ«gÄkais ir tas, ka 3G/LTE tÄ«klÄ mÄs nevaram vienkÄrÅ”i paļauties uz tÄ«klam pieŔķirto statisko IP.
To daļÄji atrisina daži SIM karÅ”u nodroÅ”inÄtÄji; ir pat Ä«paÅ”as SIM kartes, kas paredzÄtas IoT ierÄ«cÄm ar statiskÄm IP adresÄm. Bet mums nebija piekļuves Å”ÄdÄm SIM kartÄm un nevarÄjÄm izmantot IP adreses.
Protams, bija idejas veikt kaut kÄdu IP adreÅ”u reÄ£istrÄciju jeb pakalpojumu atklÄÅ”anu kaut kur, piemÄram, Consul, bet mums nÄcÄs atteikties no Å”ÄdÄm idejÄm, jo āāmÅ«su testos IP adrese varÄja mainÄ«ties pÄrÄk bieži, kas izraisÄ«ja lielu nestabilitÄti.
Å Ä« iemesla dÄļ visÄrtÄk izmantot metrikas piegÄdi bÅ«tu nevis pull modeļa izmantoÅ”ana, kur mÄs dotos uz ierÄ«cÄm, lai meklÄtu nepiecieÅ”amos rÄdÄ«tÄjus, bet gan push, nogÄdÄjot metriku no ierÄ«ces tieÅ”i uz serveri.
Klienti (motorolleri) sistÄmas darbÄ«bas sÄkumÄ izveidoja savienojumu ar VPN serveri un varÄja ar tiem izveidot savienojumu. Å is tunelis tika izmantots atjauninÄjumu piegÄdei.
TeorÄtiski vienu un to paÅ”u tuneli varÄtu izmantot uzraudzÄ«bai, taÄu Å”Äds savienojums bija sarežģītÄks un mazÄk uzticams nekÄ vienkÄrÅ”a stumÅ”ana.
MÄkoÅu resursi
Visbeidzot, ir jÄuzrauga mÅ«su mÄkoÅpakalpojumi un datu bÄzes, jo mÄs tiem izmantojam Kubernetes, ideÄlÄ gadÄ«jumÄ, lai uzraudzÄ«bas izvietoÅ”ana klasterÄ« bÅ«tu pÄc iespÄjas vienkÄrÅ”Äka. IdeÄlÄ gadÄ«jumÄ, izmantojot StÅ«re, jo izvietoÅ”anai mÄs to izmantojam vairumÄ gadÄ«jumu. Un, protams, lai uzraudzÄ«tu mÄkoni, jÄizmanto tie paÅ”i risinÄjumi, kas paÅ”iem skrejriteÅiem.
Ätrs risinÄjums, jo uzraudzÄ«ba ir nepiecieÅ”ama jau izstrÄdes procesÄ
Apjoms/daudzums ā nepiecieÅ”ami daudzi rÄdÄ«tÄji
NepiecieÅ”ama baļķu savÄkÅ”ana
UzticamÄ«ba ā datiem ir izŔķiroÅ”a nozÄ«me, lai uzsÄktu panÄkumus
Jūs nevarat izmantot vilkŔanas modeli - jums ir nepiecieŔams push
Mums ir nepiecieÅ”ama vienota ne tikai aparatÅ«ras, bet arÄ« mÄkoÅa uzraudzÄ«ba
GalÄ«gais attÄls izskatÄ«jÄs apmÄram Å”Ädi
Stack atlase
TÄtad, mÄs saskÄrÄmies ar jautÄjumu par uzraudzÄ«bas steka izvÄli.
PirmkÄrt, mÄs meklÄjÄm vispilnÄ«gÄko all-in-one risinÄjumu, kas vienlaikus aptvertu visas mÅ«su prasÄ«bas, bet tajÄ paÅ”Ä laikÄ bÅ«tu pietiekami elastÄ«gs, lai pielÄgotu tÄ izmantoÅ”anu mÅ«su vajadzÄ«bÄm. TomÄr mums bija daudz ierobežojumu, ko mums uzlika aparatÅ«ra, arhitektÅ«ra un termiÅi.
Ir ļoti daudz dažÄdu uzraudzÄ«bas risinÄjumu, sÄkot ar pilnvÄrtÄ«gÄm sistÄmÄm, piemÄram Nagios, icinga vai zabbix un beidzot ar gataviem Flotes pÄrvaldÄ«bas risinÄjumiem.
SÄkotnÄji pÄdÄjais mums Ŕķita ideÄls risinÄjums, taÄu dažiem nebija pilnÄ«gas uzraudzÄ«bas, citiem bija ļoti ierobežotas bezmaksas versiju iespÄjas, un citi vienkÄrÅ”i neaptvÄra mÅ«su "vÄlmes" vai nebija pietiekami elastÄ«gi, lai atbilstu mÅ«su scenÄrijiem. Daži vienkÄrÅ”i ir novecojuÅ”i.
IzanalizÄjot vairÄkus lÄ«dzÄ«gus risinÄjumus, mÄs Ätri nonÄcÄm pie secinÄjuma, ka vieglÄk un ÄtrÄk bÅ«tu paÅ”iem salikt lÄ«dzÄ«gu skursteni. JÄ, tas bÅ«s nedaudz sarežģītÄk nekÄ ieviest pilnÄ«bÄ gatavu Flotes pÄrvaldÄ«bas platformu, taÄu mums nebÅ«s jÄiet uz kompromisiem.
GandrÄ«z noteikti visÄ milzÄ«gajÄ risinÄjumu pÄrpilnÄ«bÄ jau ir kÄds gatavs, kas mums pilnÄ«bÄ atbilstu, taÄu mÅ«su gadÄ«jumÄ daudz ÄtrÄk bija paÅ”iem salikt noteiktu kaudzi un pielÄgot to āpaÅ”amā, nevis gatavu produktu testÄÅ”ana.
Ar visu Å”o mÄs necentÄmies paÅ”i salikt visu uzraudzÄ«bas platformu, bet meklÄjÄm funkcionÄlÄkos āgatavusā stekus, tikai ar iespÄju tos elastÄ«gi konfigurÄt.
(B)ELK?
Pirmais risinÄjums, kas faktiski tika apsvÄrts, bija plaÅ”i pazÄ«stamÄ ELK kaudze. PatiesÄ«bÄ to vajadzÄtu saukt par BELK, jo viss sÄkas ar Beats SÄkot no https://www.elastic.co/what-is/elk-stack
Protams, ELK ir viens no slavenÄkajiem un jaudÄ«gÄkajiem risinÄjumiem monitoringa jomÄ un vÄl jo vairÄk žurnÄlu vÄkÅ”anÄ un apstrÄdÄ.
BijÄm iecerÄjuÅ”i, ka ELK tiks izmantots baļķu savÄkÅ”anai, kÄ arÄ« no Prometheus iegÅ«to metriku ilgstoÅ”ai glabÄÅ”anai.
VizualizÄcijai varat izmantot Grafan.
Faktiski jaunÄ ELK kaudze var apkopot metriku neatkarÄ«gi (metricbeat), un Kibana var arÄ« tos parÄdÄ«t.
TomÄr ELK sÄkotnÄji izauga no apaļkokiem, un lÄ«dz Å”im metrikas funkcionalitÄtei ir vairÄki nopietni trÅ«kumi:
IevÄrojami lÄnÄks nekÄ Prometejs
IntegrÄjas daudz mazÄkÄs vietÄs nekÄ Prometejs
ViÅiem ir grÅ«ti iestatÄ«t brÄ«dinÄjumus
Metrika aizÅem daudz vietas
InformÄcijas paneļu iestatÄ«Å”ana ar metriku programmÄ Kiban ir daudz sarežģītÄka nekÄ Grafan
KopumÄ ELK metrika ir smaga un vÄl nav tik Ärta kÄ citos risinÄjumos, no kuriem tagad ir daudz vairÄk nekÄ tikai Prometheus: TSDB, Victoria Metrics, Cortex utt., utt. Protams, ļoti gribÄtos uzreiz pilnvÄrtÄ«gu all-in-one risinÄjumu, taÄu metricbeat gadÄ«jumÄ bija pÄrÄk daudz kompromisu.
Un paÅ”ai ELK kaudzei ir vairÄki sarežģīti brīži:
Tas ir smags, dažreiz pat ļoti smags, ja tiek savÄkts diezgan liels datu apjoms
Jums tas ir "jÄprot gatavot" - jums tas ir jÄmÄro, bet tas nav triviÄli izdarÄ«t
NoÅemta bezmaksas versija - bezmaksas versijai nav parastu brÄ«dinÄjumu, un atlases brÄ«dÄ« nebija autentifikÄcijas
Man jÄsaka, ka pÄdÄjÄ laikÄ pÄdÄjais punkts ir kļuvis labÄks un papildus izvade atvÄrtÄ koda X-pack (ieskaitot autentifikÄciju) sÄka mainÄ«ties pats cenu noteikÅ”anas modelis.
Bet laikÄ, kad mÄs plÄnojÄm izvietot Å”o risinÄjumu, brÄ«dinÄjums vispÄr netika saÅemts.
IespÄjams, mÄs bÅ«tu varÄjuÅ”i mÄÄ£inÄt kaut ko izveidot, izmantojot ElastAlert vai citus kopienas risinÄjumus, taÄu mÄs tomÄr nolÄmÄm apsvÄrt citas alternatÄ«vas.
Loki - Grafana - Prometejs
Å obrÄ«d labs risinÄjums varÄtu bÅ«t uzraudzÄ«bas steka izveide, pamatojoties tikai uz Prometheus kÄ metrikas nodroÅ”inÄtÄju, Loki žurnÄliem, un vizualizÄcijai varat izmantot to paÅ”u Grafana.
DiemžÄl projekta pÄrdoÅ”anas pilota darbÄ«bas uzsÄkÅ”anas brÄ«dÄ« (19. gada septembris-oktobris) Loki vÄl bija beta versijÄ 0.3-0.4, un izstrÄdes uzsÄkÅ”anas brÄ«dÄ« to nevarÄja uzskatÄ«t par ražoÅ”anas risinÄjumu. pavisam.
Man vÄl nav pieredzes Loki izmantoÅ”anÄ nopietnos projektos, taÄu varu teikt, ka Promtail (baļķu savÄkÅ”anas aÄ£ents) lieliski darbojas gan plikmetÄla, gan kubernetes podiem.
CENU
IespÄjams, ka cienÄ«gÄkÄ (vienÄ«gÄ?) pilnvÄrtÄ«gÄ alternatÄ«va ELK stekam tagad var saukt tikai par TICK steku - Telegraf, InfluxDB, Chronograf, Kapacitor.
TÄlÄk es aprakstÄ«Å”u visus komponentus sÄ«kÄk, bet vispÄrÄ«gÄ ideja ir Å”Äda:
AttiecÄ«bÄ uz InfluxDB, Kapacitor un Chronograf ir oficiÄlas stÅ«res diagrammas, kuras mÄs izmantojÄm to izvietoÅ”anai.
JÄpiebilst, ka jaunÄkajÄ Influx 2.0 (beta) versijÄ Kapacitor un Chronograf kļuva par InfluxDB daļu un vairs nepastÄv atseviŔķi
TelegrÄfs
TelegrÄfs ir ļoti viegls lÄ«dzeklis rÄdÄ«tÄju apkopoÅ”anai stÄvokļa maŔīnÄ.
ViÅÅ” var uzraudzÄ«t milzÄ«gu daudzumu visa, sÄkot no nginx lÄ«dz
serveris Minecraft.
Tam ir vairÄkas lieliskas priekÅ”rocÄ«bas:
Ätrs un viegls (rakstÄ«ts Go)
Äd minimÄlu resursu daudzumu
Push metrika pÄc noklusÄjuma
Apkopo visus nepiecieÅ”amos rÄdÄ«tÄjus
SistÄmas rÄdÄ«tÄji bez iestatÄ«jumiem
AparatÅ«ras metrika, piemÄram, informÄcija no sensoriem
Ir ļoti vienkÄrÅ”i pievienot savus rÄdÄ«tÄjus
Daudz spraudÅu no kastes
SavÄc baļķus
TÄ kÄ push metrika mums bija nepiecieÅ”ama, visas pÄrÄjÄs priekÅ”rocÄ«bas bija vairÄk nekÄ patÄ«kami papildinÄjumi.
ArÄ« paÅ”a aÄ£enta veiktÄ Å¾urnÄlu savÄkÅ”ana ir ļoti Ärta, jo žurnÄlu reÄ£istrÄÅ”anai nav jÄpievieno papildu utilÄ«tas.
Influx piedÄvÄ visÄrtÄko pieredzi darbam ar apaļkokiem, ja to izmantojat syslog.
Telegraf parasti ir lielisks lÄ«dzeklis metriku apkopoÅ”anai, pat ja jÅ«s neizmantojat pÄrÄjo ICK steku.
Daudzi cilvÄki to izmanto ELK un dažÄdÄm citÄm laikrindu datu bÄzÄm ÄrtÄ«bas labad, jo tÄ var ierakstÄ«t metriku gandrÄ«z jebkurÄ vietÄ.
InfluxDB
InfluxDB ir galvenais TICK steka kodols, proti, metrikas laikrindu datubÄze.
Papildus metrikÄm Influx var glabÄt arÄ« žurnÄlus, lai gan bÅ«tÄ«bÄ Å¾urnÄli tam ir tikai tie paÅ”i rÄdÄ«tÄji, tikai parasto skaitlisko rÄdÄ«tÄju vietÄ galveno funkciju veic žurnÄla teksta rinda.
InfluxDB ir rakstÄ«ts arÄ« programmÄ Go, un Ŕķiet, ka tas darbojas daudz ÄtrÄk, salÄ«dzinot ar ELK mÅ«su (ne visspÄcÄ«gÄkajÄ) klasterÄ«.
Viena no lieliskajÄm Influx priekÅ”rocÄ«bÄm bÅ«tu arÄ« ļoti Ärta un bagÄtÄ«ga API datu vaicÄjumiem, ko mÄs ļoti aktÄ«vi izmantojÄm.
TrÅ«kumi - $$$ vai mÄrogoÅ”ana?
TICK kaudzei ir tikai viens trÅ«kums, ko mÄs atklÄjÄm - tas DÄrgi. Pat vairÄk.
Kas ir maksas versijai, kas nav bezmaksas versijai?
Cik mÄs varÄjÄm saprast, vienÄ«gÄ atŔķirÄ«ba starp TICK steka maksas versiju un bezmaksas versiju ir mÄrogoÅ”anas iespÄjas.
Proti, jÅ«s varat izveidot klasteru ar augstu pieejamÄ«bu tikai iekÅ”Ä UzÅÄmuma versijas.
Ja vÄlaties pilnvÄrtÄ«gu HA, jums vai nu jÄmaksÄ, vai jÄizmanto daži kruÄ·i. Ir daži kopienas risinÄjumi ā piemÄram influxdb-ha izskatÄs pÄc kompetenta risinÄjuma, bet rakstÄ«ts, ka neder ražoÅ”anai, kÄ arÄ« pieplÅ«duma snÄ«pis - vienkÄrÅ”s risinÄjums ar datu pÄrsÅ«knÄÅ”anu caur NATS (tas arÄ« bÅ«s jÄmÄro, bet to var atrisinÄt).
ŽÄl, bet Ŕķiet, ka abas ir pamestas - jaunu commit nav, pieÅemu, ka problÄma ir drÄ«zumÄ gaidÄmÄ jaunÄs Influx 2.0 versijas iznÄkÅ”ana, kurÄ daudz kas bÅ«s savÄdÄk (nav informÄcijas par mÄrogoÅ”ana tajÄ vÄl).
OficiÄli ir bezmaksas versija relejs - patiesÄ«bÄ Å”Ä« ir primitÄ«va HA, bet tikai ar lÄ«dzsvaroÅ”anu,
jo visi dati tiks rakstÄ«ti visos InfluxDB gadÄ«jumos aiz slodzes balansÄtÄja.
ViÅam ir daži trÅ«kumi piemÄram, iespÄjamÄs problÄmas ar punktu pÄrrakstÄ«Å”anu un nepiecieÅ”amÄ«bu iepriekÅ” izveidot metrikas bÄzi
(kas notiek automÄtiski parastajÄ darbÄ ar InfluxDB).
Papildus sadalÄ«Å”ana netiek atbalstÄ«ta, tas nozÄ«mÄ papildu pieskaitÄmÄs izmaksas par dublikÄtu metriku (gan apstrÄdi, gan glabÄÅ”anu), kas jums var nebÅ«t vajadzÄ«gas, taÄu nav iespÄjas tos atdalÄ«t.
Viktorijas metrika?
RezultÄtÄ, neskatoties uz to, ka bijÄm pilnÄ«bÄ apmierinÄti ar TICK steku visÄ, izÅemot maksas mÄrogoÅ”anu, mÄs nolÄmÄm pÄrbaudÄ«t, vai ir kÄdi bezmaksas risinÄjumi, kas varÄtu aizstÄt InfluxDB datu bÄzi, atstÄjot atlikuÅ”os T_CK komponentus.
Ir daudz laikrindu datu bÄzu, bet visdaudzsoloÅ”ÄkÄ ir Victoria Metrics, kurai ir vairÄkas priekÅ”rocÄ«bas:
Ätri un vienkÄrÅ”i, vismaz pÄc rezultÄtiem etaloniem
Ir klastera versija, par kuru tagad ir pat labas atsauksmes
ViÅa var saŔķelt
Atbalsta InfluxDB protokolu
MÄs nedomÄjÄm izveidot pilnÄ«bÄ pielÄgotu steku, pamatojoties uz Viktoriju, un galvenÄ cerÄ«ba bija, ka mÄs varÄtu to izmantot kÄ InfluxDB aizstÄjÄju.
DiemžÄl tas nav iespÄjams, neskatoties uz to, ka tiek atbalstÄ«ts InfluxDB protokols, tas darbojas tikai metrikas ierakstÄ«Å”anai - tikai Prometheus API ir pieejama āÄrpusā, kas nozÄ«mÄ, ka tajÄ nevarÄs iestatÄ«t Chronograf.
TurklÄt metrikai tiek atbalstÄ«tas tikai skaitliskÄs vÄrtÄ«bas (pielÄgotajiem rÄdÄ«tÄjiem mÄs izmantojÄm virkÅu vÄrtÄ«bas ā vairÄk par to sadaÄ¼Ä admin panelis).
AcÄ«mredzot tÄ paÅ”a iemesla dÄļ VM nevar saglabÄt žurnÄlus, kÄ to dara Influx.
TÄpat jÄatzÄ«mÄ, ka optimÄlÄ risinÄjuma meklÄÅ”anas brÄ«dÄ« Victoria Metrics vÄl nebija tik populÄrs, dokumentÄcija bija daudz mazÄka un funkcionalitÄte vÄjÄka
(Es neatceros detalizÄtu klastera versijas un sadalÄ«Å”anas aprakstu).
BÄzes izvÄle
RezultÄtÄ tika nolemts, ka pilotam mÄs tomÄr aprobežosimies ar vienu InfluxDB mezglu.
Å ai izvÄlei bija vairÄki galvenie iemesli:
Mums ļoti patika visa TICK kaudzes funkcionalitÄte
Mums jau izdevÄs to izvietot, un tas darbojÄs lieliski
TermiÅi tuvojÄs beigÄm, un nebija palicis daudz laika, lai pÄrbaudÄ«tu citas iespÄjas.
NebijÄm gaidÄ«juÅ”i tik lielu slodzi
Mums nebija daudz skrejriteÅu izmÄÄ£inÄjuma pirmajai fÄzei, un testÄÅ”ana izstrÄdes laikÄ neatklÄja nekÄdas veiktspÄjas problÄmas.
TÄpÄc mÄs nolÄmÄm, ka Å”im projektam mums pietiks ar vienu Influx mezglu bez mÄrogoÅ”anas (skat. secinÄjumus beigÄs).
MÄs esam izlÄmuÅ”i par kaudzÄ«ti un bÄzi ā tagad par atlikuÅ”ajÄm TICK steka sastÄvdaļÄm.
Kondensators
Kapacitor ir daļa no TICK steka ā pakalpojuma, kas var reÄllaikÄ pÄrraudzÄ«t datubÄzÄ ienÄkoÅ”os rÄdÄ«tÄjus un veikt dažÄdas darbÄ«bas, kuru pamatÄ ir noteikumi.
KopumÄ tas tiek pozicionÄts kÄ rÄ«ks iespÄjamu anomÄliju izsekoÅ”anai un maŔīnmÄcÄ«bai (es neesmu pÄrliecinÄts, ka Ŕīs funkcijas ir pieprasÄ«tas), taÄu visizplatÄ«tÄkais ir tÄ lietoÅ”anas veids - brÄ«dinÄÅ”ana.
TÄdÄ veidÄ mÄs to izmantojÄm paziÅojumiem. MÄs iestatÄ«jÄm Slack brÄ«dinÄjumus, kad konkrÄts skrejritenis pÄrgÄja bezsaistÄ, un tas pats tika darÄ«ts ar viedajiem lÄdÄtÄjiem un svarÄ«giem infrastruktÅ«ras komponentiem.
Tas ļÄva Ätri reaÄ£Ät uz problÄmÄm, kÄ arÄ« saÅemt paziÅojumus, ka viss ir atgriezies normÄlÄ stÄvoklÄ«.
VienkÄrÅ”s piemÄrs: ir sabojÄjies vai kÄda iemesla dÄļ ir izlÄdÄjies papildu akumulators mÅ«su ākastesā baroÅ”anai; vienkÄrÅ”i uzstÄdot jaunu, pÄc kÄda laika mums vajadzÄtu saÅemt paziÅojumu, ka skrejriteÅa funkcionalitÄte ir atjaunota.
Influx 2.0 Kapacitor kļuva par daļu no DB
HronogrÄfs
Esmu redzÄjis daudz dažÄdu UI risinÄjumu monitoringam, taÄu varu teikt, ka funkcionalitÄtes un UX ziÅÄ nekas nav salÄ«dzinÄms ar Chronograf.
MÄs sÄkÄm izmantot TICK steku, dÄ«vainÄ kÄrtÄ, ar Grafan kÄ tÄ«mekļa saskarni.
Es neaprakstÄ«Å”u tÄ funkcionalitÄti; visi zina tÄs plaÅ”Äs iespÄjas jebko iestatÄ«t.
TomÄr Grafana joprojÄm ir pilnÄ«gi universÄls instruments, savukÄrt Chronograf galvenokÄrt paredzÄts lietoÅ”anai ar Influx.
Un, protams, pateicoties tam, Chronograf var atļauties daudz gudrÄku vai ÄrtÄku funkcionalitÄti.
IespÄjams, galvenÄ ÄrtÄ«ba, strÄdÄjot ar Chronograf, ir tÄda, ka varat skatÄ«t sava InfluxDB iekÅ”pusi, izmantojot funkciju Explore.
Å Ä·iet, ka GrafÄnai ir gandrÄ«z identiska funkcionalitÄte, taÄu patiesÄ«bÄ Chronograf informÄcijas paneli var iestatÄ«t ar dažiem peles klikŔķiem (vienlaikus apskatot tur esoÅ”o vizualizÄciju), savukÄrt GrafÄnÄ agri vai vÄlu bÅ«s lai rediÄ£Ätu JSON konfigurÄciju (protams, Chronograf ļauj augÅ”upielÄdÄt jÅ«su manuÄli konfigurÄtÄs domas un vajadzÄ«bas gadÄ«jumÄ rediÄ£Ät tÄs kÄ JSON ā bet man nekad nebija tÄm nÄcies pieskarties pÄc to izveidoÅ”anas lietotÄja saskarnÄ).
Kibana ir daudz bagÄtÄkas informÄcijas paneļu un vadÄ«bas ierÄ«Äu izveides iespÄjas, taÄu Å”Ädu darbÄ«bu UX ir ļoti sarežģīta.
Lai izveidotu Ärtu informÄcijas paneli, bÅ«s nepiecieÅ”ama laba izpratne. Un, lai gan Chronograf informÄcijas paneļu funkcionalitÄte ir mazÄka, to izgatavoÅ”ana un pielÄgoÅ”ana ir daudz vienkÄrÅ”Äka.
PaÅ”i informÄcijas paneļi, izÅemot patÄ«kamo vizuÄlo stilu, faktiski neatŔķiras no Grafana vai Kibana informÄcijas paneļiem:
LÅ«k, kÄ izskatÄs vaicÄjuma logs:
Cita starpÄ ir svarÄ«gi atzÄ«mÄt, ka, zinot InfluxDB datubÄzes lauku veidus, pats hronogrÄfs dažkÄrt var automÄtiski palÄ«dzÄt jums rakstÄ«t vaicÄjumu vai izvÄlÄties pareizo apkopoÅ”anas funkciju, piemÄram, vidÄjo.
Un, protams, Chronograf ir pÄc iespÄjas ÄrtÄks žurnÄlu apskatei. Tas izskatÄs Å”Ädi:
PÄc noklusÄjuma Influx žurnÄli ir pielÄgoti syslog lietoÅ”anai, un tÄpÄc tiem ir svarÄ«gs parametrs - smaguma pakÄpe.
ÄŖpaÅ”i noderÄ«gs ir augÅ”pusÄ esoÅ”ais grafiks, kurÄ var redzÄt raduÅ”Äs kļūdas un krÄsa uzreiz skaidri parÄda, vai nopietnÄ«ba ir augstÄka.
PÄris reizes mÄs Å”ÄdÄ veidÄ noÄ·ÄrÄm svarÄ«gas kļūdas, ejot apskatÄ«t pÄdÄjÄs nedÄļas baļķus un redzot sarkanu smaili.
Protams, ideÄlÄ gadÄ«jumÄ bÅ«tu jÄiestata brÄ«dinÄjumi par Å”ÄdÄm kļūdÄm, jo āāmums jau bija viss, kas nepiecieÅ”ams.
MÄs pat kÄdu laiku to ieslÄdzÄm, bet pilota sagatavoÅ”anas procesÄ izrÄdÄ«jÄs, ka saÅemam diezgan daudz kļūdu (tostarp sistÄmas kļūdas, piemÄram, LTE tÄ«kla nepieejamÄ«ba), kas "spamo" Slack kanÄlu. pÄrÄk daudz, neradot nekÄdas problÄmas.liels ieguvums.
Pareizais risinÄjums bÅ«tu apstrÄdÄt lielÄko daļu Å”Äda veida kļūdu, pielÄgot to nopietnÄ«bu un tikai pÄc tam iespÄjot brÄ«dinÄjumus.
TÄdÄ veidÄ pakalpojumÄ Slack tiks publicÄtas tikai jaunas vai svarÄ«gas kļūdas. Å emot vÄrÄ saspringtos termiÅus, Å”Ädai iestatÄ«Å”anai vienkÄrÅ”i nebija pietiekami daudz laika.
AutentifikÄcija
Ir arÄ« vÄrts pieminÄt, ka Chronograf atbalsta OAuth un OIDC kÄ autentifikÄciju.
Tas ir ļoti Ärti, jo ļauj to viegli pievienot savam serverim un izveidot pilnvÄrtÄ«gu SSO.
MÅ«su gadÄ«jumÄ serveris bija atslÄgas apmetnis ā tas tika izmantots, lai izveidotu savienojumu ar uzraudzÄ«bu, bet tas pats serveris tika izmantots arÄ« motorolleru un pieprasÄ«jumu autentifikÄcijai aizmugurÄ.
"Administrators"
PÄdÄjais komponents, ko es aprakstÄ«Å”u, ir mÅ«su paÅ”u rakstÄ«tais āadmin panelisā Vue.
BÅ«tÄ«bÄ tas ir tikai atseviŔķs pakalpojums, kas vienlaikus parÄda skrejriteÅa informÄciju no mÅ«su paÅ”u datu bÄzÄm, mikropakalpojumiem un metrikas datus no InfluxDB.
TurklÄt tur tika pÄrvietotas daudzas administratÄ«vÄs funkcijas, piemÄram, avÄrijas atsÄknÄÅ”ana vai attÄlinÄta slÄdzenes atvÄrÅ”ana atbalsta komandai.
Bija arÄ« kartes. Jau minÄju, ka sÄkÄm ar Grafana nevis Chronograf - jo priekÅ” Grafana ir pieejamas kartes spraudÅu veidÄ, uz kurÄm varÄja apskatÄ«t motorolleru koordinÄtes. DiemžÄl Grafana karÅ”u logrÄ«ku iespÄjas ir ļoti ierobežotas, un rezultÄtÄ dažu dienu laikÄ bija daudz vieglÄk uzrakstÄ«t savu tÄ«mekļa aplikÄciju ar kartÄm, lai Å”obrÄ«d ne tikai redzÄtu koordinÄtas, bet arÄ« parÄdÄ«tu skrejriteÅa veiktais marÅ”ruts, jÄspÄj filtrÄt datus kartÄ utt. (visa tÄ funkcionalitÄte, ko nevarÄjÄm konfigurÄt vienkÄrÅ”Ä informÄcijas panelÄ«).
Viena no jau minÄtajÄm Influx priekÅ”rocÄ«bÄm ir iespÄja Ärti izveidot savus rÄdÄ«tÄjus.
Tas ļauj to izmantot ļoti dažÄdiem scenÄrijiem.
MÄs centÄmies tur ierakstÄ«t visu noderÄ«go informÄciju: akumulatora uzlÄdes lÄ«meni, bloÄ·ÄÅ”anas statusu, sensora darbÄ«bu, Bluetooth, GPS un daudzas citas veselÄ«bas pÄrbaudes.
MÄs to visu parÄdÄ«jÄm administratora panelÄ«.
Protams, mums svarÄ«gÄkais kritÄrijs bija skrejriteÅa darbÄ«bas stÄvoklis - patiesÄ«bÄ Influx pats to pÄrbauda un rÄda ar āzaļajÄm gaismÄmā sadaÄ¼Ä Nodes.
To veic funkcija nÄve ā mÄs to izmantojÄm, lai izprastu mÅ«su kastes veiktspÄju un nosÅ«tÄ«tu tos paÅ”us brÄ«dinÄjumus Slack.
Starp citu, skrejriteÅus nosaucÄm pÄc Simpsonu varoÅu vÄrdiem - bija tik Ärti tos atŔķirt vienu no otra
Un vispÄr Å”ÄdÄ veidÄ bija jautrÄk. PastÄvÄ«gi tika dzirdÄtas tÄdas frÄzes kÄ āPuiÅ”i, Smiters ir miris!ā.
Virknes metrika
Ir svarÄ«gi, lai InfluxDB ļautu saglabÄt ne tikai skaitliskÄs vÄrtÄ«bas, kÄ tas ir Victoria Metrics gadÄ«jumÄ.
Å Ä·iet, ka tas nav tik svarÄ«gi - galu galÄ, izÅemot žurnÄlus, jebkuru metriku var saglabÄt skaitļu veidÄ (vienkÄrÅ”i pievienojiet kartÄÅ”anu zinÄmiem stÄvokļiem - sava veida enum)?
MÅ«su gadÄ«jumÄ bija vismaz viens scenÄrijs, kurÄ virknes metrika bija ļoti noderÄ«ga.
SagadÄ«jÄs, ka mÅ«su āviedo lÄdÄtÄjuā piegÄdÄtÄjs bija treÅ”Ä puse, mums nebija nekÄdas kontroles pÄr izstrÄdes procesu un informÄciju, ko Å”ie lÄdÄtÄji varÄtu sniegt.
RezultÄtÄ uzlÄdes API bija tÄlu no ideÄla, taÄu galvenÄ problÄma bija tÄ, ka mÄs ne vienmÄr varÄjÄm saprast to stÄvokli.
Å eit palÄ«gÄ nÄca Influx. MÄs vienkÄrÅ”i ierakstÄ«jÄm InfluxDB datu bÄzes laukÄ virknes statusu bez izmaiÅÄm.
KÄdu laiku tur nokļuva tikai tÄdas vÄrtÄ«bas kÄ ātieÅ”saisteā un ābezsaistÄā, pamatojoties uz kurÄm informÄcija tika parÄdÄ«ta mÅ«su administratora panelÄ«, un paziÅojumi tika nosÅ«tÄ«ti uz Slack. TomÄr kÄdÄ brÄ«dÄ« tur sÄka parÄdÄ«ties arÄ« tÄdas vÄrtÄ«bas kÄ āatvienotsā.
KÄ vÄlÄk izrÄdÄ«jÄs, Å”is statuss tika nosÅ«tÄ«ts vienu reizi pÄc savienojuma zaudÄÅ”anas, ja lÄdÄtÄjs pÄc noteikta mÄÄ£inÄjumu skaita nevarÄja izveidot savienojumu ar serveri.
TÄdÄjÄdi, ja mÄs izmantotu tikai fiksÄtu vÄrtÄ«bu kopu, mÄs, iespÄjams, neredzÄsim Ŕīs programmaparatÅ«ras izmaiÅas Ä«stajÄ laikÄ.
Un vispÄr virkÅu metrika sniedz daudz plaÅ”Äkas izmantoÅ”anas iespÄjas, tajÄs var ierakstÄ«t praktiski jebkuru informÄciju. Lai gan, protams, jums arÄ« rÅ«pÄ«gi jÄizmanto Å”is rÄ«ks.
Papildus parastajiem rÄdÄ«tÄjiem mÄs ierakstÄ«jÄm arÄ« GPS atraÅ”anÄs vietas informÄciju InfluxDB. Tas bija neticami noderÄ«gi, lai uzraudzÄ«tu motorolleru atraÅ”anÄs vietu mÅ«su administratora panelÄ«.
PatiesÄ«bÄ mÄs vienmÄr zinÄjÄm, kur un kurÅ” skrejritenis atrodas mums vajadzÄ«gajÄ brÄ«dÄ«.
Tas mums ļoti noderÄja, kad meklÄjÄm skrejriteni (skat. secinÄjumus beigÄs).
Infrastruktūras uzraudzība
Papildus paÅ”iem skrejriteÅiem mums bija jÄuzrauga arÄ« visa mÅ«su (diezgan plaÅ”Ä) infrastruktÅ«ra.
Ja mÄs izceļam tÄ«ru uzraudzÄ«bas steku, tas izskatÄs Å”Ädi:
Tas, ko mÄs vÄlÄtos pÄrbaudÄ«t mÄkonÄ«, ir:
Datu bÄzes
atslÄgas apmetnis
Mikropakalpojumi
TÄ kÄ visi mÅ«su mÄkoÅpakalpojumi atrodas Kubernetes, bÅ«tu jauki apkopot informÄciju par tÄ stÄvokli.
Par laimi, Telegraf no kastes var savÄkt milzÄ«gu skaitu metrikas par Kubernetes klastera stÄvokli, un Chronograf tam nekavÄjoties piedÄvÄ skaistus informÄcijas paneļus.
Ir divi veidi, kÄ izsekot podi Kubernetes: DaemonSet un Sidecar.
Abas metodes ir sÄ«ki aprakstÄ«tas Å”ajÄ emuÄra ierakstÄ.
MÄs izmantojÄm Telegraf Sidecar un papildus metrikÄm savÄcÄm pod žurnÄlus.
MÅ«su gadÄ«jumÄ mums bija jÄmÄcÄs ar baļķiem. Neskatoties uz to, ka Telegraf var izvilkt žurnÄlus no Docker API, mÄs vÄlÄjÄmies, lai mÅ«su gala ierÄ«cÄm bÅ«tu vienota žurnÄlu kolekcija un Å”im nolÅ«kam bÅ«tu konfigurÄti konteineri. VarbÅ«t Å”is risinÄjums nebija skaists, bet par tÄ darbÄ«bu sÅ«dzÄ«bu nebija un žurnÄli ChronografÄ bija labi attÄloti.
Monitoru uzraudzību???
Galu galÄ radÄs mūžsenais jautÄjums par monitoringa sistÄmu monitoringu, bet par laimi vai diemžÄl mums tam vienkÄrÅ”i nepietika laika.
Lai gan Telegraf var viegli nosÅ«tÄ«t savus rÄdÄ«tÄjus vai savÄkt rÄdÄ«tÄjus no InfluxDB datu bÄzes, lai tos nosÅ«tÄ«tu uz to paÅ”u Influx vai kaut kur citur.
Atzinumi
KÄdus secinÄjumus izdarÄ«jÄm no izmÄÄ£inÄjuma rezultÄtiem?
KÄ jÅ«s varat veikt monitoringu?
PirmkÄrt, TICK steks pilnÄ«bÄ attaisnoja mÅ«su cerÄ«bas un deva mums vÄl vairÄk iespÄju nekÄ sÄkotnÄji gaidÄ«jÄm.
Bija klÄt visa vajadzÄ«gÄ funkcionalitÄte. Viss, ko ar to darÄ«jÄm, darbojÄs bez problÄmÄm.
ŠŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŠµŠ»ŃŠ½Š¾ŃŃŃ
GalvenÄ problÄma ar TICK steku bezmaksas versijÄ ir mÄrogoÅ”anas iespÄju trÅ«kums. TÄ mums nebija problÄma.
MÄs neievÄcÄm precÄ«zus slodzes datus/skaitļus, taÄu mÄs ievÄcÄm datus no aptuveni 30 motorolleriem vienlaikus.
Katrs no viÅiem savÄca vairÄk nekÄ trÄ«s desmitus rÄdÄ«tÄju. TajÄ paÅ”Ä laikÄ tika savÄkti žurnÄli no ierÄ«cÄm. Datu vÄkÅ”ana un nosÅ«tÄ«Å”ana notika ik pÄc 10 sekundÄm.
SvarÄ«gi atzÄ«mÄt, ka pÄc pusotras nedÄļas izmÄÄ£inÄjuma, kad lielÄkÄ daļa ābÄrnÄ«bas ÄÅ«luā tika novÄrstas un svarÄ«gÄkÄs problÄmas jau bija atrisinÄtas, nÄcÄs samazinÄt datu sÅ«tÄ«Å”anas uz serveri biežumu. 30 sekundes. Tas kļuva nepiecieÅ”ams, jo trafiks mÅ«su LTE SIM kartÄs sÄka Ätri izzust.
LielÄko daļu satiksmes patÄrÄja žurnÄli, paÅ”i rÄdÄ«tÄji pat ar 10 sekunžu intervÄlu to praktiski netÄrÄja.
RezultÄtÄ pÄc kÄda laika mÄs pilnÄ«bÄ atspÄjojÄm žurnÄlu vÄkÅ”anu ierÄ«cÄs, jo konkrÄtas problÄmas jau bija acÄ«mredzamas pat bez pastÄvÄ«gas vÄkÅ”anas.
Dažos gadÄ«jumos, ja žurnÄlu apskate joprojÄm bija nepiecieÅ”ama, mÄs vienkÄrÅ”i izveidojÄm savienojumu, izmantojot WireGuard, izmantojot VPN.
PiebildÄ«Å”u arÄ« to, ka katra atseviŔķa vide tika atdalÄ«ta viena no otras, un iepriekÅ” aprakstÄ«tÄ slodze attiecÄs tikai uz ražoÅ”anas vidi.
IzstrÄdes vidÄ mÄs izveidojÄm atseviŔķu InfluxDB instanci, kas turpinÄja vÄkt datus ik pÄc 10 sekundÄm, un mÄs nesaskÄrÄmies ar veiktspÄjas problÄmÄm.
TICK ā ideÄli piemÄrots maziem un vidÄjiem projektiem
Pamatojoties uz Å”o informÄciju, es varÄtu secinÄt, ka TICK kaudze ir ideÄli piemÄrota salÄ«dzinoÅ”i maziem projektiem vai projektiem, kas noteikti negaida HighLoad.
Ja jums nav tÅ«kstoÅ”iem podziÅu vai simtiem iekÄrtu, pat viens InfluxDB gadÄ«jums lieliski tiks galÄ ar slodzi.
Dažos gadÄ«jumos jÅ«s varat bÅ«t apmierinÄts ar Influx Relay kÄ primitÄ«vu augstas pieejamÄ«bas risinÄjumu.
Un, protams, neviens neliedz jums iestatÄ«t āvertikÄloā mÄrogoÅ”anu un vienkÄrÅ”i pieŔķirt dažÄdus serverus dažÄda veida metrikÄm.
Ja neesat pÄrliecinÄts par paredzamo monitoringa pakalpojumu noslodzi vai jums ir garantÄta/bÅ«s ļoti āsmagaā arhitektÅ«ra, es neieteiktu izmantot TICK steka bezmaksas versiju.
Protams, vienkÄrÅ”s risinÄjums bÅ«tu iegÄdÄties InfluxDB Enterprise - bet Å”eit es nevaru kaut kÄ komentÄt, jo es pats neesmu pazÄ«stams ar smalkumiem. TurklÄt tas ir ļoti dÄrgs un noteikti nav piemÄrots maziem uzÅÄmumiem.
Å ajÄ gadÄ«jumÄ Å”odien es ieteiktu meklÄt metriku apkopoÅ”anu, izmantojot Victoria Metrics un žurnÄlus, izmantojot Loki.
Tiesa, es atkal izdarÄ«Å”u atrunu, ka Loki/Grafana ir daudz mazÄk Ärti (lielÄkas daudzpusÄ«bas dÄļ) nekÄ gatavÄ TICK, bet tie ir bez maksas.
Tas ir svarÄ«gi: visa Å”eit aprakstÄ«tÄ informÄcija attiecas uz versiju Influx 1.8, Å”obrÄ«d Influx 2.0 drÄ«zumÄ tiks izlaista.
Lai gan man nav bijusi iespÄja to izmÄÄ£inÄt kaujas apstÄkļos un ir grÅ«ti izdarÄ«t secinÄjumus par uzlabojumiem, interfeiss noteikti ir kļuvis vÄl labÄks, arhitektÅ«ra ir vienkÄrÅ”ota (bez kapacitora un hronogrÄfa),
parÄdÄ«jÄs veidnes (ākiller funkcijaā - varat izsekot spÄlÄtÄjiem Fortnite un saÅemt paziÅojumus, kad jÅ«su iecienÄ«tÄkais spÄlÄtÄjs uzvar spÄlÄ). Bet diemžÄl Å”obrÄ«d 2. versijai nav galvenÄs lietas, par kurÄm mÄs izvÄlÄjÄmies pirmo versiju - nav žurnÄlu kolekcijas.
Å Ä« funkcionalitÄte parÄdÄ«sies arÄ« Influx 2.0, taÄu mÄs nevarÄjÄm atrast nekÄdus termiÅus, pat aptuvenus.
KÄ neveidot IoT platformas (tagad)
Galu galÄ, palaižot izmÄÄ£inÄjumu, mÄs paÅ”i salikÄm savu pilnvÄrtÄ«go IoT steku, ja nebija mÅ«su standartiem piemÄrotas alternatÄ«vas.
TomÄr nesen tas ir pieejams beta versijÄ OpenBalena ā žÄl, ka viÅa nebija, kad sÄkÄm veidot projektu.
Esam pilnÄ«bÄ apmierinÄti ar gala rezultÄtu un platformu, kuras pamatÄ ir Ansible + TICK + WireGuard un kuru salikÄm paÅ”i. Bet Å”odien es ieteiktu tuvÄk apskatÄ«t Balena, pirms mÄÄ£inÄt pats izveidot savu IoT platformu.
TÄ kÄ galu galÄ tas var paveikt lielÄko daļu tÄ, ko mÄs darÄ«jÄm, un OpenBalena ir bezmaksas un atvÄrtÄ koda.
Tas jau zina, kÄ ne tikai nosÅ«tÄ«t atjauninÄjumus, bet arÄ« VPN jau ir iebÅ«vÄts un pielÄgots lietoÅ”anai IoT vidÄ.
Un pavisam nesen viÅi pat izlaida savu detaļas, kas viegli savienojas ar viÅu ekosistÄmu.
Hei, kÄ ar pazuduÅ”o skrejriteni?
TÄ motorollers "Ralfs" pazuda bez vÄsts.
MÄs nekavÄjoties skrÄjÄm apskatÄ«t karti savÄ āadmin panelÄ«ā ar GPS metrikas datiem no InfluxDB.
Pateicoties monitoringa datiem, viegli noskaidrojÄm, ka motorollers pagÄjuÅ”ajÄ diennaktÄ« ap 21:00 izbrauca no stÄvlaukuma, kÄdu pusstundu nobrauca lÄ«dz kÄdai teritorijai un lÄ«dz 5 no rÄ«ta stÄvÄja pie kÄdas vÄcu mÄjas.
PÄc pulksten 5:XNUMX nekÄdi uzraudzÄ«bas dati netika saÅemti ā tas nozÄ«mÄja, ka vai nu papildu akumulators bija pilnÄ«bÄ izlÄdÄjies, vai arÄ« uzbrucÄjs beidzot izdomÄja, kÄ no motorollera noÅemt viedo aparatÅ«ru.
Neskatoties uz to, policija joprojÄm tika izsaukta uz adresi, kur atradÄs motorollers. Motorollera tur nebija.
TaÄu arÄ« mÄjas saimnieks par to bijis pÄrsteigts, jo viÅÅ” Å”onakt ar motorolleri tieÅ”Äm braucis mÄjÄs no biroja.
KÄ izrÄdÄ«jÄs, viens no atbalsta darbiniekiem ieradÄs agri no rÄ«ta un paÅÄma skrejriteni, redzot, ka tÄ papildu akumulators ir pilnÄ«bÄ izlÄdÄjies, un nogÄdÄja to (kÄjÄm) uz stÄvvietu. Un papildu akumulators neizdevÄs mitruma dÄļ.
MÄs paÅ”i nozagÄm motorolleri. Starp citu, es nezinu, kÄ un kas tad atrisinÄja jautÄjumu ar policijas lietu, bet uzraudzÄ«ba darbojÄs lieliski...