E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Hoʻokahi makahiki i hala aku nei ua hoʻolaha mākou i kahi mana hoʻokele o kahi papahana hoʻolaha no hoʻolimalima decentralized o nā scooter uila.

I ka wā mua, ua kapa ʻia ka papahana Road-To-Barcelona, ​​​​ma hope ua lilo ʻo ia ʻo Road-To-Berlin (no laila ʻo R2B i nā kiʻi kiʻi), a ma ka hopena ua kapa ʻia ʻo xRide.

ʻO ka manaʻo nui o ka papahana kēia: ma kahi o ka loaʻa ʻana o kahi kaʻa kikowaena a i ʻole lawelawe hoʻolimalima scooter (ke kamaʻilio nei mākou e pili ana i nā scooters aka uila uila, ʻaʻole kickscooters/scooters) makemake mākou e hana i kahi kahua no ka hoʻolimalima decentralized. No nā pilikia i loaʻa iā mākou ua kākau mua.

I ka hoʻomaka ʻana, ua nānā ka papahana i nā kaʻa, akā ma muli o nā lā palena, nā kamaʻilio lōʻihi loa me nā mea hana a me ka nui o nā palena palekana, ua koho ʻia nā scooter uila no ka pailaka.

Ua hoʻokomo ka mea hoʻohana i kahi noi iOS a Android paha ma ke kelepona, hoʻokokoke i ka scooter āna i makemake ai, a ma hope o ka hoʻokumu ʻana o ke kelepona a me ka scooter i kahi pilina peer-to-peer, ua hoʻololi ʻia ʻo ETH a hiki i ka mea hoʻohana ke hoʻomaka i ka holo ma ka hoʻohuli ʻana i ka scooter ma o ke kelepona. I ka hopena o ka huakaʻi, hiki nō hoʻi ke uku no ka huakaʻi me ka hoʻohana ʻana i ka Ethereum mai ka ʻeke kālā o ka mea hoʻohana ma ke kelepona.

Ma waho aʻe o nā scooter, ua ʻike ka mea hoʻohana i nā "kauā akamai" i ka noi, ma ke kipa ʻana i hiki i ka mea hoʻohana ke hoʻololi i ka pākaukau o kēia manawa inā haʻahaʻa.

ʻO kēia ke ʻano o kā mākou pailaka, i hoʻokuʻu ʻia i Kepakemapa i ka makahiki i hala ma ʻelua mau kūlanakauhale Kelemania: Bonn a me Berlin.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

A laila, i kekahi lā, ma Bonn, i ke kakahiaka nui, ua makaʻala ʻia kā mākou hui kākoʻo (aia ma ka pūnaewele no ka mālama ʻana i nā scooter i ka hana hana): ua nalowale kekahi o nā scooter me ka ʻole o ka ʻike.

Pehea e loaʻa ai a hoʻihoʻi?

Ma kēia ʻatikala e kamaʻilio wau e pili ana i kēia, akā ʻo ka mea mua - e pili ana i ke ʻano o kā mākou kūkulu ʻana i kā mākou pūnaewele IoT ponoʻī a pehea mākou i nānā ai.

He aha a no ke aha e nānā ai: nā scooter, nā ʻōnaehana, nā kikowaena hoʻouka?

No laila, he aha kā mākou makemake e nānā i kā mākou papahana?

ʻO ka mea mua, ʻo ia nā scooter ponoʻī - he kumukūʻai nui nā scooter uila, ʻaʻole hiki iā ʻoe ke hoʻomaka i kēlā papahana me ka mākaukau ʻole; inā hiki, makemake ʻoe e hōʻiliʻili i ka ʻike e pili ana i nā scooter: e pili ana i ko lākou wahi, ka pae uku. , etc.

Eia hou, makemake wau e nānā i ke kūlana o kā mākou ʻenehana IT ponoʻī - nā ʻikepili, nā lawelawe a me nā mea āpau e pono ai lākou e hana. He mea pono nō hoʻi e nānā i ke kūlana o nā "hoʻoili akamai", inā ua haki lākou a pau paha i nā pila piha.

Nā Scooter

He aha kā mākou mau scooter a he aha kā mākou makemake e ʻike e pili ana iā lākou?

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻO ka mea mua a koʻikoʻi loa ʻo ia nā hoʻonohonoho GPS, no ka mea mahalo iā lākou hiki iā mākou ke hoʻomaopopo i hea lākou a me kahi e neʻe ai lākou.

ʻO ka mea aʻe ka uku pākaukau, mahalo i hiki iā mākou ke hoʻoholo i ka pau ʻana o ka hoʻopiʻi ʻana o nā scooter a hoʻouna i kahi juicer a i ʻole e aʻo aku i ka mea hoʻohana.

ʻOiaʻiʻo, pono nō hoʻi e nānā i nā mea e hana nei me kā mākou ʻāpana Hardware:

  • hana ʻo Bluetooth?
  • Ke hana nei ka GPS module pono'ī?
    • Ua pilikia pū mākou me ka hiki i ka GPS ke hoʻouna i nā hoʻonohonoho hewa a paʻa, a hiki ke hoʻoholo ʻia e nā loiloi hou aku i ka scooter,
      a haʻi aku i ke kākoʻo i ka hikiwawe e hoʻonā i ka pilikia

A ʻo ka hope: nā loiloi o ka polokalamu, e hoʻomaka ana me ka OS a me ka processor, ka pūnaewele a me ka hoʻouka disk, e hoʻopau ana me nā loiloi o kā mākou mau modula i ʻoi aku ka kikoʻī iā mākou (ʻO Jolocom, ʻahu kī).

lako paʻa

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

He aha kā mākou ʻāpana "hao"?

No ka noʻonoʻo ʻana i ka manawa pōkole loa a me ka pono o ka prototyping wikiwiki, ua koho mākou i ka koho maʻalahi no ka hoʻokō a me ke koho ʻana i nā ʻāpana - Raspberry Pi.
Ma waho aʻe o ka Rpi ponoʻī, ua loaʻa iā mākou kahi papa maʻamau (a mākou i kūkulu a kauoha iā mākou mai Kina e wikiwiki i ke kaʻina hana o ka hopena hope loa) a me kahi hoʻonohonoho o nā ʻāpana - kahi relay (e hoʻohuli a hoʻopau i ka scooter), he mea heluhelu, he modem, antennas. Hoʻopili paʻa ʻia kēia mau mea āpau i loko o kahi pahu "xRide" kūikawā.

Pono e hoʻomaopopo ʻia ua hoʻohana ʻia ka pahu holoʻokoʻa e kahi panakō mana hou, ʻo ia hoʻi i hoʻohana ʻia e ka pā nui o ka scooter.

ʻO kēia ka mea i hiki ai ke hoʻohana i ka nānā ʻana a hoʻohuli i ka scooter ma hope o ka pau ʻana o ka huakaʻi, no ka mea ua pio koke ka pākaukau nui ma hope o ka hoʻohuli ʻana i ke kī kī i ke kūlana "off".

Docker? Linux maʻamau? a me ka hoʻolaha ʻana

E hoʻi kāua i ka nānā ʻana, no laila Raspberry - he aha kā mākou?

ʻO kekahi o nā mea mua a mākou i makemake ai e hoʻohana i ka wikiwiki o ke kaʻina hana o ka lawe ʻana, hoʻonui a me ka hāʻawi ʻana i nā ʻāpana i nā mea kino ʻo Docker.

ʻO ka mea pōʻino, ua maopopo koke ʻo Docker ma RPi, ʻoiai e hana ana, he nui ka overhead, ʻoi aku ka nui o ka hoʻohana ʻana i ka ikehu.

