XNUMX 幎åãç§ãã¡ã¯ããã¢ãŒã·ã§ã³ ãããžã§ã¯ãã®ãã€ãããçãç«ã¡äžããŸããã
åœåããã®ãããžã§ã¯ã㯠Road-To-Barcelona ãšåŒã°ããŠããŸããããåŸã« Road-To-Berlin (ãããã£ãŠã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ R2B) ã«ãªããæçµçã«ã¯ xRide ãšåŒã°ããããã«ãªããŸããã
ãã®ãããžã§ã¯ãã®äž»ãªã¢ã€ãã¢ã¯æ¬¡ã®ãšããã§ããéäžåã®è»ãã¹ã¯ãŒã¿ãŒã®ã¬ã³ã¿ã« ãµãŒãã¹ (ããã¯ã¹ã¯ãŒã¿ãŒ/ã¹ã¯ãŒã¿ãŒã§ã¯ãªããã¹ã¯ãŒã¿ãŒãå¥åé»åãã€ã¯ã«ã€ããŠè©±ããŠããŸã) ã®ä»£ããã«ãåæ£åã¬ã³ã¿ã«ã®ãã©ãããã©ãŒã ãäœããããšèããŠããŸããã ç§ãã¡ãééããå°é£ã«ã€ããŠ
åœåããããžã§ã¯ãã¯èªåè»ã«çŠç¹ãåœãŠãŠããŸããããæéãã¡ãŒã«ãŒãšã®éåžžã«é·ãã³ãã¥ãã±ãŒã·ã§ã³ãããã³èšå€§ãªæ°ã®å®å šå¶éã®ãããé»åã¹ã¯ãŒã¿ãŒããã€ãããã«éžã°ããŸããã
ãŠãŒã¶ãŒã¯æºåž¯é»è©±ã« iOS ãŸã㯠Android ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããæ°ã«å ¥ã£ãã¹ã¯ãŒã¿ãŒã«è¿ã¥ããŸããããã®åŸãæºåž¯é»è©±ãšã¹ã¯ãŒã¿ãŒããã¢ããŒãã¢æ¥ç¶ã確ç«ããETH ã亀æããããŠãŒã¶ãŒã¯ã¹ã¯ãŒã¿ãŒã®é»æºããªã³ã«ããŠä¹ãå§ããããšãã§ããŸãããé»è©±ã æ è¡ã®çµããã«ã¯ãæºåž¯é»è©±äžã®ãŠãŒã¶ãŒã®ãŠã©ã¬ããããã€ãŒãµãªã¢ã ã䜿çšããŠæ è¡ä»£éãæ¯æãããšãå¯èœã§ããã
ã¹ã¯ãŒã¿ãŒã«å ããŠããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã«ãã¹ããŒãå é»åšãã衚瀺ããçŸåšã®ããããªãŒãäœäžããå Žåã«ãŠãŒã¶ãŒãèªåã§äº€æã§ããããã«ãªããŸããã
ããã¯ãæšå¹Ž XNUMX æã«ãã€ãã® XNUMX ã€ã®éœåžããã³ãšãã«ãªã³ã§éå§ããããã€ãããçã®å šäœçãªæ§åã§ãã
ãããŠããæ¥ããã³ã§æ©æã«ç§ãã¡ã®ãµããŒã ããŒã (ã¹ã¯ãŒã¿ãŒãæ£åžžã«åäœã§ããç¶æ ã«ç¶æããããã«çŸå Žã«åžžé§) ã«ãã¹ã¯ãŒã¿ãŒ XNUMX å°ã跡圢ããªãæ¶ãããšããéå ±ãå ¥ããŸããã
ã©ããã£ãŠèŠã€ããŠè¿ãã®ã§ããïŒ
ãã®èšäºã§ã¯ããã«ã€ããŠèª¬æããŸããããã®åã«ãç¬èªã® IoT ãã©ãããã©ãŒã ãã©ã®ããã«æ§ç¯ãããããã©ã®ããã«ç£èŠãããã«ã€ããŠèª¬æããŸãã
ã¹ã¯ãŒã¿ãŒãã€ã³ãã©ãå é»ã¹ããŒã·ã§ã³ãªã©ãäœãç£èŠããå¿ èŠããããŸãã?ãŸããã®çç±ã¯äœã§ãã?
ã§ã¯ããããžã§ã¯ãã§äœãç£èŠãããã£ãã®ã§ãããã?
ãŸã第äžã«ããããã¯ã¹ã¯ãŒã¿ãŒèªäœã§ããé»åã¹ã¯ãŒã¿ãŒèªäœã¯éåžžã«é«äŸ¡ãªã®ã§ãååãªæºåãã§ããŠããªããšãã®ãããªãããžã§ã¯ããç«ã¡äžããããšã¯ã§ããŸãããå¯èœã§ããã°ãã¹ã¯ãŒã¿ãŒã«é¢ããã§ããã ãå€ãã®æ å ± (å Žæãå é»ã¬ãã«ãªã©) ãåéããããšèããŠããŸãã ããªã©ã
ããã«ãããŒã¿ããŒã¹ããµãŒãã¹ãããã³ããããæ©èœããããã«å¿ èŠãªãã®ãã¹ãŠãªã©ãèªç€Ÿã® IT ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç¶æ ãç£èŠããããšèããŠããŸãã ãŸãããã¹ããŒãå é»åšããæ éããããããããªãŒãåãããããå Žåã«åããŠããã®ç¶æ ãç£èŠããå¿ èŠããããŸããã
åä»
ç§ãã¡ã®ã¹ã¯ãŒã¿ãŒãšã¯äœã§ãã?ãããŠããã«ã€ããŠäœãç¥ãããã£ãã®ã§ãã?
ãŸãæãéèŠãªããšã¯ GPS 座æšã§ããGPS 座æšã®ãããã§ãç§ãã¡ã¯åœŒããã©ãã«ããã®ããã©ãã移åããŠããã®ããç解ã§ããããã§ãã
次ã¯ããããªãŒã®å é»ã§ããããã«ãããã¹ã¯ãŒã¿ãŒã®å é»ãçµããã«è¿ã¥ããŠããããšãå€æããŠããžã¥ãŒãµãŒãéä¿¡ããããå°ãªããšããŠãŒã¶ãŒã«èŠåããããšãã§ããŸãã
ãã¡ãããããŒããŠã§ã¢ ã³ã³ããŒãã³ãã§äœãèµ·ãã£ãŠãããã確èªããããšãå¿ èŠã§ãã
- ãã«ãŒãã¥ãŒã¹ã¯æ©èœããŸããïŒ
- GPSã¢ãžã¥ãŒã«èªäœã¯æ©èœããŸããïŒ
- ãŸããGPS ã誀ã£ã座æšãéä¿¡ããŠã¹ã¿ãã¯ããå¯èœæ§ããããšããåé¡ãæ±ããŠããŸãããããã¯ã¹ã¯ãŒã¿ãŒã®è¿œå ãã§ãã¯ã«ãã£ãŠã®ã¿å€æã§ããŸããã
åé¡ã解決ããããã«ã§ããã ãæ©ããµããŒãã«éç¥ããŠãã ãã
- ãŸããGPS ã誀ã£ã座æšãéä¿¡ããŠã¹ã¿ãã¯ããå¯èœæ§ããããšããåé¡ãæ±ããŠããŸãããããã¯ã¹ã¯ãŒã¿ãŒã®è¿œå ãã§ãã¯ã«ãã£ãŠã®ã¿å€æã§ããŸããã
ãããŠæåŸã«ãOS ãšããã»ããµãŒããããã¯ãŒã¯ãšãã£ã¹ã¯ã®è² è·ããå§ãŸããããå
·äœçãªç¬èªã®ã¢ãžã¥ãŒã«ã®ãã§ãã¯ã§çµãããœãããŠã§ã¢ã®ãã§ãã¯ã§ã (
Hardware
ç§ãã¡ã®ãéãã®éšåã¯äœã§ãããïŒ
å¯èœãªéãçãæéæ ãšã©ããããããã¿ã€ãã³ã°ã®å¿
èŠæ§ãèæ
®ããŠãã³ã³ããŒãã³ãã®å®è£
ãšéžæã«æãç°¡åãªãªãã·ã§ã³ã§ãã Raspberry Pi ãéžæããŸããã
Rpièªäœã«å ããŠãã«ã¹ã¿ã ããŒãïŒæçµãœãªã¥ãŒã·ã§ã³ã®çµã¿ç«ãŠããã»ã¹ãã¹ããŒãã¢ããããããã«ç§ãã¡èªèº«ãéçºããŠäžåœã«æ³šæããŸããïŒãšã³ã³ããŒãã³ãã®ã»ããïŒã¹ã¯ãŒã¿ãŒã®ãªã³/ãªããåãæ¿ããããã®ïŒãªã¬ãŒããããŸãããããããªãŒå
é»ãªãŒããŒãã¢ãã ãã¢ã³ããã ããããã¹ãŠãå°çšã®ãxRideããã¯ã¹ãã«ã³ã³ãã¯ãã«ããã±ãŒãžããŸããã
ãŸããããã¯ã¹å šäœãè¿œå ã®ã¢ãã€ã«ããããªãŒããé»åãäŸçµŠãããããã«ãã®ã¢ãã€ã«ããããªãŒãã¹ã¯ãŒã¿ãŒã®ã¡ã€ã³ããããªãŒããé»åãäŸçµŠãããŠããããšã«ã泚æããŠãã ããã
ããã«ãããã€ã°ããã·ã§ã³ããŒãããªããäœçœ®ã«ãããšããã«ã¡ã€ã³ããããªãŒããªãã«ãªããããæ è¡çµäºåŸã§ãã¢ãã¿ãªã³ã°ã䜿çšããŠã¹ã¯ãŒã¿ãŒã®é»æºãå ¥ããããšãå¯èœã«ãªããŸããã
ããã«ãŒïŒ æ®éã® Linux ã§ããïŒ ãããŠå±é
ã¢ãã¿ãªã³ã°ã®è©±ã«æ»ããŸããããã©ãºããªãŒã«ã¯äœãããã§ãããã?
ç©çããã€ã¹ãžã®ã³ã³ããŒãã³ãã®ãããã€ãæŽæ°ãé ä¿¡ã®ããã»ã¹ãé«éåããããã«ç§ãã¡ãæåã«äœ¿çšããããšèããŠãããã®ã® XNUMX ã€ã¯ãDocker ã§ããã
æ®å¿µãªãããRPi äžã® Docker ã¯æ©èœããŸãããç¹ã«ãšãã«ã®ãŒæ¶è²»ã®ç¹ã§å€ãã®ãªãŒããŒããããããããšãããã«æããã«ãªããŸããã
ããã€ãã£ããOS ã䜿çšããå Žåã®éãã¯ãããã»ã©åŒ·åã§ã¯ãããŸããã§ããããå é»ãæ¥éã«å€±ãããå¯èœæ§ã«ã€ããŠèŠæããã«ã¯ååã§ããã
XNUMX çªç®ã®çç±ã¯ãGo/C/C++ ã§æžãããŠããªãã·ã¹ãã ã®å¯äžã®ã³ã³ããŒãã³ãã§ãã Node.js (åæã©ãã!) äžã®ããŒãã㌠ã©ã€ãã©ãªã® XNUMX ã€ã§ããã
ã©ã€ãã©ãªã®äœæè ã«ã¯ãããã€ãã£ããèšèªã§å®çšçãªããŒãžã§ã³ãæäŸããæéããããŸããã§ããã
ããŒãèªäœãäœããã©ãŒãã³ã¹ã®ããã€ã¹ã«ãšã£ãŠæãæŽç·Žããããœãªã¥ãŒã·ã§ã³ã§ã¯ãªãã ãã§ãªããã©ã€ãã©ãªèªäœãéåžžã«å€ãã®ãªãœãŒã¹ãæ¶è²»ããŠããŸããã
ããšã䜿ããããŠããDocker ã䜿çšãããšãªãŒããŒãããã倧ããããããšã«æ°ã¥ããŸããã ãã€ãã£ã OS ãåªå ãããã®äžã§çŽæ¥åäœããããšãéžæãããŸããã
OS
ãã®çµæããã¯ã OS ãšããŠæãåçŽãªãªãã·ã§ã³ãéžæããRaspbian (Pi çšã® Debian ãã«ã) ã䜿çšããŸããã
ç§ãã¡ã¯ãã¹ãŠã®ãœãããŠã§ã¢ã Go ã§äœæããŠãããããã·ã¹ãã å ã®ã¡ã€ã³ã®ããŒããŠã§ã¢ ãšãŒãžã§ã³ã ã¢ãžã¥ãŒã«ã Go ã§äœæããŸããã
GPSãBluetooth ã®æäœãå é»éã®èªã¿åããã¹ã¯ãŒã¿ãŒã®é»æºæå ¥ãªã©ãæ åœããã®ã¯åœŒã§ãã
å±éãã
ããã€ã¹ã«æŽæ°ãé ä¿¡ããããã®ã¡ã«ããºã (OTA) ãå®è£ ããå¿ èŠæ§ã«ã€ããŠã®çåãããã«çããŸããããšãŒãžã§ã³ã/ã¢ããªã±ãŒã·ã§ã³èªäœã®æŽæ°ãšãOS/ãã¡ãŒã ãŠã§ã¢èªäœã®æŽæ°ã®äž¡æ¹ã§ã (ãšãŒãžã§ã³ãã®æ°ããããŒãžã§ã³ã§ã¯ã«ãŒãã«ã®æŽæ°ãå¿ èŠã«ãªãå¯èœæ§ããããã)ãŸãã¯ã·ã¹ãã ã³ã³ããŒãã³ããã©ã€ãã©ãªãªã©ïŒã
åžå Žãããªãé·ãéåæããçµæãããã€ã¹ã«ã¢ããããŒããé ä¿¡ããããã®ãœãªã¥ãŒã·ã§ã³ãéåžžã«ããããããããšãããããŸããã
swupd/SWUpdate/OSTree ãªã©ã®æ¯èŒçåçŽã§äž»ã«æŽæ°/ãã¥ã¢ã«ããŒãæåã®ãŠãŒãã£ãªãã£ãããMender ã Balena ãªã©ã®æ¬æ Œçãªãã©ãããã©ãŒã ãŸã§ã
ãŸã第äžã«ãç§ãã¡ã¯ãšã³ãããŒãšã³ãã®ãœãªã¥ãŒã·ã§ã³ã«èå³ããããšå€æãããããããã«ãã©ãããã©ãŒã ãéžæããããšã«ãªããŸããã
èªäœ
ããããããã«ãããããããç§ãã¡ã¯æçµçã«åœŒãã®è£œåã䜿ãç¶ããããšã«ãªã£ãããšã«æ³šæããŠãã ããã
ãšããããšã§ãæçµçã«éžãã ã®ã¯ã
å
šäœçã«ãã©ãããã©ãŒã ã¯çŽ æŽãããèŠããŸãããMender Builder ã䜿çšããŠæ£ããããŒãžã§ã³ã®ãã¡ãŒã ãŠã§ã¢ãæ§ç¯ããã ãã§çŽ XNUMX é±éåããããŸããã
ãããŠããã®äœ¿çšæ¹æ³ã®è€éãã«æ²¡é ããã°ããã»ã©ããããå®å
šã«å°å
¥ããã«ã¯ããããŸã§ãããã¯ããã«å€ãã®æéãå¿
èŠã§ããããšãæããã«ãªããŸããã
æ²ããããšã«ãç· ãåããå³ããã£ããããMender ã®äœ¿çšãæŸæ£ããããã·ã³ãã«ãªãã®ãéžæããããåŸãªããªããŸããã
Ansible
ç§ãã¡ã®ç¶æ³ã«ãããæãç°¡åãªè§£æ±ºçã¯ãAnsible ã䜿çšããããšã§ããã å§ããã«ã¯ãããã€ãã®ãã¬ã€ããã¯ã§ååã§ããã
ãã®æ¬è³ªã¯ãåã«ãã¹ã (CI ãµãŒããŒ) ãã ssh çµç±ã§ã©ãºããªãŒã«æ¥ç¶ããæŽæ°ãé åžãããšããããšã§ããã
åœåã¯ãã¹ãŠãåçŽã§ãããããã€ã¹ãšåããããã¯ãŒã¯äžã«ããå¿ èŠãããã泚ãã®ã¯ Wi-Fi çµç±ã§è¡ãããŸããã
ãªãã£ã¹ã«ã¯ãåçŽã« XNUMX å°ã®ãã¹ãçšã©ãºããªãŒãåããããã¯ãŒã¯ã«æ¥ç¶ãããŠãããåããã€ã¹ã«ã¯ Ansible Inventory ã§ãæå®ãããéç IP ã¢ãã¬ã¹ããããŸããã
ç£èŠãšãŒãžã§ã³ãããšã³ãããã€ã¹ã«é ä¿¡ããã®ã¯ Ansible ã§ãã
3G / LTE
æ®å¿µãªãããAnsible ã®ãã®ãŠãŒã¹ã±ãŒã¹ã¯ãå®éã®ã¹ã¯ãŒã¿ãŒãç»å Žããåã¯éçºã¢ãŒãã§ã®ã¿åäœã§ããŸããã
ãåç¥ã®ãšãããã¹ã¯ãŒã¿ãŒã¯ XNUMX å°ã® Wi-Fi ã«ãŒã¿ãŒã«æ¥ç¶ãããŠãããããããã¯ãŒã¯äžã®æŽæ°ãåžžã«åŸ æ©ããŠããããã§ãã
å®éã«ã¯ãã¹ã¯ãŒã¿ãŒã¯ã¢ãã€ã« 3G/LTE 以å€ã«ã¯ãŸã£ããæ¥ç¶ã§ããŸãã (ãããŠãåžžã«æ¥ç¶ã§ããããã§ã¯ãããŸãã)ã
ããã«ãããæ¥ç¶é床ãé ããªã£ãããéä¿¡ãäžå®å®ã«ãªã£ãããããªã©ãããã«å€ãã®åé¡ãå¶éãçããŸãã
ããããæãéèŠãªããšã¯ã3G/LTE ãããã¯ãŒã¯ã§ã¯ããããã¯ãŒã¯ã«å²ãåœãŠãããéç IP ã«åçŽã«äŸåããããšã¯ã§ããªããšããããšã§ãã
ãã®åé¡ã¯äžéšã® SIM ã«ãŒã ãããã€ããŒã«ãã£ãŠéšåçã«è§£æ±ºãããŠãããéç IP ã¢ãã¬ã¹ãæ〠IoT ããã€ã¹çšã«èšèšãããç¹å¥ãª SIM ã«ãŒãããããŸãã ããããç§ãã¡ã¯ãã®ãã㪠SIM ã«ãŒãã«ã¢ã¯ã»ã¹ã§ãããIP ã¢ãã¬ã¹ã䜿çšã§ããŸããã§ããã
ãã¡ãããConsul ã®ãããªå Žæ㧠IP ã¢ãã¬ã¹ã®ç»é²ãã€ãŸããµãŒãã¹æ€åºãè¡ããšããã¢ã€ãã¢ããããŸãããããã¹ãã§ã¯ IP ã¢ãã¬ã¹ãé »ç¹ã«å€æŽãããå¯èœæ§ããããéåžžã«äžå®å®ã«ãªãå¯èœæ§ããã£ãããããã®ãããªã¢ã€ãã¢ã¯æŸæ£ããªããã°ãªããŸããã§ããã
ãã®ãããã¡ããªã¯ã¹ãé ä¿¡ããããã®æã䟿å©ãªäœ¿çšæ³ã¯ãå¿ èŠãªã¡ããªã¯ã¹ãååŸããããã«ããã€ã¹ã«ã¢ã¯ã»ã¹ãããã« ã¢ãã«ã䜿çšããã®ã§ã¯ãªããããã€ã¹ãããµãŒããŒã«ã¡ããªã¯ã¹ãçŽæ¥é ä¿¡ããããã·ã¥åã¢ãã«ã䜿çšããããšã«ãªããŸãã
VPN
ãã®åé¡ã®è§£æ±ºçãšããŠãç§ãã¡ã¯ VPN ãéžæããŸããã
ã·ã¹ãã èµ·åæã®ã¯ã©ã€ã¢ã³ãïŒã¹ã¯ãŒã¿ãŒïŒã¯VPNãµãŒããŒã«æ¥ç¶ããæ¥ç¶ããããšãã§ããŸããã ãã®ãã³ãã«ã¯æŽæ°ãé ä¿¡ããããã«äœ¿çšãããŸããã
çè«çã«ã¯ãåããã³ãã«ãã¢ãã¿ãªã³ã°ã«äœ¿çšã§ããŸããããã®ãããªæ¥ç¶ã¯åçŽãªããã·ã¥ãããè€éã§ä¿¡é Œæ§ãäœããªããŸãã
ã¯ã©ãŠããªãœãŒã¹
æåŸã«ãã¯ã©ãŠã ãµãŒãã¹ãšããŒã¿ããŒã¹ã«ã¯ Kubernetes ã䜿çšããŠãããããããããç£èŠããå¿
èŠããããŸããããã«ãããã¯ã©ã¹ã¿ãŒå
ã§ã®ç£èŠã®å±éãã§ããã ãç°¡åã«ãªãããšãçæ³çã§ãã çæ³çã«ã¯ã
äžãããã
ãµãã説æã¯æŽçã§ããããã§ããæåŸã«å¿ èŠãªãã®ã®ãªã¹ããäœæããŸãããã
- éçºããã»ã¹äžã«ãã§ã«ã¢ãã¿ãªã³ã°ãå¿ èŠã§ãããããè¿ éãªè§£æ±ºç
- ããªã¥ãŒã /æ°é - å€ãã®ææšãå¿ èŠ
- ãã°åéãå¿ èŠã§ã
- ä¿¡é Œæ§ - ç«ã¡äžããæåãããã«ã¯ããŒã¿ãéèŠã§ã
- ãã«ã¢ãã«ã¯äœ¿çšã§ããŸãã - ããã·ã¥ãå¿ èŠã§ã
- ããŒããŠã§ã¢ã ãã§ãªãã¯ã©ãŠããäžå çã«ç£èŠããå¿ èŠããã
æçµçãªã€ã¡ãŒãžã¯ãããªæãã«ãªããŸãã
ã¹ã¿ãã¯ã®éžæ
ããã§ãç£èŠã¹ã¿ãã¯ã®éžæãšããåé¡ã«çŽé¢ããŸããã
ãŸãæåã«ããã¹ãŠã®èŠä»¶ãåæã«ã«ããŒããåæã«ããŒãºã«åãããŠäœ¿çšââæ¹æ³ã調æŽã§ããæè»æ§ãåãããæãå®å šãªãªãŒã«ã€ã³ã¯ã³ ãœãªã¥ãŒã·ã§ã³ãæ¢ããŠããŸããã ããã§ããããŒããŠã§ã¢ãã¢ãŒããã¯ãã£ãæéã«ãã£ãŠå€ãã®å¶éã課ããããŠããŸããã
ã®ãããªæ¬æ Œçãªã·ã¹ãã ãã¯ãããç£èŠãœãªã¥ãŒã·ã§ã³ã¯å€çš®å€æ§ã§ãã
åœåãåŸè ã¯ç§ãã¡ã«ãšã£ãŠçæ³çãªãœãªã¥ãŒã·ã§ã³ã®ããã«æããŸããããå®å šãªç£èŠãã§ããªããã®ãããã°ãç¡æçã®æ©èœãå€§å¹ ã«å¶éãããŠãããã®ããããåã«ç§ãã¡ã®ãèŠæããã«ããŒã§ããªãã£ãããã·ããªãªã«é©åããã»ã©æè»æ§ããªãã£ãããããã®ããããŸããã åã«æ代é ãã«ãªã£ãŠãããã®ããããŸãã
å€æ°ã®åæ§ã®ãœãªã¥ãŒã·ã§ã³ãåæããçµæãåæ§ã®ã¹ã¿ãã¯ãèªåã§çµã¿ç«ãŠãæ¹ãç°¡åãã€è¿ éã§ãããšããçµè«ã«ããã«éããŸããã ã¯ããå®å šã«æ¢è£œã®ããªãŒã管çãã©ãããã©ãŒã ãå°å ¥ãããããå°ãè€éã«ãªããŸããã劥åããå¿ èŠã¯ãããŸããã
ã»ãŒç¢ºå®ã«ãèšå€§ãªæ°ã®ãœãªã¥ãŒã·ã§ã³ã®äžã«ãç§ãã¡ã«å®å šã«é©åããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ããã§ã«ååšããŸãããç§ãã¡ã®å Žåã¯ãç¹å®ã®ã¹ã¿ãã¯ãèªåã§çµã¿ç«ãŠãŠãèªåçšã«ãã«ã¹ã¿ãã€ãºããã»ããã¯ããã«é«éã§ãããæ¢è£œåã®ãã¹ãã
ããããã¹ãŠãèæ ®ããŠãç§ãã¡ã¯ç£èŠãã©ãããã©ãŒã å šäœãèªåãã¡ã§çµã¿ç«ãŠãããšã¯ãããæè»ã«æ§æã§ããæ©èœãåãããæãæ©èœçãªãæ¢è£œãã¹ã¿ãã¯ãæ¢ããŠããŸããã
(B)ãšã«ã¯?
å®éã«æ€èšãããæåã®ãœãªã¥ãŒã·ã§ã³ã¯ãããç¥ããã ELK ã¹ã¿ãã¯ã§ããã
ãã¹ãŠã¯ Beats ããå§ãŸãã®ã§ãå®éã«ã¯ BELK ãšåŒã¶ã¹ãã§ãã -
ãã¡ãããELK ã¯ç£èŠã®åéã§æãæåã§åŒ·åãªãœãªã¥ãŒã·ã§ã³ã® XNUMX ã€ã§ããããã°ã®åéãšåŠçã®åéã§ã¯ããã«éèŠã§ãã
ç§ãã¡ã¯ãELK ããã°ã®åéãšãPrometheus ããååŸããã¡ããªã¯ã¹ã®é·æä¿åã«äœ¿çšããããšãæå³ããŠããŸããã
èŠèŠåã«ã¯ Grafan ã䜿çšã§ããŸãã
å®éãæ°ãã ELK ã¹ã¿ãã¯ã¯ã¡ããªã¯ã¹ãç¬ç«ããŠåéã§ã (metricbeat)ãKibana ã¯ã¡ããªã¯ã¹ã衚瀺ããããšãã§ããŸãã
ãããããã§ããELK ã¯åœåãã°ããæé·ããããããããŸã§ã®ãšããã¡ããªã¯ã¹ã®æ©èœã«ã¯å€ãã®é倧ãªæ¬ ç¹ããããŸãã
- ããã¡ããŠã¹ãããå€§å¹ ã«é ã
- ããã¡ããŠã¹ãããã¯ããã«å°ãªãå Žæã«çµ±åãããŸã
- ã¢ã©ãŒããèšå®ããã®ã¯é£ãã
- ã¡ããªã¯ã¹ã¯å€ãã®ã¹ããŒã¹ãå æããŸã
- Kiban ã§ã®ã¡ããªã¯ã¹ã䜿çšããããã·ã¥ããŒãã®èšå®ã¯ãGrafan ãããã¯ããã«è€éã§ã
äžè¬ã«ãELK ã®ã¡ããªã¯ã¹ã¯éããä»ã®ãœãªã¥ãŒã·ã§ã³ã»ã©äŸ¿å©ã§ã¯ãããŸãããçŸåšããã®ã¡ããªã¯ã¹ã«ã¯ Prometheus ã ãã§ãªããTSDBãVictoria MetricsãCortex ãªã©ããããŸãã ãã¡ãããæ¬æ ŒçãªãªãŒã«ã€ã³ã¯ã³ãœãªã¥ãŒã·ã§ã³ãããã«ã§ãå®çŸãããã®ã§ãããmetricbeat ã®å Žåã¯åŠ¥åãå€ãããŸããã
ãããŠãELK ã¹ã¿ãã¯èªäœã«ãããã€ãã®å°é£ãªç¬éããããŸãã
- ããªã倧éã®ããŒã¿ãåéãããšéããªããå Žåã«ãã£ãŠã¯éåžžã«éããªãããšããããŸã
- ãããã調çããæ¹æ³ãç¥ããå¿ èŠããããŸã - ã¹ã±ãŒã«ã調æŽããå¿ èŠããããŸããããããè¡ãã®ã¯ç°¡åã§ã¯ãããŸãã
- å¿ èŠãªãã®ãåãé€ããç¡æããŒãžã§ã³ - ç¡æããŒãžã§ã³ã«ã¯éåžžã®ã¢ã©ãŒãããªããéžææã«èªèšŒããããŸããã§ããã
æè¿ãæåŸã®ç¹ãè¯ããªã£ãŠããŠãããšèšããããåŸãŸããã
ãããããã®ãœãªã¥ãŒã·ã§ã³ãå°å
¥ããããšããæç¹ã§ã¯ãã¢ã©ãŒãã¯ãŸã£ãããããŸããã§ããã
ãããããElastAlert ãä»ã®ã³ãã¥ãã㣠ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠäœããæ§ç¯ããããšããããšãã§ããŸããããããã§ãä»ã®ä»£æ¿æ¡ãæ€èšããããšã«ããŸããã
ãã - ã°ã©ãã¡ã - ããã¡ããŠã¹
çŸæç¹ã§ã¯ãè¯ã解決çã¯ãã¡ããªã¯ã¹ ãããã€ããŒãšã㊠Prometheusããã°çšã« LokiãèŠèŠåã«ã¯åã Grafana ã䜿çšããããšã®ã¿ã«åºã¥ããç£èŠã¹ã¿ãã¯ãæ§ç¯ããããšã§ãã
æ®å¿µãªããããããžã§ã¯ãã®è²©å£²ãã€ãããéå§æç¹ïŒ19幎0.3æïœ0.4æïŒã§ã¯ãLokiã¯ãŸã ããŒã¿çXNUMXïœXNUMXã§ãããéçºéå§æç¹ã§ã¯è£œåçã®ãœãªã¥ãŒã·ã§ã³ãšããŠèæ ®ããããšãã§ããŸããã§ãããå šç¶ã
ç§ã¯æ¬æ Œçãªãããžã§ã¯ãã§å®éã« Loki ã䜿çšããçµéšã¯ãŸã ãããŸããããPromtail (ãã°åéãšãŒãžã§ã³ã) ã¯ãKubernetes ã®ãã¢ã¡ã¿ã«ãšãããã®äž¡æ¹ã§ããŸãæ©èœãããšèšããŸãã
ãã£ãã¯
ãããããELK ã¹ã¿ãã¯ã«ä»£ããæã䟡å€ã®ãã (å¯äžã®?) ãã«æ©èœã®ä»£æ¿åã¯ãçŸåšãTICK ã¹ã¿ã㯠(TelegrafãInfluxDBãChronografãKapacitor) ãšããåŒã°ããŸããã
以äžã§ãã¹ãŠã®ã³ã³ããŒãã³ãã«ã€ããŠè©³ãã説æããŸãããäžè¬çãªèãæ¹ã¯æ¬¡ã®ãšããã§ãã
- Telegraf - ã¡ããªã¯ã¹ãåéãããšãŒãžã§ã³ã
- InfluxDB - ã¡ããªã¯ã¹ ããŒã¿ããŒã¹
- Kapacitor - ã¢ã©ãŒãçšã®ãªã¢ã«ã¿ã€ã ã¡ããªã¯ã¹ ããã»ããµ
- Chronograf - èŠèŠåã®ããã® Web ããã«
InfluxDBãKapacitorãããã³ Chronograf ã«ã€ããŠã¯ããããããããã€ããããã«äœ¿çšããå ¬åŒã® Helm ãã£ãŒãããããŸãã
Influx 2.0 (ããŒã¿ç) ã®ææ°ããŒãžã§ã³ã§ã¯ãKapacitor ãš Chronograf ã InfluxDB ã®äžéšãšãªããåå¥ã«ååšããªããªã£ãããšã«æ³šæããŠãã ããã
ãã¬ã°ã©ã
圌ã¯ãããããã®ã倧éã«ç£èŠã§ããŸãã
ãµãŒããŒ
ããã«ã¯å€ãã®åªããå©ç¹ããããŸãã
- é«éãã€è»œé (Go ã§æžãããŠãã)
- æå°éã®ãªãœãŒã¹ãæ¶è²»ããŸã
- ããã©ã«ãã§ã¡ããªã¯ã¹ãããã·ã¥ãã
- å¿
èŠãªãã¹ãŠã®ã¡ããªã¯ã¹ãåéããŸã
- èšå®ãªãã®ã·ã¹ãã ã¡ããªã¯ã¹
- ã»ã³ãµãŒããã®æ å ±ãªã©ã®ããŒããŠã§ã¢ã¡ããªã¯ã¹
- ç¬èªã®ã¡ããªã¯ã¹ãè¿œå ããã®ã¯éåžžã«ç°¡åã§ã
- ããã«äœ¿ããè±å¯ãªãã©ã°ã€ã³
- ãã°ãåéããŸã
ç§ãã¡ã«ãšã£ãŠããã·ã¥ ã¡ããªã¯ã¹ã¯å¿ èŠã§ãã£ãããããã®ä»ã®å©ç¹ã¯ãã¹ãŠæ¥œããè¿œå 以äžã®ãã®ã§ããã
ãšãŒãžã§ã³ãèªäœã«ãããã°ã®åéãããã°ãèšé²ããããã«è¿œå ã®ãŠãŒãã£ãªãã£ãæ¥ç¶ããå¿ èŠããªããããéåžžã«äŸ¿å©ã§ãã
Influx ã¯ã次ã®å Žåã«ãã°ãæäœããããã®æã䟿å©ãªãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
Telegraf ã¯ãICK ã¹ã¿ãã¯ã®æ®ãã®éšåã䜿çšããªãå Žåã§ããäžè¬ã«ã¡ããªã¯ã¹ãåéããããã®åªãããšãŒãžã§ã³ãã§ãã
ã»ãšãã©ã©ãã«ã§ãã¡ããªã¯ã¹ãæžã蟌ãããšãã§ãããããå€ãã®äººãå©äŸ¿æ§ã®ããã« ELK ããã®ä»ã®ããŸããŸãªæç³»åããŒã¿ããŒã¹ãšçµã¿åãããŠããŸãã
æµå ¥DB
InfluxDB 㯠TICK ã¹ã¿ãã¯ã®äž»èŠãªã³ã¢ãã€ãŸãã¡ããªã¯ã¹ã®æç³»åããŒã¿ããŒã¹ã§ãã
ã¡ããªã¯ã¹ã«å ããŠãInflux ã¯ãã°ãä¿åã§ããŸãããã ããæ¬è³ªçã«ãInflux ã®ãã°ã¯ã¡ããªã¯ã¹ãšãŸã£ããåãã§ãããéåžžã®æ°å€ã€ã³ãžã±ãŒã¿ã®ä»£ããã«ãäž»ãªæ©èœããã° ããã¹ãã®è¡ã«ãã£ãŠå®è¡ãããã ãã§ãã
InfluxDB ã Go ã§æžãããŠããã(æã匷åã§ã¯ãªã) ã¯ã©ã¹ã¿ãŒäžã® ELK ãšæ¯èŒããŠã¯ããã«é«éã«åäœããããã§ãã
Influx ã®åªããå©ç¹ã® XNUMX ã€ã¯ãããŒã¿ ã¯ãšãªçšã®éåžžã«äŸ¿å©ã§è±å¯ãª API ãå«ãŸããŠãããç§ãã¡ã¯ãããéåžžã«ç©æ¥µçã«äœ¿çšããŸããã
æ¬ ç¹ - $$$ ãŸãã¯ã¹ã±ãŒãªã³ã°?
TICK ã¹ã¿ãã¯ã«ã¯ãç§ãã¡ãçºèŠããæ¬ ç¹ã XNUMX ã€ã ããããŸãã ããŒãªã³ã ããã«ã
ææçã«ãã£ãŠç¡æçã«ã¯ãªããã®ã¯äœã§ãã?
ç§ãã¡ãç解ã§ããéããTICK ã¹ã¿ãã¯ã®ææããŒãžã§ã³ãšç¡æããŒãžã§ã³ã®å¯äžã®éãã¯ã¹ã±ãŒãªã³ã°æ©èœã§ãã
ã€ãŸããé«å¯çšæ§ãåããã¯ã©ã¹ã¿ãŒãæ§ç¯ã§ããã®ã¯ã
æ¬æ Œç㪠HA ãå¿
èŠãªå Žåã¯ãæéãæ¯æãããæŸèæã䜿çšããå¿
èŠããããŸãã ã³ãã¥ãã㣠ãœãªã¥ãŒã·ã§ã³ãããã€ããããŸããããšãã°ã
æ®å¿µã§ãããäž¡æ¹ãšãæŸæ£ãããããã§ããæ°ããã³ãããã¯ãããŸãããåé¡ã¯ãå€ãã®ç¹ãç°ãªã Influx 2.0 ã®æ°ããããŒãžã§ã³ã®è¿æ¥ãªãªãŒã¹ãäºå®ãããŠããããã ãšæããŸã (æ å ±ã¯ãããŸãã)ãŸã ã¹ã±ãŒãªã³ã°äžã§ãïŒã
å
¬åŒã«ã¯ç¡æçããããŸã
ãã¹ãŠã®ããŒã¿ã¯ããŒã ãã©ã³ãµãŒã®èåŸã«ãããã¹ãŠã® InfluxDB ã€ã³ã¹ã¿ã³ã¹ã«æžã蟌ãŸããããã§ãã
圌ã¯ããã€ãæã£ãŠããŸã
(ãã㯠InfluxDB ã®éåžžã®äœæ¥äžã«èªåçã«è¡ãããŸã)ã
ãã®ã»ã
ãã¯ããªã¢ã¡ããªã¯ã¹?
ãã®çµæãææã¹ã±ãŒãªã³ã°ä»¥å€ã®ãã¹ãŠã«ãã㊠TICK ã¹ã¿ãã¯ã«å®å šã«æºè¶³ããŠããã«ãããããããæ®ãã® T_CK ã³ã³ããŒãã³ããæ®ãããŸãŸãInfluxDB ããŒã¿ããŒã¹ã眮ãæããããšãã§ããç¡æã®ãœãªã¥ãŒã·ã§ã³ããªããã©ããã確èªããããšã«ããŸããã
æç³»åããŒã¿ããŒã¹ã¯æ°å€ããããŸãããæãææãªãã®ã¯ Victoria Metrics ã§ããããã«ã¯å€ãã®å©ç¹ããããŸãã
- å°ãªããšãçµæã«ããã°ãéããŠç°¡å
ãã³ãããŒã¯ - ã¯ã©ã¹ã¿ãŒããŒãžã§ã³ããããçŸåšã§ã¯è¯ãã¬ãã¥ãŒããããŸã
- 圌女ã¯ã·ã£ãŒãã§ãã
- InfluxDBãããã³ã«ããµããŒã
ç§ãã¡ã¯ Victoria ãããŒã¹ã«ããå®å šãªã«ã¹ã¿ã ã¹ã¿ãã¯ãæ§ç¯ããã€ããã¯ãªããInfluxDB ã®ããããã€ã³ä»£æ¿åãšããŠäœ¿çšã§ããããšãäž»ãªåžæã§ããã
æ®å¿µãªãããInfluxDB ãããã³ã«ããµããŒããããŠããã«ãããããããããã¯äžå¯èœã§ããInfluxDB ãããã³ã«ã¯ã¡ããªã¯ã¹ã®èšé²ã«ã®ã¿æ©èœããŸãããå€éšãã§å©çšã§ããã®ã¯ Prometheus API ã®ã¿ã§ããã€ãŸããããã« Chronograf ãèšå®ããããšã¯ã§ããŸããã
ããã«ãã¡ããªã¯ã¹ã§ã¯æ°å€ã®ã¿ããµããŒããããŠããŸã (ã«ã¹ã¿ã ã¡ããªã¯ã¹ã«ã¯æååå€ã䜿çšããŸãã - 詳现ã«ã€ããŠã¯ã»ã¯ã·ã§ã³ã§èª¬æããŸã)
æããã«ãåãçç±ã§ãVM 㯠Influx ã®ããã«ãã°ãä¿åã§ããŸããã
ãŸããæé©ãªãœãªã¥ãŒã·ã§ã³ãæ¢ããŠããæç¹ã§ã¯ãVictoria Metrics ã¯ãŸã ããã»ã©æ®åããŠããããããã¥ã¡ã³ããã¯ããã«å°ãããæ©èœã匱ãã£ãããšã«ã泚æããŠãã ããã
(ã¯ã©ã¹ã¿ãŒã®ããŒãžã§ã³ãšã·ã£ãŒãã£ã³ã°ã®è©³çŽ°ãªèª¬æã¯èŠããŠããŸãã)ã
ããŒã¹ã®éžæ
ãã®çµæããã€ãããã§ã¯åŒãç¶ãåäžã® InfluxDB ããŒãã«å¶éããããšã決å®ãããŸããã
ãã®éžæã«ã¯äž»ãªçç±ãããã€ããããŸããã
- TICK ã¹ã¿ãã¯ã®æ©èœå šäœããšãŠãæ°ã«å ¥ããŸãã
- ãã§ã«å°å ¥ã«æåããŠãããããŸããããŸãã
- ç· ãåãã¯è¿«ã£ãŠãããä»ã®ãªãã·ã§ã³ããã¹ãããæéã¯ããŸãæ®ãããŠããŸããã§ããã
- ããã»ã©éãè² è·ã¯äºæ³ããŠããŸããã§ãã
ãã€ãããã®æåã®ãã§ãŒãºã§ã¯å€ãã®ã¹ã¯ãŒã¿ãŒããããŸããã§ããããéçºäžã®ãã¹ãã§ã¯ããã©ãŒãã³ã¹ã®åé¡ã¯æããã«ãªããŸããã§ããã
ãããã£ãŠããã®ãããžã§ã¯ãã§ã¯ãã¹ã±ãŒãªã³ã°ã®å¿ èŠããªããXNUMX ã€ã® Influx ããŒãã§ååã§ãããšå€æããŸãã (æåŸã®çµè«ãåç §)ã
ã¹ã¿ãã¯ãšããŒã¹ã決å®ããŸããã次ã«ãTICK ã¹ã¿ãã¯ã®æ®ãã®ã³ã³ããŒãã³ãã«ã€ããŠèª¬æããŸãã
ã³ã³ãã³ãµ
Kapacitor ã¯ãããŒã¿ããŒã¹ã«å ¥åãããã¡ããªã¯ã¹ããªã¢ã«ã¿ã€ã ã§ç£èŠããã«ãŒã«ã«åºã¥ããŠããŸããŸãªã¢ã¯ã·ã§ã³ãå®è¡ã§ãããµãŒãã¹ã§ãã TICK ã¹ã¿ãã¯ã®äžéšã§ãã
äžè¬ã«ãããã¯æœåšçãªç°åžžè¿œè·¡ãšæ©æ¢°åŠç¿ã®ããã®ããŒã«ãšããŠäœçœ®ä»ããããŠããŸãã (ãããã®æ©èœãéèŠããããã©ããã¯ããããŸãã)ãæãäžè¬çãªäœ¿çšäŸã¯ãããäžè¬çãªã¢ã©ãŒãã§ãã
ãããéç¥ã«äœ¿çšããæ¹æ³ã§ãã ç¹å®ã®ã¹ã¯ãŒã¿ãŒããªãã©ã€ã³ã«ãªã£ããšãã« Slack ã¢ã©ãŒããèšå®ããã¹ããŒãå é»åšãéèŠãªã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ã³ããŒãã³ãã«å¯ŸããŠãåãããšãè¡ããŸããã
ããã«ãããåé¡ã«è¿ éã«å¯Ÿå¿ã§ããã ãã§ãªãããã¹ãŠãæ£åžžã«æ»ã£ããšããéç¥ãåãåãããšãå¯èœã«ãªããŸããã
ç°¡åãªäŸ: ãããã¯ã¹ãã«é»åãäŸçµŠããè¿œå ã®ããããªãŒãæ éããããäœããã®çç±ã§é»åãåããå Žåãæ°ããããããªãŒãåãä»ããã ãã§ããã°ãããããšã¹ã¯ãŒã¿ãŒã®æ©èœãå埩ãããšããéç¥ãåãåãããšãã§ããŸãã
Influx 2.0 ã§ã¯ãKapacitor ã DB ã®äžéšã«ãªããŸãã
ã¯ããã°ã©ã
ãããŸã§ããŸããŸãªç£èŠ UI ãœãªã¥ãŒã·ã§ã³ãèŠãŠããŸããããæ©èœãš UX ã®ç¹ã§ Chronograf ã«å¹æµãããã®ã¯ãªããšèšããŸãã
å¥åŠãªããšã«ãWeb ã€ã³ã¿ãŒãã§ã€ã¹ãšã㊠Grafan ã䜿çšã㊠TICK ã¹ã¿ãã¯ã®äœ¿çšãéå§ããŸããã
ãã®æ©èœã«ã€ããŠã¯èª¬æããŸãããããããããã®ãã«ã¹ã¿ãã€ãºã§ããå¹
åºãå¯èœæ§ã¯èª°ããç¥ã£ãŠããŸãã
ãã ããGrafana ã¯äŸç¶ãšããŠå®å šã«æ±çšçãªæ©åšã§ãããChronograf ã¯äž»ã« Influx ã§äœ¿çšããããã«èšèšãããŠããŸãã
ãããŠãã¡ããããã®ãããã§ãã¯ããã°ã©ãã¯ããã«è³¢ããŠäŸ¿å©ãªæ©èœãæèŒã§ããããã«ãªããŸããã
ãããããChronograf ã䜿çšããäž»ãªäŸ¿å©ãªç¹ã¯ãExplore ãéã㊠InfluxDB ã®å éšã衚瀺ã§ããããšã§ãã
Grafana ã«ã¯ã»ãŒåãæ©èœãããããã«èŠããŸãããå®éã«ã¯ãChronograf ã§ã®ããã·ã¥ããŒãã®ã»ããã¢ããã¯ããŠã¹ãæ°åã¯ãªãã¯ããã ã㧠(åæã«èŠèŠåã確èªããªãã) è¡ãããšãã§ããŸãããGrafana ã§ã¯é ããæ©ããã JSON èšå®ãç·šéããŸã (ãã¡ãããChronograf ã§ã¯ãæåã§èšå®ãããã·ã£ãã¢ããããŒãããå¿ èŠã«å¿ã㊠JSON ãšããŠç·šéã§ããŸãããã ããUI ã§äœæããåŸã«ããããæäœããå¿ èŠã¯ãããŸããã§ãã)ã
Kibana ã«ã¯ãããã·ã¥ããŒããšãã®ã³ã³ãããŒã«ãäœæããããã®ããè±å¯ãªæ©èœããããŸããããã®ãããªæäœã® UX ã¯éåžžã«è€éã§ãã
䟿å©ãªããã·ã¥ããŒããäœæããã«ã¯ãããçšåºŠã®ç解ãå¿ èŠã§ãã ãŸããChronograf ããã·ã¥ããŒãã®æ©èœã¯å°ãªããã®ã®ãäœæãšã«ã¹ã¿ãã€ãºã¯ã¯ããã«ç°¡åã§ãã
ããã·ã¥ããŒãèªäœã¯ãå¿«é©ãªããžã¥ã¢ã« ã¹ã¿ã€ã«ãé€ãã°ãå®éã«ã¯ Grafana ã Kibana ã®ããã·ã¥ããŒããšäœãå€ãããŸããã
ã¯ãšãª ãŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã
ãšããããInfluxDB ããŒã¿ããŒã¹å ã®ãã£ãŒã«ãã®ã¿ã€ããç¥ããšãã¯ããã°ã©ãèªäœãã¯ãšãªã®äœæãå¹³åå€ãªã©ã®æ£ããéèšé¢æ°ã®éžæã«èªåçã«åœ¹ç«ã€å Žåãããããšã«æ³šæããããšãéèŠã§ãã
ãããŠãã¡ãããChronograf ã¯ãã°ã衚瀺ããã®ã«å¯èœãªéã䟿å©ã§ãã 次ã®ããã«ãªããŸãã
ããã©ã«ãã§ã¯ãInflux ãã°ã¯ syslog ã䜿çšããããã«èª¿æŽãããŠãããããé倧床ãšããéèŠãªãã©ã¡ãŒã¿ããããŸãã
äžéšã®ã°ã©ãã¯ç¹ã«äŸ¿å©ã§ãçºçãããšã©ãŒã衚瀺ãããé倧床ãé«ããã©ãããè²ã§ããã«ããããŸãã
ãã®æ¹æ³ã§éèŠãªãã°ãäœåºŠãææããå é±ã®ãã°ã衚瀺ããŠèµ€ãã¹ãã€ã¯ã確èªããŸããã
ãã¡ããããã®ãããªãšã©ãŒã«å¯Ÿããã¢ã©ãŒããèšå®ããã®ãçæ³çã§ããããã«ã€ããŠã¯ãã§ã«ãã¹ãŠãæã£ãŠããããã§ãã
ãã°ããã®éããããªã³ã«ããŠããŸãããããã€ãããã®æºåã®éçšã§ãããªãå€ãã®ãšã©ãŒ (LTE ãããã¯ãŒã¯ãå©çšã§ããªããªã©ã®ã·ã¹ãã ãšã©ãŒãå«ã) ãçºçããSlack ãã£ãã«ã«ããã¹ãã ããçºçããŠããããšãå€æããŸãããäœãåé¡ãåŒãèµ·ããããšããªãã倧ããªã¡ãªããããããŸãã
æ£ãã解決çã¯ããã®çš®ã®ãšã©ãŒã®ã»ãšãã©ãåŠçããé倧床ã調æŽããŠããã¢ã©ãŒããæå¹ã«ããããšã§ãã
ããããããšã§ãæ°ãããšã©ãŒãŸãã¯éèŠãªãšã©ãŒã®ã¿ã Slack ã«æçš¿ãããŸãã å³ããç· ãåããèãããšããã®ãããªã»ããã¢ãããè¡ãã«ã¯ååãªæéããããŸããã§ããã
èªèšŒ
Chronograf ãèªèšŒãšã㊠OAuth ãš OIDC ããµããŒãããŠããããšã«ãèšåãã䟡å€ããããŸãã
ããã¯ããµãŒããŒã«ç°¡åã«æ¥ç¶ããŠæ¬æ Œç㪠SSO ãäœæã§ãããããéåžžã«äŸ¿å©ã§ãã
ç§ãã¡ã®å ŽåããµãŒããŒã¯
ã管çè ã
æåŸã«èª¬æããã³ã³ããŒãã³ãã¯ãVue ã§ç¬èªã«äœæããã管çããã«ãã§ãã
åºæ¬çã«ã¯ãç¬èªã®ããŒã¿ããŒã¹ããã€ã¯ããµãŒãã¹ãInfluxDB ã®ã¡ããªã¯ã¹ ããŒã¿ããã®ã¹ã¯ãŒã¿ãŒæ
å ±ãåæã«è¡šç€ºããåãªãã¹ã¿ã³ãã¢ãã³ ãµãŒãã¹ã§ãã
ããã«ãç·æ¥ã®åèµ·åããµããŒã ããŒã ã®ãªã¢ãŒãã«ããããã¯ã®è§£é€ãªã©ãå€ãã®ç®¡çæ©èœãããã«ç§»åãããŸããã
å°å³ããããŸããã Chronograf ã§ã¯ãªã Grafana ããå§ããããšã¯ãã§ã«è¿°ã¹ãŸãããGrafana ã§ã¯ãããããã©ã°ã€ã³ã®åœ¢åŒã§å©çšå¯èœã§ãããã¹ã¯ãŒã¿ãŒã®åº§æšã衚瀺ã§ããããã§ãã æ®å¿µãªãããGrafana ã®ããã ãŠã£ãžã§ããã®æ©èœã¯éåžžã«éãããŠãããããçŸæç¹ã§ã®åº§æšã確èªããã ãã§ãªããã¹ã¯ãŒã¿ãŒãéã£ãã«ãŒããå°å³äžã®ããŒã¿ããã£ã«ã¿ãªã³ã°ã§ãããªã© (åçŽãªããã·ã¥ããŒãã§ã¯æ§æã§ããªãã£ããã¹ãŠã®æ©èœ)ã
ãã§ã«è¿°ã¹ã Influx ã®å©ç¹ã® XNUMX ã€ã¯ãç¬èªã®ã¡ããªã¯ã¹ãç°¡åã«äœæã§ããããšã§ãã
ããã«ãããããŸããŸãªã·ããªãªã§ã®äœ¿çšãå¯èœã«ãªããŸãã
ç§ãã¡ã¯ãããããªãŒå
é»ãããã¯ç¶æ
ãã»ã³ãµãŒã®ããã©ãŒãã³ã¹ãBluetoothãGPSããã®ä»å€ãã®ãã«ã¹ãã§ãã¯ãªã©ããã¹ãŠã®æçšãªæ
å ±ãããã«èšé²ããããšããŸããã
ããããã¹ãŠã管çããã«ã«è¡šç€ºããŸããã
ãã¡ãããç§ãã¡ã«ãšã£ãŠæãéèŠãªåºæºã¯ã¹ã¯ãŒã¿ãŒã®åäœç¶æ ã§ãããå®éãInflux èªäœãããããã§ãã¯ããããŒã ã»ã¯ã·ã§ã³ã«ãéä¿¡å·ãã§è¡šç€ºããŸãã
ããã¯é¢æ°ã«ãã£ãŠè¡ãããŸã
ã¡ãªã¿ã«ãç§ãã¡ã¯ã¹ã¯ãŒã¿ãŒã«ãã·ã³ããœã³ãºãã®ç»å Žäººç©ã®ååã«ã¡ãªãã§åä»ããŸããããäºãã«åºå¥ããã®ã«ãšãŠã䟿å©ã§ããã
ãããŠäžè¬çã«ã¯ããã¡ãã®æ¹ã楜ããã£ãã§ãã ãã¿ããªãã¹ãã¶ãŒãºã¯æ»ãã ïŒãã®ãããªãã¬ãŒãºã絶ããèãããŸããã
æååã¡ããªã¯ã¹
Victoria Metrics ã®å Žåã®ããã«ãInfluxDB ã§ã¯æ°å€ã ãã§ãªãä¿åã§ããããšãéèŠã§ãã
ããã¯ããã»ã©éèŠã§ã¯ãªãããã«æããŸãããçµå±ã®ãšããããã°ãšã¯å¥ã«ãããããã¡ããªã¯ã¹ãæ°å€ã®åœ¢åŒã§ä¿åã§ããŸã (æ¢ç¥ã®ç¶æ ã®ãããã³ã°ãè¿œå ããã ãã§ã - äžçš®ã®åæåã§ã)ã
ç§ãã¡ã®å Žåãæååã¡ããªã¯ã¹ãéåžžã«åœ¹ç«ã€ã·ããªãªãå°ãªããšã XNUMX ã€ãããŸããã
ããŸããŸãåœç€Ÿã®ãã¹ããŒãå
é»åšãã®ãµãã©ã€ã€ãŒããµãŒãããŒãã£ã§ãã£ããããéçºããã»ã¹ãšãããã®å
é»åšãæäŸã§ããæ
å ±ãåœç€Ÿã¯å¶åŸ¡ã§ããŸããã§ããã
çµæãšããŠã課é API ã¯çæ³ããã¯ã»ã©é ããã®ã«ãªããŸããããäž»ãªåé¡ã¯ããã®ç¶æ ãåžžã«ææ¡ã§ããªãããšã§ããã
ããã§Influxãå©ãã«ãªããŸããã åãåã£ãæååã¹ããŒã¿ã¹ãå€æŽããã« InfluxDB ããŒã¿ããŒã¹ ãã£ãŒã«ãã«æžã蟌ãã ãã§ãã
ãã°ããã®éã¯ãããªã³ã©ã€ã³ããããªãã©ã€ã³ããªã©ã®å€ã®ã¿ãååŸããããã®æ å ±ã«åºã¥ããŠç®¡çããã«ã«è¡šç€ºãããéç¥ã Slack ã«éä¿¡ãããŸããã ãããããã€ãããããã«ã¯ãæ絶ããšãã£ã䟡å€èŠ³ãçŸãå§ããã
åŸã§å€æããããšã§ããããã®ã¹ããŒã¿ã¹ã¯ãäžå®åæ°è©Šè¡ããŠãå é»åšããµãŒããŒãšã®æ¥ç¶ã確ç«ã§ããªãã£ãå Žåã«ãæ¥ç¶ã倱ãããåŸã« XNUMX åéä¿¡ããããã®ã§ããã
ãããã£ãŠãåºå®ã®å€ã»ããã®ã¿ã䜿çšããå Žåãé©åãªã¿ã€ãã³ã°ã§ãã¡ãŒã ãŠã§ã¢ã«ãããã®å€æŽã衚瀺ãããªãå¯èœæ§ããããŸãã
ãŸããäžè¬ã«ãæååã¡ããªã¯ã¹ã¯äœ¿çšã§ããå¯èœæ§ãã¯ããã«é«ããäºå®äžããããæ å ±ãæååã¡ããªã¯ã¹ã«èšé²ã§ããŸãã ãã¡ããããã®ããŒã«ãæ éã«äœ¿çšããå¿ èŠããããŸãã
éåžžã®ã¡ããªã¯ã¹ã«å ããŠãGPS äœçœ®æ
å ±ã InfluxDB ã«èšé²ããŸããã ããã¯ã管çããã«ã§ã¹ã¯ãŒã¿ãŒã®äœçœ®ãç£èŠããã®ã«éåžžã«åœ¹ç«ã¡ãŸããã
å®éãå¿
èŠãªãšãã«ã©ã®ã¹ã¯ãŒã¿ãŒãã©ãã«ããããåžžã«ç¥ã£ãŠããŸããã
ããã¯ãã¹ã¯ãŒã¿ãŒãæ¢ããŠãããšãã«éåžžã«åœ¹ç«ã¡ãŸãã (æåŸã«çµè«ãåç §)ã
ã€ã³ãã©ç£èŠ
ã¹ã¯ãŒã¿ãŒèªäœã«å ããŠã(ããªãåºç¯å²ã«ããã) ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãç£èŠããå¿ èŠããããŸããã
éåžžã«äžè¬çãªã¢ãŒããã¯ãã£ã¯æ¬¡ã®ããã«ãªããŸãã
çŽç²ãªç£èŠã¹ã¿ãã¯ã匷調衚瀺ãããšã次ã®ããã«ãªããŸãã
ã¯ã©ãŠãäžã§ç¢ºèªãããããšã¯æ¬¡ã®ãšããã§ãã
- ããŒã¿ããŒã¹
- ããŒã¯ããŒã¯
- ãã€ã¯ããµãŒãã¹
ãã¹ãŠã®ã¯ã©ãŠã ãµãŒãã¹ã¯ Kubernetes ã«é 眮ãããŠããããããã®ç¶æ ã«é¢ããæ å ±ãåéãããšããã§ãããã
幞ããªããšã«ãTelegraf ã¯ãã®ãŸãŸã®ç¶æ 㧠Kubernetes ã¯ã©ã¹ã¿ãŒã®ç¶æ ã«é¢ããèšå€§ãªæ°ã®ã¡ããªã¯ã¹ãåéã§ããChronograf ã¯ããã®ããã®çŸããããã·ã¥ããŒããããã«æäŸããŸãã
äž»ã«ãããã®ããã©ãŒãã³ã¹ãšã¡ã¢ãªæ¶è²»éãç£èŠããŸããã 転åã®å Žåã¯ãSlack ã§ã¢ã©ãŒããéä¿¡ãããŸãã
Kubernetes ã§ãããã远跡ããã«ã¯ãDaemonSet ãš Sidecar ã® XNUMX ã€ã®æ¹æ³ããããŸãã
ã©ã¡ãã®æ¹æ³ã詳ãã説æãããŠããŸã
Telegraf Sidecar ã䜿çšããã¡ããªã¯ã¹ã«å ããŠããã ãã°ãåéããŸããã
ç§ãã¡ã®å Žåããã°ããããå¿ èŠããããŸããã Telegraf 㯠Docker API ãããã°ãååŸã§ãããšããäºå®ã«ããããããããšã³ã ããã€ã¹ã§ãã°ãåäžã«åéããããšèãããã®ããã«ã³ã³ããçšã« syslog ãæ§æããŸããã ãããããã®ãœãªã¥ãŒã·ã§ã³ã¯çŸãããããŸããã§ãããããã®åäœã«ã€ããŠã¯äžæºã¯ãªãããã°ã¯ Chronograf ã§é©åã«è¡šç€ºãããŸããã
ã¢ãã¿ãŒç£èŠ???
çµå±ãç£èŠã·ã¹ãã ã®ç£èŠãšããé·å¹Žã®åé¡ãæµ®äžããŸãããã幞ãäžå¹žããããã«ã¯ååãªæéããããŸããã§ããã
ãã ããTelegraf ã¯ç¬èªã®ã¡ããªã¯ã¹ãç°¡åã«éä¿¡ããããInfluxDB ããŒã¿ããŒã¹ããã¡ããªã¯ã¹ãåéããŠåã Influx ãŸãã¯å¥ã®å Žæã«éä¿¡ãããã§ããŸãã
æèŠ
ãã€ãããã®çµæããã©ã®ãããªçµè«ãåŸãããŸããã?
ã¢ãã¿ãªã³ã°ã¯ã©ã®ããã«è¡ãããšãã§ããŸãã?
ãŸã第äžã«ãTICK ã¹ã¿ãã¯ã¯ç§ãã¡ã®æåŸ ãå®å šã«æºãããåœåã®æåŸ ãããããã«å€ãã®æ©äŒãäžããŠãããŸããã
å¿ èŠãªæ©èœã¯ãã¹ãŠæã£ãŠããŸããã ç§ãã¡ãããã䜿ã£ãŠãã£ãããšã¯ãã¹ãŠåé¡ãªãåäœããŸããã
ÐÑПОзвПЎОÑелÑМПÑÑÑ
ç¡æçã® TICK ã¹ã¿ãã¯ã®äž»ãªåé¡ã¯ãã¹ã±ãŒãªã³ã°æ©èœãæ¬ åŠããŠããããšã§ãã ããã¯ç§ãã¡ã«ãšã£ãŠåé¡ã§ã¯ãããŸããã§ããã
æ£ç¢ºãªè² è·ããŒã¿/æ°å€ã¯åéããŸããã§ããããäžåºŠã«çŽ 30 å°ã®ã¹ã¯ãŒã¿ãŒããããŒã¿ãåéããŸããã
ããããã 10 ãè¶ ããã¡ããªã¯ã¹ãåéããŸããã åæã«ãããã€ã¹ããã®ãã°ãåéãããŸããã ããŒã¿ã®åéãšé信㯠XNUMX ç§ããšã«è¡ãããŸããã
ãã€ãããã® 30 é±éååŸããåäŸæ代ã®åé¡ãã®å€§éšåã¯ä¿®æ£ãããæãéèŠãªåé¡ã¯ãã§ã«è§£æ±ºãããŠããããããµãŒããŒã«ããŒã¿ãéä¿¡ããé »åºŠãæžããå¿ èŠããã£ãããšã«æ³šæããããšãéèŠã§ãã XNUMXç§ã LTE SIM ã«ãŒãã®ãã©ãã£ãã¯ãããã«ãªããªãå§ããããããããå¿ èŠã«ãªããŸããã
ãã©ãã£ãã¯ã®å€§éšåã¯ãã°ã«ãã£ãŠæ¶è²»ãããã¡ããªã¯ã¹èªäœã¯ã10 ç§ééã§ãã£ãŠãå®è³ªçã«ç¡é§ã«ã¯ãªããŸããã§ããã
ãã®çµæãäžå®ã®åé¡ãç¶ç¶çã«åéããªããŠãç¹å®ã®åé¡ããã§ã«æããã§ãã£ãããããã°ããããŠããããã€ã¹äžã®ãã°ã®åéãå®å šã«ç¡å¹ã«ããŸããã
å Žåã«ãã£ãŠã¯ãããã§ããã°ã®è¡šç€ºãå¿ èŠãªå Žåã¯ãVPN çµç±ã§ WiââreGuard çµç±ã§æ¥ç¶ããã ãã§æžã¿ãŸããã
ãŸããããããã®ç°å¢ã¯äºãã«åé¢ãããŠãããäžèšã®è² è·ã¯å®çšŒåç°å¢ã«ã®ã¿é¢é£ãããã®ã§ããããšãä»ãå ããŠãããŸãã
éçºç°å¢ã§ã¯ã10 ç§ããšã«ããŒã¿ãåéãç¶ããå¥ã® InfluxDB ã€ã³ã¹ã¿ã³ã¹ãèµ·åããŸããããããã©ãŒãã³ã¹ã®åé¡ã¯çºçããŸããã§ããã
TICK - å°èŠæš¡ããäžèŠæš¡ã®ãããžã§ã¯ãã«æé©
ãã®æ å ±ã«åºã¥ããŠãTICK ã¹ã¿ãã¯ã¯æ¯èŒçå°èŠæš¡ãªãããžã§ã¯ãããŸãã¯é«è² è·ããŸã£ããæåŸ ãããªããããžã§ã¯ãã«æé©ã§ãããšçµè«ä»ããŸãã
æ°åã®ããããæ°çŸã®ãã·ã³ããªãå Žåã¯ãXNUMX ã€ã® InfluxDB ã€ã³ã¹ã¿ã³ã¹ã§ãè² è·ãé©åã«åŠçã§ããŸãã
å Žåã«ãã£ãŠã¯ãåå§çãªé«å¯çšæ§ãœãªã¥ãŒã·ã§ã³ãšããŠã® Influx Relay ã«æºè¶³ãããããããŸããã
ãããŠãã¡ããããåçŽãã¹ã±ãŒãªã³ã°ãèšå®ããããŸããŸãªçš®é¡ã®ã¡ããªã¯ã¹ã«ããŸããŸãªãµãŒããŒãå²ãåœãŠãããšã劚ãã人ã¯èª°ãããŸããã
ç£èŠãµãŒãã¹ã«äºæ³ãããè² è·ãããããªãå ŽåããŸãã¯éåžžã«ãéããã¢ãŒããã¯ãã£ã«ãªãããšã確å®ãªå ŽåããŸãã¯ä»åŸäœ¿çšããããšã確å®ãªå Žåã¯ãTICK ã¹ã¿ãã¯ã®ç¡æããŒãžã§ã³ã䜿çšããããšã¯ãå§ãããŸããã
ãã¡ãããç°¡åãªè§£æ±ºçã¯è³Œå
¥ããããšã§ã
ãã®å Žåãä»æ¥ã¯ãVictoria Metrics ãéããŠã¡ããªã¯ã¹ãåéããLoki ã䜿çšããŠãã°ãåéããããšãæ€èšããããšããå§ãããŸãã
確ãã«ãLoki/Grafana ã¯æ¢è£œã® TICK ã«æ¯ã¹ãŠ (æ±çšæ§ãé«ããã) ã¯ããã«äŸ¿å©ã§ã¯ãããŸããããç¡æã§ãã
ãããéèŠã : ããã§èª¬æãããŠããæ å ±ã¯ãã¹ãŠãããŒãžã§ã³ Influx 1.8 ã«é¢é£ããŠãããçŸæç¹ã§ã¯ Influx 2.0 ããªãªãŒã¹ãããããšããŠããŸãã
æŠéç°å¢ã§è©Šãæ©äŒããªãã£ãã®ã§æ¹åç¹ã«ã€ããŠçµè«ãåºãã®ã¯é£ããã§ãããã€ã³ã¿ãŒãã§ã€ã¹ã¯ééããªãããã«è¯ããªããã¢ãŒããã¯ãã£ã¯ç°¡çŽ åãããŸããïŒã³ã³ãã³ãµãŒãšã¯ããã°ã©ããªãïŒã
ãã³ãã¬ãŒãã®ç»å Ž (ããã©ãŒæ©èœã -
ãã®æ©èœã¯ Influx 2.0 ã§ãç»å Žããäºå®ã§ãããããããã®æéãããèŠã€ããããšãã§ããŸããã§ããã
IoTãã©ãããã©ãŒã ãäœããªãæ¹æ³ïŒä»ïŒ
æçµçã«ããã€ããããéå§ããåŸãç§ãã¡ã®åºæºã«é©ãã代æ¿æ段ãååšããªãäžã§ãç§ãã¡èªèº«ãç¬èªã®æ¬æ Œç㪠IoT ã¹ã¿ãã¯ãçµã¿ç«ãŠãŸããã
ãã ããæè¿ããŒã¿çã§å©çšã§ããããã«ãªããŸãã
æçµçµæãšãèªåãã¡ã§çµã¿ç«ãŠã Ansible + TICK + WireGuard ãããŒã¹ã«ãããã©ãããã©ãŒã ã«å®å šã«æºè¶³ããŠããŸãã ãããä»æ¥ã¯ãç¬èªã® IoT ãã©ãããã©ãŒã ãèªåã§æ§ç¯ããŠã¿ãåã«ãBalena ã詳ããèŠãŠã¿ãããšããå§ãããŸãã
ãªããªããæçµçã«ã¯ç§ãã¡ãè¡ã£ãããšã®ã»ãšãã©ãå®è¡ã§ããOpenBalena ã¯ç¡æã§ãªãŒãã³ãœãŒã¹ã ããã§ãã
ã¢ããããŒããéä¿¡ããæ¹æ³ã ãã§ãªããVPN ããã§ã«çµã¿èŸŒãŸããŠãããIoT ç°å¢ã§ã®äœ¿çšã«åãããŠèª¿æŽãããŠããŸãã
ãããŠã€ãæè¿ã圌ãã¯
ãããè¡æ¹äžæã®ã¹ã¯ãŒã¿ãŒã¯ã©ãããã®ïŒ
ããããŠã¹ã¯ãŒã¿ãŒãã©ã«ããã¯è·¡åœ¢ããªãæ¶ããã
ç§ãã¡ã¯ããã«èµ°ã£ãŠãInfluxDB ããã® GPS ã¡ããªã¯ã¹ ããŒã¿ãå«ãã管çããã«ãã®å°å³ã確èªããŸããã
ç£èŠããŒã¿ã®ãããã§ãã¹ã¯ãŒã¿ãŒãæšæ¥ã®21æé ã«é§è»å ŽãåºãŠãçŽ00åãããŠããå°åãŸã§èµ°ãããã€ã人ã®å®¶ã®é£ã§åå5æãŸã§é§è»ãããŠããããšã容æã«å€æããŸããã
åå 5 æ以éãç£èŠããŒã¿ã¯åä¿¡ãããŸããã§ãããããã¯ãè¿œå ã®ããããªãŒãå®å
šã«æŸé»ããããæ»æè
ãã¹ã¯ãŒã¿ãŒããã¹ããŒã ããŒããŠã§ã¢ãåãå€ãæ¹æ³ãæçµçã«èŠã€ãããã®ãããããæå³ããŸãã
ããã«ãããããããã¹ã¯ãŒã¿ãŒã眮ãããŠããäœæã«èŠå¯ãåŒã³åºãããã ã¹ã¯ãŒã¿ãŒã¯ããã«ã¯ãããŸããã§ããã
ãããã家ã®ææè ããæšå€ãå®éã«ãã®ã¹ã¯ãŒã¿ãŒã«ä¹ã£ãŠäŒç€Ÿããåž°ã£ãŠããã®ã§ãããã«ã¯é©ããŠããŸããã
çµå±ã®ãšããããµããŒãåŸæ¥å¡ã® XNUMX 人ãæ©æã«å°çããã¹ã¯ãŒã¿ãŒãåŒãåããè¿œå ã®ããããªãŒãå®å šã«æŸé»ããŠããã®ãèŠãŠã(åŸæ©ã§) é§è»å ŽãŸã§éã³ãŸããã ãããŠãè¿œå ã®ããããªãŒã湿æ°ã®ããã§æ éããŸããã
ç§ãã¡ã¯èªåãã¡ããã¹ã¯ãŒã¿ãŒãçã¿ãŸããã ã¡ãªã¿ã«ãèŠå¯ã®äºä»¶ã¯èª°ãã©ã®ããã«è§£æ±ºããã®ãã¯åãããŸããããç£èŠã¯å®ç§ã«æ©èœããŠããŸãã...
åºæïŒ habr.com