ʻO ka ʻokoʻa me ka hoʻohana ʻana i ka OS "ʻōiwi", ʻoiai ʻaʻole ikaika loa, ua lawa ia no mākou e makaʻala i ka hiki ke nalowale koke.

ʻO ke kumu ʻelua, ʻo ia kekahi o kā mākou hoa waihona puke ma Node.js (sic!) - ʻo ia wale nō ka mea o ka ʻōnaehana i kākau ʻole ʻia ma Go/C/C++.

ʻAʻole i loaʻa i nā mea kākau o ka hale waihona puke ka manawa e hāʻawi i kahi mana hana ma kekahi o nā ʻōlelo "ʻōiwi".

ʻAʻole wale ʻo ka node ponoʻī ʻaʻole ka hopena nani loa no nā hāmeʻa haʻahaʻa haʻahaʻa, akā ʻo ka hale waihona puke ponoʻī ka pōloli waiwai.

Ua ʻike mākou, ʻoiai inā makemake mākou, ʻoi aku ka nui o ka hoʻohana ʻana iā Docker no mākou. Ua koho ʻia ka makemake o ka OS maoli a hana pololei ma lalo o ia.

OS

ʻO ka hopena, ua koho hou mākou i ka koho maʻalahi loa e like me ka OS a hoʻohana iā Raspbian (Debian kūkulu no Pi).

Kākau mākou i kā mākou polokalamu a pau ma Go, no laila ua kākau pū mākou i ka module agent mea hana nui i kā mākou ʻōnaehana ma Go.

ʻO ia ke kuleana no ka hana ʻana me GPS, Bluetooth, heluhelu i ka uku, hoʻohuli i ka scooter, etc.

Hoʻopili

Ua kū koke ka nīnau e pili ana i ka pono e hoʻokō i kahi mīkini no ka hāʻawi ʻana i nā mea hou i nā polokalamu (OTA) - nā mea hou i kā mākou luna / noi ponoʻī, a me nā mea hou i ka OS / firmware ponoʻī (no ka mea, hiki i nā mana hou o ka luna ke koi i nā mea hou i ka kernel. a i ʻole nā ​​ʻāpana ʻōnaehana, hale waihona puke, etc.) .

Ma hope o ka loiloi lōʻihi o ka mākeke, ua ʻike ʻia he nui nā hopena no ka hāʻawi ʻana i nā mea hou i ka hāmeʻa.

Mai ka maʻalahi, ʻo ka hapa nui o ka hoʻonui / pālua-boot oriented pono e like me swupd / SWUpdate / OSTree i nā paepae piha e like me Mender a me Balena.

ʻO ka mea mua, ua hoʻoholo mākou ua makemake mākou i nā hopena hopena, no laila ua hāʻule koke ka koho ma nā paepae.

ʻUalima Balena ua kāpae ʻia ma muli o ka hoʻohana maoli ʻana i ka Docker like i loko o kāna balenaEngine.

Akā ʻike wau ʻoiai me kēia, ua hoʻopau mākou i ka hoʻohana mau ʻana i kā lākou huahana ʻO Balena Etcher no ka flash firmware ma nā kāleka SD - he mea maʻalahi a maʻalahi hoʻi no kēia.

No laila, i ka hopena, hāʻule ka koho Mender. ʻO Mender kahi kahua piha no ka hui ʻana, hoʻopuka a hoʻokomo i ka firmware.

Ma ke ʻano holoʻokoʻa, ʻike maikaʻi ʻia ka paepae, akā ua lawe mākou ma kahi o hoʻokahi pule a me ka hapa e kūkulu i ka mana kūpono o kā mākou firmware me ka hoʻohana ʻana i ka mea hana mender.
A ʻo ka ʻoi aʻe o kā mākou hoʻokomo ʻana iā mākou iho i nā paʻakikī o kāna hoʻohana ʻana, ʻoi aku ka maopopo o ka hoʻopili piha ʻana iā mākou e pono ai ka manawa ʻoi aku ka nui ma mua o kā mākou.

Auē, ʻo kā mākou mau manawa paʻa i koi ʻia e haʻalele i ka hoʻohana ʻana iā Mender a koho i kahi mea maʻalahi.

ʻO ke kūpono

ʻO ka hopena maʻalahi loa i ko mākou kūlana ʻo ia ka hoʻohana ʻana iā Ansible. Ua lawa kekahi mau puke pāʻani e hoʻomaka ai.

ʻO kā lākou kumu, ua pili wale mākou mai ka host (CI server) ma o ssh i kā mākou rasberries a hāʻawi i nā mea hou iā lākou.

I ka hoʻomaka ʻana, maʻalahi nā mea āpau - pono ʻoe ma ka pūnaewele like me nā polokalamu, ua hana ʻia ka ninini ʻana ma o Wi-Fi.

I loko o ke keʻena he ʻumikūmālua mau raspberry hoʻāʻo i hoʻopili ʻia i ka pūnaewele like, loaʻa i kēlā me kēia hāmeʻa kahi IP static i kuhikuhi ʻia ma Ansible Inventory.

ʻO Ansible ka mea nāna i hāʻawi i kā mākou mākaʻi mākaʻikaʻi i nā hāmeʻa hope

3G / LTE

ʻO ka mea pōʻino, hiki i kēia hihia hoʻohana no Ansible ke hana wale i ke ʻano hoʻomohala ma mua o ka loaʻa ʻana o nā scooter maoli.

No ka mea, ʻo nā scooters, e like me kāu e hoʻomaopopo ai, ʻaʻole e noho pili i hoʻokahi ala Wi-Fi, e kali mau ana i nā mea hou ma ka pūnaewele.

ʻO ka ʻoiaʻiʻo, ʻaʻole hiki i nā scooters ke loaʻa kahi pilina ma mua o ka mobile 3G/LTE (a ʻaʻole hoʻi i nā manawa āpau).

Hoʻokomo koke kēia i nā pilikia a me nā palena, e like me ka wikiwiki pili haʻahaʻa a me ke kamaʻilio paʻa ʻole.

Akā ʻo ka mea nui loa i loko o kahi pūnaewele 3G/LTE ʻaʻole hiki iā mākou ke hilinaʻi wale i kahi IP static i hāʻawi ʻia i ka pūnaewele.

Hoʻoholo ʻia kēia e kekahi mau mea hāʻawi kāleka SIM; aia kekahi mau kāleka SIM kūikawā i hoʻolālā ʻia no nā polokalamu IoT me nā helu IP static. Akā ʻaʻole hiki iā mākou ke komo i kēlā mau kāleka SIM a ʻaʻole hiki ke hoʻohana i nā leka uila IP.

ʻOiaʻiʻo, aia nā manaʻo e hana i kekahi ʻano o ka hoʻopaʻa inoa ʻana i nā helu IP aka ʻike lawelawe ma kahi e like me ke Kanikela, akā pono mākou e haʻalele i kēlā mau manaʻo, ʻoiai i kā mākou hoʻāʻo ʻana hiki ke loli pinepine ka IP address, i alakaʻi i ka instability nui.

No kēia kumu, ʻo ka hoʻohana maʻalahi loa no ka hāʻawi ʻana i nā metric ʻaʻole ia e hoʻohana i ke kumu hoʻohālike, kahi e hele ai mākou i nā hāmeʻa no nā ana pono, akā paʻi, hāʻawi pololei i nā metric mai ka hāmeʻa i ke kikowaena.

VPN

Ma ke ʻano he hopena i kēia pilikia, ua koho mākou iā VPN - kikoʻī ʻO Wireguard.

ʻO nā mea kūʻai (scooters) i ka hoʻomaka ʻana o ka ʻōnaehana pili i ka server VPN a hiki iā lākou ke hoʻopili iā lākou. Ua hoʻohana ʻia kēia tunnel e hāʻawi i nā mea hou.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Ma ke kumumanaʻo, hiki ke hoʻohana ʻia ka tunnel like no ka nānā ʻana, akā ʻoi aku ka paʻakikī o ia pilina a ʻoi aku ka hilinaʻi ma mua o ka pana maʻalahi.

Nā kumuwaiwai ao

ʻO ka mea hope loa, pono e nānā i kā mākou lawelawe kapuaʻi a me nā ʻikepili, no ka mea, hoʻohana mākou i nā Kubernetes no lākou, ʻoi aku ka maʻalahi o ka hoʻohana ʻana i ka nānā ʻana i ka pūʻulu. ʻO ke kūpono, hoʻohana Helm, no ka hoʻolālā ʻana, hoʻohana mākou ia i ka hapa nui o nā hihia. A, ʻoiaʻiʻo, no ka nānā ʻana i ke ao, pono ʻoe e hoʻohana i nā hopena like e like me nā scooter ponoʻī.

Hāʻawi ʻia

Phew, ua ʻike mākou i ka wehewehe ʻana, e hana mākou i kahi papa inoa o nā mea e pono ai mākou i ka hopena:

  • ʻO kahi hopena wikiwiki, no ka mea, pono ka nānā ʻana i ka wā o ke kaʻina hana
  • Ka nui / ka nui - pono nā metric he nui
  • Pono ka hōʻiliʻili lāʻau
  • Pono - he mea koʻikoʻi ka ʻikepili no ka hoʻomaka ʻana i ka holomua
  • ʻAʻole hiki iā ʻoe ke hoʻohana i ke ʻano huki - pono ʻoe e pana
  • Pono mākou i ka nānā pono ʻana ʻaʻole wale i ka lakohana, akā ke ao pū kekahi

Ua like ke kiʻi hope me kēia

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Hoʻopaʻa koho

No laila, ua kū mākou i ka nīnau no ke koho ʻana i kahi pūʻulu nānā.

ʻO ka mea mua, ke ʻimi nei mākou i ka hopena holoʻokoʻa holoʻokoʻa loa e uhi i kā mākou mau koi a pau i ka manawa like, akā i ka manawa like e hiki ke hoʻololi i kona hoʻohana ʻana i kā mākou pono. Eia nō naʻe, ua nui nā mea paʻa i kau ʻia ma luna o mākou e ka ʻenehana, hoʻolālā a me nā lā palena.

Nui nā ʻano o ka nānā ʻana, e hoʻomaka me nā ʻōnaehana piha like Nagios, icinga ai ole ia, zabbix a me ka hoʻopau ʻana me nā hoʻonā mākaukau no ka hoʻokele Fleet.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

I ka wā mua, ʻike ʻia ka hopena he hopena maikaʻi loa no mākou, akā ʻaʻole i loaʻa ka nānā ʻana o kekahi, ʻo nā mea ʻē aʻe i kaupalena ʻia i nā mana o nā mana manuahi, a ʻo nā mea ʻē aʻe ʻaʻole i uhi i kā mākou "makemake" a ʻaʻole i maʻalahi e kūpono i kā mākou mau hiʻohiʻona. Ua kahiko loa kekahi.

Ma hope o ka hoʻopaʻa ʻana i ka nui o nā hoʻonā like, ua hiki koke mākou i ka hopena e maʻalahi a wikiwiki hoʻi e hōʻuluʻulu i kahi pūʻulu like iā mākou iho. ʻAe, e ʻoi aku ka paʻakikī ma mua o ka hoʻonohonoho ʻana i kahi kahua hoʻokele Fleet mākaukau piha, akā ʻaʻole pono mākou e hana i nā kuʻikahi.

ʻOiaʻiʻo, i ka nui o nā hoʻonā, aia kahi mea i mākaukau e kūpono loa iā mākou, akā i kā mākou hihia, ʻoi aku ka wikiwiki o ka hōʻuluʻulu ʻana i kahi pūʻulu iā mākou iho a hoʻonohonoho iā ia "no mākou iho" ma mua o ka. hoʻāʻo i nā huahana i hana ʻia.

Me kēia mau mea a pau, ʻaʻole mākou i hoʻāʻo e hōʻuluʻulu i kahi kahua kiaʻi holoʻokoʻa iā mākou iho, akā ke ʻimi nei mākou i nā pūʻulu "mākaukau" ʻoi loa, me ka hiki ke hoʻonohonoho pono iā lākou.

(B)ELK?

ʻO ka hopena mua i noʻonoʻo maoli ʻia ʻo ia ka waihona ELK kaulana.
ʻOiaʻiʻo, pono e kapa ʻia ʻo BELK, no ka mea, hoʻomaka ia me Beats - https://www.elastic.co/what-is/elk-stack

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻOiaʻiʻo, ʻo ELK kekahi o nā hopena kaulana a ikaika loa i ke kahua o ka nānā ʻana, a ʻoi aku hoʻi i ka hōʻiliʻili ʻana a me ka hana ʻana i nā lāʻau.

Ua manaʻo mākou e hoʻohana ʻia ʻo ELK e hōʻiliʻili i nā lāʻau a me ka mālama lōʻihi o nā metric i loaʻa mai Prometheus.

No ka nānā ʻana hiki iā ʻoe ke hoʻohana iā Grafan.

ʻOiaʻiʻo, hiki i ka waihona ELK hou ke hōʻiliʻili kūʻokoʻa i nā metric (metricbeat), a hiki iā Kibana ke hōʻike iā lākou.

Akā naʻe, ua ulu mua ʻo ELK mai loko mai o nā lāʻau a hiki i kēia manawa he nui nā hemahema koʻikoʻi ka hana o nā metric:

  • ʻOi aku ka lohi ma mua o Prometheus
  • Hoʻohui i nā wahi liʻiliʻi loa ma mua o Prometheus
  • He paʻakikī ka hoʻonohonoho ʻana i nā makaʻala no lākou
  • Lawe nā metric i kahi nui
  • ʻOi aku ka paʻakikī o ka hoʻonohonoho ʻana i nā dashboards me nā metric ma Kiban ma mua o Grafan

Ma keʻano laulā, kaumaha nā metric ma ELK a ʻaʻole i maʻalahi e like me nā hopena ʻē aʻe, aia i kēia manawa ʻoi aku ka nui o Prometheus: TSDB, Victoria Metrics, Cortex, etc., etc. ʻOiaʻiʻo, makemake wau e loaʻa i kahi hopena holoʻokoʻa holoʻokoʻa i ka manawa koke, akā i ka hihia o metricbeat ua nui loa nā kuʻikahi.

A he mau manawa paʻakikī ko ka ELK stack:

  • He kaumaha, i kekahi manawa, kaumaha loa inā ʻohi ʻoe i ka nui o ka ʻikepili
  • Pono ʻoe e "ʻike pehea e kuke ai" - pono ʻoe e hoʻonui, akā ʻaʻole ia he mea koʻikoʻi ke hana
  • Wehe ʻia ka mana manuahi - ʻaʻohe makaʻala maʻamau ka mana manuahi, a i ka manawa i koho ʻia ʻaʻohe hōʻoia.

Pono wau e ʻōlelo i kēia manawa ua ʻoi aku ka maikaʻi o ka helu hope loa puka i loko o ka waihona X-pack (me ka hōʻoiaʻiʻo) ua hoʻomaka ke kumu kūʻai ponoʻī e loli.

Akā i ka manawa a mākou e hoʻokau ai i kēia hoʻonā, ʻaʻohe makaʻala.
Ua ho'āʻo paha mākou e kūkulu i kekahi mea me ka hoʻohana ʻana iā ElastAlert a i ʻole nā ​​​​ʻoluʻolu kaiaulu ʻē aʻe, akā ua hoʻoholo mākou e noʻonoʻo i nā mea ʻē aʻe.

Loki - Grafana - Prometheus

I kēia manawa, ʻo kahi hopena maikaʻi paha ke kūkulu ʻana i kahi waihona kiaʻi e pili ana iā Prometheus ma ke ʻano he mea hoʻolako metric, Loki no nā lāʻau, a no ka ʻike maka hiki iā ʻoe ke hoʻohana i ka Grafana like.

ʻO ka mea pōʻino, i ka manawa o ka hoʻomaka ʻana o ka mea hoʻokele kūʻai o ka papahana (Sepatemaba-ʻOkakopa 19), aia nō ʻo Loki i ka beta version 0.3-0.4, a i ka manawa o ka hoʻomaka ʻana o ka hoʻomohala ʻaʻole hiki ke noʻonoʻo ʻia he hopena produtcion. i nā mea āpau.

ʻAʻohe oʻu ʻike i ka hoʻohana maoli ʻana iā Loki i nā papahana koʻikoʻi, akā hiki iaʻu ke ʻōlelo he hana maikaʻi ʻo Promtail (he luna no ka hōʻiliʻili ʻana i nā lāʻau) no ka ʻole-metala a me nā pods i nā kubernetes.

LOA

Hiki paha ke kapa ʻia ʻo ka mea kūpono loa (ʻo ia wale nō?) i ka waihona ELK i kēia manawa ʻo ka TICK stack - Telegraf, InfluxDB, Chronograf, Kapacitor.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

E wehewehe au i nā ʻāpana a pau ma lalo nei i nā kikoʻī hou aku, akā ʻo ka manaʻo nui kēia:

  • Telegraf - luna no ka hōʻiliʻili ʻana i nā ana
  • InfluxDB - ʻikepili helu
  • Kapacitor - kaʻina hana metric manawa maoli no ka makaʻala
  • Chronograf - pūnaewele pūnaewele no ka nānā ʻana

No InfluxDB, Kapacitor a me Chronograf aia nā palapala helm kūhelu a mākou i hoʻohana ai e kau iā lākou.

Pono e hoʻomaopopo ʻia ma ka mana hou loa o Influx 2.0 (beta), ua lilo ʻo Kapacitor a me Chronograf i ʻāpana o InfluxDB a ʻaʻole noho kaʻawale.

Telegarapa

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Telegarapa he mea māmā loa no ka hōʻiliʻili ʻana i nā ana ma ka mīkini mokuʻāina.

Hiki iā ia ke nānā i ka nui o nā mea a pau, mai nginx i luna
kikowaena pūnaewele noel.

Loaʻa iā ia kekahi mau mea maikaʻi maikaʻi:

  • ʻO ka wikiwiki a me ka māmā (kākau ʻia ma Go)
    • ʻAi i ka liʻiliʻi o nā kumuwaiwai
  • Hoʻopaʻa i nā metrics
  • E hōʻiliʻili i nā ana pono a pau
    • Nā ana ʻōnaehana me ka ʻole o nā hoʻonohonoho
    • ʻO nā metric hardware e like me ka ʻike mai nā mea ʻike
    • He mea maʻalahi loa ka hoʻohui ʻana i kāu metric ponoʻī
  • Nui nā plugins i waho o ka pahu
  • ʻOhi lāʻau

No ka mea pono nā metric push no mākou, ʻoi aku ka maikaʻi o nā pono ʻē aʻe ma mua o nā mea hoʻohui maikaʻi.

ʻO ka hōʻiliʻili ʻana i nā lāʻau e ka ʻelele ponoʻī he maʻalahi loa, no ka mea, ʻaʻohe pono e hoʻopili i nā pono hana hou no ka logging log.

Hāʻawi ʻo Influx i ka ʻike kūpono loa no ka hana ʻana me nā lāʻau inā ʻoe e hoʻohana syslog.

He ʻelele maikaʻi loa ʻo Telegraf no ka hōʻiliʻili ʻana i nā metric, ʻoiai inā ʻaʻole ʻoe e hoʻohana i ke koena o ka waihona ICK.

Nui ka poʻe e hele me ELK a me nā ʻikepili ʻikepili manawa-manawa ʻē aʻe no ka maʻalahi, no ka mea hiki iā ia ke kākau i nā metric kokoke i nā wahi āpau.

InfluxDB

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻO InfluxDB ke kumu nui o ka waihona TICK, ʻo ia hoʻi kahi waihona manawa-series no metrics.
Ma waho aʻe o nā metrics, hiki nō hoʻi iā Influx ke mālama i nā lāʻau, ʻoiai, ma ke ʻano, ʻo nā logs no ia mea he mau metric like wale nō, aia wale nō ma kahi o nā hōʻailona helu maʻamau, lawe ʻia ka hana nui e kahi laina o ka kikokikona log.

Ua kākau pū ʻia ʻo InfluxDB ma Go a ʻoi aku ka wikiwiki o ka holo ʻana i ka ELK ma kā mākou hui (ʻaʻole ka ikaika loa).

ʻO kekahi o nā pōmaikaʻi maikaʻi loa o Influx e komo pū kekahi API kūpono loa a waiwai no nā nīnau ʻikepili, a mākou i hoʻohana ikaika loa ai.

Nā pōʻino - $$$ a i ʻole ka scaling?

Hoʻokahi wale nō drawback o ka waihona TICK i ʻike mākou - ʻo ia aloha. Nuinui loa.

He aha ka mea i uku ʻole ʻia i ka mana manuahi?

E like me ka hiki iā mākou ke hoʻomaopopo, ʻo ka ʻokoʻa wale nō ma waena o ka mana i uku ʻia o ka waihona TICK a me ka manuahi ʻo ia ka hiki ke hoʻonui.

ʻO ia, hiki iā ʻoe ke hoʻāla i kahi pūʻulu me ka loaʻa kiʻekiʻe wale nō i loko Nā mana ʻoihana.

Inā makemake ʻoe i ka HA piha, pono ʻoe e uku a hoʻohana paha i kekahi mau koʻokoʻo. Aia kekahi mau hoʻonā kaiāulu - no ka laʻana influxdb-ha e like me ka hoʻoponopono kūpono, akā ua kākau ʻia ʻaʻole kūpono ia no ka hana ʻana, a me
influx-spout - kahi hoʻonā maʻalahi me ka hoʻoheheʻe ʻana i ka ʻikepili ma o NATS (pono e hoʻonui ʻia, akā hiki ke hoʻoholo ʻia).

He mea minamina, akā ua haʻalele ʻia lāua ʻelua - ʻaʻohe hana hou, ke manaʻo nei au ʻo ka pilikia ka hoʻokuʻu koke ʻia o ka mana hou o Influx 2.0, kahi e ʻokoʻa ai nā mea he nui (ʻaʻohe ʻike e pili ana. ke kau nei i loko o laila).

Loaʻa ka mana manuahi mika - ʻoiaʻiʻo, he HA primitive kēia, akā ma o ke kaulike wale nō,
no ka mea, e kākau ʻia nā ʻikepili a pau i nā manawa InfluxDB a pau ma hope o ka mea kaulike haʻahaʻa.
Loaʻa iā ia kekahi nā meaʻino e like me nā pilikia kūpono me nā helu kākau a me ka pono e hana i nā kumu no nā metric ma mua
(e hana maʻalahi i ka hana maʻamau me InfluxDB).

Ma waho aʻe o ʻAʻole kākoʻo ʻia ka sharding, 'o ia ho'i ka 'oi aku o ke po'o no nā metric duplicate (ka hana a me ka waiho 'ana) 'a'ole paha 'oe e pono ai, akā 'a'ohe ala e ho'oka'awale ai.

ʻO Victoria metrics?

ʻO ka hopena, ʻoiai ʻo ka ʻoiaʻiʻo ua ʻoluʻolu loa mākou i ka waihona TICK i nā mea āpau ʻē aʻe ma mua o ka scaling i uku ʻia, ua hoʻoholo mākou e ʻike inā loaʻa nā hopena manuahi e hiki ke pani i ka waihona InfluxDB, ʻoiai e waiho ana i nā ʻāpana T_CK i koe.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Nui nā ʻikepili manawa-series, akā ʻo ka mea hoʻohiki maikaʻi loa ʻo Victoria Metrics, he nui nā pono:

  • ʻO ka wikiwiki a me ka maʻalahi, ma ka liʻiliʻi e like me nā hopena nā hōʻailona
  • Aia kahi mana cluster, e pili ana i nā loiloi maikaʻi i kēia manawa
    • Hiki iā ia ke ʻoki
  • Kākoʻo i ka protocol InfluxDB

ʻAʻole mākou i manaʻo e kūkulu i kahi waihona maʻamau maʻamau e pili ana iā Victoria a ʻo ka manaʻolana nui e hiki iā mākou ke hoʻohana iā ia ma ke ʻano he hāʻule i loko o ka InfluxDB.

ʻO ka mea pōʻino, ʻaʻole hiki kēia, ʻoiai ke kākoʻo ʻia ka protocol InfluxDB, hana wale ia no ka hoʻopaʻa ʻana i nā metric - aia wale nō ka Prometheus API "ma waho", ʻo ia hoʻi ʻaʻole hiki ke hoʻonohonoho iā Chronograf ma luna.

Eia kekahi, kākoʻo wale ʻia nā helu helu no nā metric (ua hoʻohana mākou i nā waiwai string no nā metric maʻamau - ʻoi aku ka nui o kēlā ma ka ʻāpana. wahi admin).

ʻIke loa, no ke kumu like, ʻaʻole hiki i ka VM ke mālama i nā lāʻau e like me ka Influx.

Eia kekahi, pono e hoʻomaopopo ʻia i ka manawa o ka ʻimi ʻana i ka hopena maikaʻi loa, ʻaʻole kaulana loa ʻo Victoria Metrics, ʻoi aku ka liʻiliʻi o ka palapala a ua nāwaliwali ka hana.
(ʻAʻole wau e hoʻomanaʻo i kahi wehewehe kikoʻī o ka mana cluster a me ka sharding).

Koho kumu

ʻO ka hopena, ua hoʻoholo ʻia no ka mea hoʻokele e kaupalena mākou iā mākou iho i hoʻokahi node InfluxDB.

Nui nā kumu nui o kēia koho:

  • Ua makemake nui mākou i ka hana holoʻokoʻa o ka waihona TICK
  • Ua hiki iā mākou ke hoʻokau a hana maikaʻi
  • Ke holo nei nā lā palena a ʻaʻole nui ka manawa i koe e hoʻāʻo ai i nā koho ʻē aʻe.
  • ʻAʻole mākou i manaʻo he haʻahaʻa kaumaha

ʻAʻole nui nā scooter iā mākou no ka pae mua o ka mea hoʻokele, a ʻaʻole hōʻike ʻia ka hoʻāʻo ʻana i ka wā o ka hoʻomohala ʻana i nā pilikia hana.

No laila, ua hoʻoholo mākou no kēia pāhana e lawa ka influx node iā mākou me ka ʻole o ka scaling (e ʻike i nā hopena ma ka hopena).

Ua hoʻoholo mākou i ka waihona a me ke kumu - i kēia manawa e pili ana i nā ʻāpana i koe o ka waihona TICK.

Kapacitor

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻO Kapacitor kahi ʻāpana o ka TICK stack, kahi lawelawe e hiki ke nānā i nā metric e komo ana i ka waihona i ka manawa maoli a hana i nā hana like ʻole e pili ana i nā lula.

Ma keʻano laulā, ua hoʻonoho ʻia ma ke ʻano he mea hana no ka nānā ʻana i nā anomaly a me ke aʻo ʻana i ka mīkini (ʻaʻole maopopo iaʻu ke koi ʻia kēia mau hana), akā ʻo ka hihia kaulana loa o kāna hoʻohana ʻana he mea maʻamau - makaʻala.

Pēlā mākou i hoʻohana ai no ka hoʻolaha. Hoʻonohonoho mākou i nā mākaʻikaʻi Slack i ka wā i hele aku ai kahi scooter ma waho, a ua hana ʻia ia no nā loina akamai a me nā mea waiwai nui.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻO kēia ka mea hiki ke pane koke i nā pilikia, a me ka loaʻa ʻana o nā leka hoʻomaopopo ua hoʻi nā mea āpau i ka maʻamau.

ʻO kahi hiʻohiʻona maʻalahi: ua haki ʻia kahi pākaukau hou e mana i kā mākou "pahu" a i ʻole no kekahi kumu ua pau ka mana; ma ke kau ʻana i kahi mea hou, ma hope o kekahi manawa e loaʻa iā mākou kahi leka hoʻomaopopo ua hoʻihoʻi ʻia ka hana o ka scooter.

Ma Influx 2.0 Kapacitor i lilo i ʻāpana o DB

Chronograph

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Ua ʻike au i nā hoʻonā UI like ʻole no ka nānā ʻana, akā hiki iaʻu ke ʻōlelo ma ke ʻano o ka hana a me UX, ʻaʻohe mea e hoʻohālikelike iā Chronograf.

Ua hoʻomaka mākou e hoʻohana i ka TICK stack, ʻokoʻa, me Grafan ma ke ʻano he kikowaena pūnaewele.
ʻAʻole wau e wehewehe i kāna hana; ʻike nā mea āpau i kona hiki ke hoʻonohonoho i kekahi mea.

Eia nō naʻe, ʻo Grafana kahi mea hana holoʻokoʻa holoʻokoʻa, ʻoiai ʻo Chronograf i hoʻolālā nui ʻia no ka hoʻohana ʻana me Influx.

A ʻoiaʻiʻo, mahalo i kēia, hiki iā Chronograf ke loaʻa i nā hana akamai a maʻalahi paha.

Malia paha ʻo ka ʻoluʻolu nui o ka hana ʻana me Chronograf hiki iā ʻoe ke nānā i nā loko o kāu InfluxDB ma o Explore.

Me he mea lā he like like ka hana o Grafana, akā i ka ʻoiaʻiʻo, hiki ke hoʻonohonoho ʻia kahi dashboard ma Chronograf me nā kaomi ʻiole liʻiliʻi (ma ka manawa like e nānā ana i ka hiʻohiʻona ma laila), ʻoiai ma Grafana e loaʻa iā ʻoe ma hope a ma hope paha. e hoʻoponopono i ka hoʻonohonoho JSON (ʻoiaʻiʻo, hiki iā Chronograf ke hoʻouka i kāu dashas i hoʻonohonoho lima ʻia a hoʻoponopono iā lākou e like me JSON inā pono - akā ʻaʻole wau i hoʻopā iā lākou ma hope o ka hana ʻana iā lākou ma ka UI).

He ʻoi aku ka maikaʻi o Kibana no ka hana ʻana i nā dashboards a me nā mana no lākou, akā paʻakikī loa ka UX no ia mau hana.

Pono ka ʻike maikaʻi e hana i kahi dashboard kūpono. A ʻoiai ʻoi aku ka liʻiliʻi o ka hana o Chronograf dashboards, ʻoi aku ka maʻalahi o ka hana ʻana a me ka hana maʻalahi.

ʻO nā dashboards ponoʻī, ma waho o ke ʻano hiʻohiʻona ʻoluʻolu, ʻaʻohe ʻokoʻa me nā dashboards ma Grafana a i ʻole Kibana:

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Penei ke ano o ka puka aniani:

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

He mea nui e hoʻomaopopo, ma waena o nā mea ʻē aʻe, ʻo ka ʻike ʻana i nā ʻano o nā kahua i loko o ka waihona InfluxDB, hiki i ka chronograph ponoʻī ke kōkua maʻalahi iā ʻoe i ke kākau ʻana i kahi Query a i ʻole ke koho ʻana i ka hana hoʻohui kūpono e like me mean.

A ʻoiaʻiʻo, ʻoi aku ka maʻalahi o Chronograf no ka nānā ʻana i nā lāʻau. Penei kona ano:

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Ma ka maʻamau, ua hoʻohālikelike ʻia nā logs Influx e hoʻohana i ka syslog a no laila he ʻāpana koʻikoʻi ko lākou - ʻeha.

ʻOi aku ka maikaʻi o ka pakuhi ma luna; ma laila ʻoe e ʻike ai i nā hewa i kū mai a hōʻike koke ke kala inā ʻoi aku ka kiʻekiʻe o ka paʻakikī.

ʻElua mau manawa i hopu mākou i nā pōpoki koʻikoʻi ma kēia ala, e hele ana e nānā i nā lāʻau no ka pule i hala a ʻike i kahi ʻulaʻula.

ʻOiaʻiʻo, ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i nā makaʻala no ia mau hewa, ʻoiai ua loaʻa iā mākou nā mea āpau no kēia.

Ua hoʻololi mākou i kēia no kekahi manawa, akā i ke kaʻina hana o ka hoʻomākaukau ʻana i ka pailaka, ua ʻike ʻia ua loaʻa iā mākou nā hewa he nui (me nā ʻōnaehana like ʻole o ka loaʻa ʻole o ka pūnaewele LTE), ka mea i "spam" i ke kahawai Slack. nui loa, me ka pilikia ole, pomaikai nui.

ʻO ka hoʻonā kūpono ʻo ia ka hoʻoponopono ʻana i ka hapa nui o kēia mau ʻano hewa, hoʻoponopono i ka paʻakikī no lākou, a laila hiki ke hoʻomaopopo.

Ma kēia ala, e kau ʻia nā hewa hou a koʻikoʻi paha iā Slack. ʻAʻole lawa ka manawa no ka hoʻonohonoho ʻana i hāʻawi ʻia i nā lā palena paʻa.

Kalaukina

He mea kūpono hoʻi e ʻōlelo ʻia e kākoʻo ʻo Chronograf iā OAuth a me OIDC ma ke ʻano he hōʻoia.

He mea maʻalahi kēia, no ka mea hiki iā ʻoe ke hoʻopili maʻalahi iā ia i kāu kikowaena a hana i ka SSO piha.

I kā mākou hihia, ʻo ke kikowaena ʻahu kī - ua hoʻohana ʻia e hoʻopili i ka nānā ʻana, akā ua hoʻohana ʻia ke kikowaena like e hōʻoia i nā scooter a me nā noi i ka hope-hope.

“Admin”

ʻO ka mea hope aʻu e wehewehe ai ʻo kā mākou "admin panel" i kākau ʻia ma Vue.
ʻO ka maʻamau, he lawelawe kūʻokoʻa wale nō ia e hōʻike ana i ka ʻike scooter mai kā mākou ʻikepili ponoʻī, microservices, a me nā metric data mai InfluxDB i ka manawa like.

Eia hou, ua hoʻoneʻe ʻia nā hana hoʻomalu he nui ma laila, e like me ka hoʻomaka hou ʻana i ka pilikia a i ʻole ka wehe mamao ʻana i kahi laka no ka hui kākoʻo.

He mau palapala 'āina kekahi. Ua ʻōlelo mua wau ua hoʻomaka mākou me Grafana ma kahi o Chronograf - no ka mea, loaʻa nā palapala ʻāina ʻo Grafana ma ke ʻano o nā plugins, kahi e hiki ai iā mākou ke ʻike i nā hoʻonohonoho o nā scooter. ʻO ka mea pōʻino, ua kaupalena ʻia nā mana o nā widget palapala no Grafana, a ʻo ka hopena, ʻoi aku ka maʻalahi o ka kākau ʻana i kāu noi pūnaewele ponoʻī me nā palapala ʻāina i loko o kekahi mau lā, i ʻike ʻole ai i nā hoʻonohonoho i kēia manawa, akā hōʻike pū kekahi. ke ala i lawe ʻia e ka scooter, hiki iā ia ke kānana i ka ʻikepili ma ka palapala ʻāina, a me nā mea ʻē aʻe (nā hana āpau i hiki ʻole iā mākou ke hoʻonohonoho i kahi dashboard maʻalahi).

ʻO kekahi o nā pono i haʻi mua ʻia o Influx ka hiki ke hana maʻalahi i kāu metric ponoʻī.
ʻAe kēia e hoʻohana ʻia no nā ʻano hiʻohiʻona nui.

Ua hoʻāʻo mākou e hoʻopaʻa i nā ʻike pono āpau ma laila: ka hoʻopiʻi ʻana o ka pākaukau, ke kūlana laka, ka hana sensor, bluetooth, GPS, a me nā loiloi olakino ʻē aʻe.
Ua hōʻike mākou i kēia mau mea ma ka panel admin.

ʻOiaʻiʻo, ʻo ka mea koʻikoʻi koʻikoʻi no mākou ke kūlana hana o ka scooter - ʻoiaʻiʻo, nānā ʻo Influx iā ia iho a hōʻike iā ia me nā "kukui ʻōmaʻomaʻo" ma ka ʻāpana Nodes.

Hana ʻia kēia e ka hana kanaka make - ua hoʻohana mākou iā ia e hoʻomaopopo i ka hana o kā mākou pahu a hoʻouna i kēlā mau leka like iā Slack.

Ma ke ala, ua kapa mākou i nā scooter ma hope o nā inoa o nā huaʻōlelo mai The Simpsons - he mea maʻalahi ke hoʻokaʻawale iā lākou mai kekahi i kekahi.

A ma ka laulā, ua ʻoi aku ka leʻaleʻa ma kēia ʻano. Lohe mau ʻia nā ʻōlelo e like me "E nā kāne, ua make ʻo Smithers!"

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Anana kaula

He mea nui ia e hiki ai iā InfluxDB ke mālama i nā waiwai helu wale nō, e like me ka hihia me Victoria Metrics.

Me he mea lā ʻaʻole koʻikoʻi kēia - ma hope o nā mea a pau, ma waho o nā lāʻau, hiki ke mālama ʻia nā metric ma ke ʻano o nā helu (e hoʻohui wale i ka palapala ʻāina no nā mokuʻāina i ʻike ʻia - he ʻano enum)?

I kā mākou hihia, aia ma kahi liʻiliʻi hoʻokahi hiʻohiʻona kahi i hoʻohana nui ʻia nā metric string.
ʻO ia wale nō ka mea nāna i hoʻolako i kā mākou "kaumaha akamai" he ʻaoʻao ʻekolu, ʻaʻohe o mākou mana i ke kaʻina hana hoʻomohala a me ka ʻike e hiki ai i kēia mau mea hoʻoili.

ʻO ka hopena, ʻaʻole i kūpono ka API hoʻopiʻi, akā ʻo ka pilikia nui ʻaʻole hiki iā mākou ke hoʻomaopopo mau i ko lākou mokuʻāina.

ʻO kēia kahi i hele mai ai ʻo Influx e hoʻopakele. Ua kākau wale mākou i ke kūlana string i hiki mai iā mākou i loko o ka waihona waihona InfluxDB me ka ʻole o nā loli.

No kekahi manawa, loaʻa wale nā ​​waiwai e like me "online" a me "offline", e pili ana i ka ʻike i hōʻike ʻia ma kā mākou admin panel, a ua hoʻouna ʻia nā leka iā Slack. Eia nō naʻe, i kekahi manawa, hoʻomaka ʻia nā waiwai e like me "disconnected" ma laila.

E like me ka mea i ʻike ʻia ma hope, ua hoʻouna ʻia kēia kūlana ma hope o ka nalowale o ka pilina, inā ʻaʻole hiki i ka charger ke hoʻokumu i kahi pilina me ke kikowaena ma hope o kekahi mau hoʻāʻo.

No laila, inā mākou i hoʻohana i kahi hoʻonohonoho paʻa o nā waiwai, ʻaʻole paha mākou e ʻike i kēia mau loli i ka firmware i ka manawa kūpono.

A ma ka laulā, hāʻawi nā metric string i nā mea hiki ke hoʻohana; hiki iā ʻoe ke hoʻopaʻa i nā ʻike i loko o lākou. ʻOiai, ʻoiaʻiʻo, pono ʻoe e hoʻohana pono i kēia hāmeʻa.

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Ma waho aʻe o nā metric maʻamau, ua hoʻopaʻa pū mākou i ka ʻike wahi GPS ma InfluxDB. He mea maikaʻi loa kēia no ka nānā ʻana i kahi o nā scooter i kā mākou papa admin.
ʻOiaʻiʻo, ʻike mau mākou i kahi a me kahi scooter i ka manawa e pono ai mākou.

He mea maikaʻi loa kēia iā mākou ke ʻimi nei mākou i kahi scooter (e ʻike i nā hopena ma ka hopena).

Ka nānā ʻana i nā ʻoihana

Ma waho aʻe o nā scooter ponoʻī, pono mākou e nānā i kā mākou ʻoihana holoʻokoʻa (ʻoi aku ka nui).

ʻO kahi hoʻolālā maʻamau i like me kēia:

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

Inā mākou e hōʻike i kahi puʻupuʻu nānā maʻemaʻe, e like me kēia:

E hoʻihoʻi i kahi scooter nalo, a i ʻole ka moʻolelo o kahi nānā IoT

ʻO kā mākou makemake e nānā i ke ao:

  • ʻIkepili
  • ʻahu kī
  • Nā lawelawe liʻiliʻi

No ka mea aia kā mākou lawelawe kapuaʻi āpau ma Kubernetes, maikaʻi e hōʻiliʻili i ka ʻike e pili ana i kona mokuʻāina.

ʻO ka mea pōmaikaʻi, hiki iā Telegraf ma waho o ka pahu ke hōʻiliʻili i ka nui o nā metric e pili ana i ka mokuʻāina o ka hui Kubernetes, a hāʻawi koke ʻo Chronograf i nā dashboards nani no kēia.

Ua nānā nui mākou i ka hana o nā pods a me ka hoʻohana ʻana i ka hoʻomanaʻo. I ka hāʻule ʻana, nā mākaʻikaʻi ma Slack.

ʻElua ala e hahai ai i nā pods ma Kubernetes: DaemonSet a me Sidecar.
Ua wehewehe kikoʻī ʻia nā ʻano ʻelua ma kēia moʻomanaʻo moʻomanaʻo.

Ua hoʻohana mākou i Telegraf Sidecar a, ma kahi o nā metric, hōʻiliʻili i nā lāʻau pod.

I ko mākou hihia, pono mākou e ʻimi i nā lāʻau. ʻOiai hiki iā Telegraf ke huki i nā lāʻau mai ka Docker API, makemake mākou e loaʻa i kahi hōʻiliʻili like o nā lāʻau me kā mākou mau mea hope a hoʻonohonoho i ka syslog no nā ipu no kēia. ʻAʻole maikaʻi paha kēia hopena, akā ʻaʻohe hoʻopiʻi e pili ana i kāna hana a ua hōʻike maikaʻi ʻia nā lāʻau ma Chronograf.

Nānā nānā???

I ka hopena, ua kū mai ka nīnau kahiko o ka nānā ʻana i nā ʻōnaehana nānā, akā ʻoi aku ka maikaʻi, a i ʻole ka pōʻino, ʻaʻole lawa ka manawa no kēia.

ʻOiai hiki iā Telegraf ke hoʻouna maʻalahi i kāna mau ana ponoʻī a hōʻiliʻili paha i nā metric mai ka waihona InfluxDB no ka hoʻouna ʻana i ka Influx like a i ʻole ma kahi ʻē aʻe.

haʻina

He aha nā hopena a mākou i huki ai mai nā hopena o ka mea hoʻokele?

Pehea ʻoe e hana ai i ka nānā ʻana?

ʻO ka mea mua, ua hoʻokō piha ka waihona TICK i kā mākou mau manaʻolana a hāʻawi iā mākou i nā manawa hou aʻe ma mua o ka mea a mākou i manaʻo mua ai.

Aia nā hana a pau a mākou i makemake ai. ʻO nā mea a pau a mākou i hana ai me ia me ka pilikia ʻole.

'Ohanahana

ʻO ka pilikia nui me ka TICK stack i ka mana manuahi ʻo ka nele o nā hiki scaling. ʻAʻole kēia he pilikia no mākou.

ʻAʻole mākou i hōʻiliʻili i ka ʻikepili hoʻouka kikoʻī/helu, akā ua hōʻiliʻili mākou i ka ʻikepili mai kahi 30 scooter i ka manawa.

Ua hōʻiliʻili kēlā me kēia o lākou ma mua o ʻekolu kakini metric. I ka manawa like, ua hōʻiliʻili ʻia nā lāʻau mai nā mea hana. Loaʻa ka ʻohi ʻikepili a me ka hoʻouna ʻana i kēlā me kēia 10 kekona.

He mea nui e hoʻomaopopo ma hope o hoʻokahi pule a me ka hapa o ka pailaka, i ka wā i hoʻoponopono ʻia ai ka nui o nā "pilikia kamaliʻi" a ua hoʻoholo mua ʻia nā pilikia koʻikoʻi, pono mākou e hōʻemi i ke alapine o ka hoʻouna ʻana i ka ʻikepili i ke kikowaena. 30 kekona. Ua lilo kēia i mea pono no ka mea ua hoʻomaka koke ka nalo ʻana o kā mākou mau kāleka SIM LTE.

ʻO ka hapa nui o ke kaʻa i hoʻopau ʻia e nā lāʻau; ʻo nā metric ponoʻī, ʻoiai me kahi manawa 10-kekona, ʻaʻole i pau ia.

ʻO ka hopena, ma hope o kekahi manawa ua hoʻopau mākou i ka hōʻiliʻili ʻana i nā lāʻau ma nā polokalamu, no ka mea, ua ʻike mua ʻia nā pilikia kūikawā me ka ʻole o ka hōʻiliʻili mau.

I kekahi mau hihia, inā pono ka nānā ʻana i nā lāʻau, pili wale mākou ma o WireGuard ma VPN.

E hoʻohui pū wau ua hoʻokaʻawale ʻia kēlā me kēia kaʻawale kaʻawale mai kekahi i kekahi, a ʻo ka ukana i hōʻike ʻia ma luna nei ua pili wale nō ia no ke kaiapuni hana.

I ka hoʻomohala ʻana, ua hāpai mākou i kahi InfluxDB ʻokoʻa i hoʻomau i ka hōʻiliʻili ʻana i nā ʻikepili i kēlā me kēia 10 kekona a ʻaʻole mākou i loaʻa i nā pilikia hana.

TICK - kūpono no nā papahana liʻiliʻi a liʻiliʻi

Ma muli o kēia ʻike, manaʻo wau he kūpono ka waihona TICK no nā papahana liʻiliʻi a i ʻole nā ​​​​papahana i manaʻo ʻole ʻia kahi HighLoad.

Inā ʻaʻohe āu mau kaukani pods a i ʻole haneli mau mīkini, ʻo hoʻokahi InfluxDB instance e mālama pono i ka ukana.

I kekahi mau hihia, ʻoluʻolu paha ʻoe i ka Influx Relay ma ke ʻano he hopena kiʻekiʻe loa.

A, ʻoiaʻiʻo, ʻaʻohe mea e kāohi iā ʻoe mai ka hoʻonohonoho ʻana i ka scaling "vertical" a hoʻokaʻawale wale i nā kikowaena like ʻole no nā ʻano metric like ʻole.

Inā ʻaʻole ʻoe maopopo e pili ana i ka ukana i manaʻo ʻia ma nā lawelawe nānā, a i ʻole e hōʻoiaʻiʻo ʻia ʻoe e loaʻa / e loaʻa i kahi hoʻolālā "kaumaha", ʻaʻole wau e manaʻo e hoʻohana i ka mana manuahi o ka waihona TICK.

ʻOiaʻiʻo, ʻo kahi hopena maʻalahi ke kūʻai ʻOihana InfluxDB - akā eia ʻaʻole hiki iaʻu ke ʻōlelo i kekahi ʻano, no ka mea ʻaʻole wau i kamaʻāina i nā subtleties. Ma waho aʻe o ka ʻoiaʻiʻo he kumukūʻai loa a ʻaʻole kūpono i nā ʻoihana liʻiliʻi.

Ma kēia hihia, i kēia lā, makemake wau e nānā i ka ʻohi ʻana i nā metric ma o Victoria Metrics a me nā lāʻau e hoʻohana ana iā Loki.

ʻOiaʻiʻo, e hana hou wau i kahi hoʻopaʻa ʻana i ʻoi aku ka maʻalahi o Loki/Grafana (ma muli o kā lākou versatility ʻoi aʻe) ma mua o ka TICK i mākaukau, akā manuahi lākou.

nui: pili ka ʻike a pau i wehewehe ʻia ma ʻaneʻi no ka mana Influx 1.8, i kēia manawa e hoʻokuʻu ʻia ʻo Influx 2.0.

ʻOiai ʻaʻole i loaʻa iaʻu kahi manawa e hoʻāʻo ai i nā kūlana hakakā a paʻakikī ke huki i nā hopena e pili ana i ka hoʻomaikaʻi ʻana, ua ʻoi aku ka maikaʻi o ka interface, ua maʻalahi ka hoʻolālā (me ka ʻole kapacitor a me ka chronograf),
ua puka mai nā templates (“killer feature” - hiki iā ʻoe ke hahai i nā mea pāʻani ma Fortnite a loaʻa nā leka i ka wā e lanakila ai kāu mea pāʻani punahele i kahi pāʻani). Akā, ʻo ka mea pōʻino, i kēia manawa, ʻaʻohe mea koʻikoʻi o ka mana 2 a mākou i koho ai i ka mana mua - ʻaʻohe hōʻiliʻili lāʻau.

E ʻike ʻia kēia hana ma Influx 2.0, akā ʻaʻole hiki iā mākou ke ʻike i nā manawa palena, ʻoiai nā mea kokoke.

Pehea e hana ʻole ai i nā platform IoT (i kēia manawa)

I ka hopena, i ka hoʻokuʻu ʻana i ka pilote, ua hōʻuluʻulu mākou iā mākou iho i kā mākou pūʻulu IoT piha piha, me ka loaʻa ʻole o kahi koho e kūpono i kā mākou mau kūlana.

Eia naʻe, i kēia manawa ua loaʻa ia ma ka mana Beta OpenBalena - He mea minamina ʻaʻole ʻo ia i laila i ka wā i hoʻomaka ai mākou e hana i ka papahana.

Ua ʻoluʻolu mākou i ka hopena hopena a me ke kahua i hoʻokumu ʻia ma Ansible + TICK + WireGuard a mākou i hōʻuluʻulu ai iā mākou iho. Akā i kēia lā, makemake wau e nānā pono iā Balena ma mua o ka hoʻāʻo ʻana e kūkulu i kāu kahua IoT ponoʻī iā ʻoe iho.

No ka mea hiki iā ia ke hana i ka hapa nui o nā mea a mākou i hana ai, a he manuahi a wehe ʻia ʻo OpenBalena.

Ua ʻike ʻo ia pehea e hoʻouna ʻole ai i nā mea hou, akā ua kūkulu ʻia kekahi VPN i loko a hoʻonohonoho ʻia no ka hoʻohana ʻana i kahi kaiapuni IoT.

A i kēia manawa, ua hoʻokuʻu lākou i kā lākou lako paʻa, pili maʻalahi i ko lākou kaiaola.

E, pehea ka scooter nalo?

No laila, ua nalowale ka scooter, "Ralph", me ka ʻike ʻole ʻia.

Holo koke mākou e nānā i ka palapala 'āina ma kā mākou "admin panel", me ka ʻikepili metric GPS mai InfluxDB.

Mahalo i ka nānā ʻana i ka ʻikepili, ua hoʻoholo maʻalahi mākou ua haʻalele ka scooter i ke kahua kaʻa ma kahi o 21:00 i ka lā i hala, holo ma kahi o ka hapalua hola i kekahi wahi a hoʻopaʻa ʻia a hiki i ka hola 5 ma kahi kokoke i kekahi hale Kelemania.

Ma hope o ka hola 5, ʻaʻole i loaʻa ka ʻikepili nānā - ʻo ia hoʻi ua hoʻopau loa ʻia ka pākaukau hou, a i ʻole ua ʻike ka mea hoʻouka i ka pehea e wehe ai i ka lako akamai mai ka scooter.
ʻOiai naʻe, ua kāhea ʻia nā mākaʻi i ka helu wahi i loaʻa ai ka scooter. ʻAʻole i laila ka scooter.

Eia naʻe, pūʻiwa nō hoʻi ka mea nona ka hale i kēia, ʻoiai ua holo maoli ʻo ia i kēia moʻa moʻa mai ke keʻena mai i ka pō nei.

ʻO ka mea i ʻike ʻia, ua hōʻea mai kekahi o nā limahana kākoʻo i ke kakahiaka nui a lawe i ka scooter, me ka ʻike ʻana ua hoʻopau loa ʻia kāna pākaukau hou a lawe ʻia (ma ka wāwae) i kahi kaʻa. A ua hāʻule ka pākaukau ʻē aʻe ma muli o ka makū.

Ua ʻaihue mākou i ka scooter iā mākou iho. Ma ke ala, ʻaʻole wau ʻike pehea a ʻo wai ka mea i hoʻoponopono i ka hihia me ka hihia mākaʻi, akā ua hana maikaʻi ka nānā ʻana ...

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka