Elastic Stack ã¯ãéãªã¬ãŒã·ã§ãã« Elasticsearch ããŒã¿ããŒã¹ãKibana Web ã€ã³ã¿ãŒãã§ã€ã¹ãããŒã¿ ã³ã¬ã¯ã¿ãŒããã³ããã»ããµ (æãæå㪠LogstashãããŸããŸãª BeatsãAPM ãªã©) ã«åºã¥ããŠããããšãæãåºããŠãã ããã ãªã¹ããããŠãã補åã¹ã¿ãã¯å
šäœãžã®åªããè¿œå æ©èœã® XNUMX ã€ã¯ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã䜿çšããããŒã¿åæã§ãã ãã®èšäºã§ã¯ããããã®ã¢ã«ãŽãªãºã ãäœã§ããããç解ããŸãã ç«ã®äžã§ãé¡ãããŸãã
æ©æ¢°åŠç¿ã¯ã·ã§ã¢ãŠã§ã¢ Elastic Stack ã®æææ©èœã§ãããX-Pack ã«å«ãŸããŠããŸãã 䜿çšãéå§ããã«ã¯ãã€ã³ã¹ããŒã«åŸã« 30 æ¥éã®è©Šçšçãã¢ã¯ãã£ãåããã ãã§ãã è©Šçšæéã®æå¹æéãåãããããµããŒãããªã¯ãšã¹ãããŠæéã延é·ãããããµãã¹ã¯ãªãã·ã§ã³ã賌å
¥ãããã§ããŸãã ãµãã¹ã¯ãªãã·ã§ã³ã®ã³ã¹ãã¯ãããŒã¿éã§ã¯ãªãã䜿çšãããããŒãã®æ°ã«åºã¥ããŠèšç®ãããŸãã ãããããã¡ãããããŒã¿éã¯å¿
èŠãªããŒãã®æ°ã«åœ±é¿ããŸãããããã§ãããã®ã©ã€ã»ã³ã¹ã®ã¢ãããŒãã¯ãäŒæ¥ã®äºç®ãšã®é¢ä¿ã§ãã人éçã§ãã é«ãçç£æ§ãå¿
èŠãªãå Žåã¯ãã³ã¹ããç¯çŽã§ããŸãã
Elastic Stack ã® ML 㯠C++ ã§æžãããŠãããElasticsearch èªäœãå®è¡ããã JVM ã®å€éšã§å®è¡ãããŸãã ã€ãŸããããã»ã¹ (ã¡ãªã¿ã«ãããã¯èªåæ€åºãšåŒã°ããŸã) ã¯ãJVM ã飲ã¿èŸŒãŸãªããã¹ãŠã®ãã®ãæ¶è²»ããŸãã ãã¢ã¹ã¿ã³ãã§ã¯ãããã¯ããã»ã©éèŠã§ã¯ãããŸããããå®çšŒåç°å¢ã§ã¯ãML ã¿ã¹ã¯ã«åå¥ã®ããŒããå²ãåœãŠãããšãéèŠã§ãã
æ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã¯XNUMXã€ã®ã«ããŽãªã«åé¡ãããŸã-
åæãå®è¡ããããã«ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã 㯠Elasticsearch ã€ã³ããã¯ã¹ã«ä¿åãããŠããããŒã¿ã䜿çšããŸãã Kibana ã€ã³ã¿ãŒãã§ã€ã¹ãš API ã®äž¡æ¹ããåæçšã®ã¿ã¹ã¯ãäœæã§ããŸãã Kibana ãéããŠãããè¡ãå Žåãããã€ãã®ããšãç¥ãå¿ èŠã¯ãããŸããã ããšãã°ãã¢ã«ãŽãªãºã ãåäœäžã«äœ¿çšããè¿œå ã®ã€ã³ããã¯ã¹ãªã©ã§ãã
åæããã»ã¹ã§äœ¿çšãããè¿œå ã®ã€ã³ããã¯ã¹.ml-state â çµ±èšã¢ãã« (åæèšå®) ã«é¢ããæ
å ±ã
.ml-anomalies-* â ML ã¢ã«ãŽãªãºã ã®çµæã
.ml-notifications â åæçµæã«åºã¥ãéç¥ã®èšå®ã
Elasticsearch ããŒã¿ããŒã¹ã®ããŒã¿æ§é ã¯ãã€ã³ããã¯ã¹ãšããã«ä¿åãããŠããããã¥ã¡ã³ãã§æ§æãããŸãã ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ãšæ¯èŒãããšãã€ã³ããã¯ã¹ã¯ããŒã¿ããŒã¹ ã¹ããŒããšæ¯èŒã§ããããã¥ã¡ã³ãã¯ããŒãã«å
ã®ã¬ã³ãŒããšæ¯èŒã§ããŸãã ãã®æ¯èŒã¯æ¡ä»¶ä»ãã§ãããElasticsearch ã«ã€ããŠããèããããšããªã人ããããªãå
容ãç解ããããããããã«æäŸãããŠããŸãã
API ãéããŠã Web ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠåãæ©èœãå©çšã§ãããããæŠå¿µãæ確ã«ãç解ããããã«ãKibana ãéããŠèšå®ããæ¹æ³ã説æããŸãã å·ŠåŽã®ã¡ãã¥ãŒã«ã¯ãæ°ãããžã§ããäœæã§ãããæ©æ¢°åŠç¿ãã»ã¯ã·ã§ã³ããããŸãã Kibana ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ã以äžã®ç»åã®ããã«ãªããŸãã ããã§ãåã¿ã€ãã®ã¿ã¹ã¯ãåæããããã§æ§ç¯ã§ããåæã®ã¿ã€ãã瀺ããŸãã
åäžã¡ããªã㯠- XNUMX ã€ã®ã¡ããªãã¯ã®åæããã«ã ã¡ããªã㯠- XNUMX ã€ä»¥äžã®ã¡ããªãã¯ã®åæã ã©ã¡ãã®å Žåããåã¡ããªã¯ã¹ã¯éé¢ãããç°å¢ã§åæãããŸãã ãã«ã ã¡ããªãã¯ã®å Žåã®ããã«ããã®ã¢ã«ãŽãªãºã ã§ã¯ã䞊ååæãããã¡ããªãã¯ã®åäœã¯èæ
®ãããŠããŸããã ããŸããŸãªææšã®çžé¢é¢ä¿ãèæ
®ããŠèšç®ãå®è¡ããã«ã¯ãæ¯éå£åæã䜿çšã§ããŸãã ãŸããã¢ããã³ã¹ãã§ã¯ãç¹å®ã®ã¿ã¹ã¯åãã«è¿œå ãªãã·ã§ã³ã䜿çšããŠã¢ã«ãŽãªãºã ã埮調æŽããŠããŸãã
åäžã®ã¡ããªãã¯
ããã§å®è¡ã§ããæãç°¡åãªæ¹æ³ã¯ãXNUMX ã€ã®ã¡ããªãã¯ã®å€åãåæããããšã§ãã ããžã§ãã®äœæããã¯ãªãã¯ãããšãã¢ã«ãŽãªãºã ãç°åžžãæ¢ããŸãã
ãã£ãŒã«ã㧠ã¢ã°ãªã²ãŒã·ã§ã³ ç°åžžãæ€çŽ¢ããã¢ãããŒããéžæã§ããŸãã ããšãã°ã次ã®ãããªãšã æå°å€ å
žåçãªå€ãäžåãå€ã¯ç°åžžãšã¿ãªãããŸãã é£ã¹ã æ倧ãé«å¹³åãäœãå¹³åãåå¥ ãã®ä»ã ãã¹ãŠã®æ©èœã®èª¬æãèŠã€ãããŸã
ãã£ãŒã«ã㧠ãã£ãŒã«ã ã¯ãåæãå®è¡ããããã¥ã¡ã³ãå ã®æ°å€ãã£ãŒã«ãã瀺ããŸãã
ãã£ãŒã«ãã§
ããŒã¿ã®åéæéã¯ãåæã®æå¹æ§ã«åœ±é¿ãäžããéèŠãªèŠçŽ ã§ãã åæäžãã¢ã«ãŽãªãºã ã¯ç¹°ãè¿ãééãç¹å®ããä¿¡é Œåºé (ããŒã¹ã©ã€ã³) ãèšç®ããç°åžž (ã¡ããªã¯ã¹ã®éåžžã®åäœããã®ç°åžžãªéžè±) ãç¹å®ããŸãã ããšãã°:
å°ããªããŒã¿ã®ããŒã¹ã©ã€ã³:
ã¢ã«ãŽãªãºã ãåŠç¿ãããã®ãããå ŽåãããŒã¹ã©ã€ã³ã¯æ¬¡ã®ããã«ãªããŸãã
ã¿ã¹ã¯ã®éå§åŸãã¢ã«ãŽãªãºã ã¯æšæºããã®ç°åžžãªéžè±ãå€æããç°åžžã®ç¢ºçã«åŸã£ãŠããããã©ã³ã¯ä»ãããŸã (察å¿ããã©ãã«ã®è²ãæ¬åŒ§å
ã«ç€ºãããŠããŸã)ã
èŠåïŒéïŒïŒ25æªæº
ãã€ããŒ(é»è²): 25-50
ã¡ãžã£ãŒïŒãªã¬ã³ãžïŒïŒ50-75
ã¯ãªãã£ã«ã«(èµ€): 75-100
以äžã®ã°ã©ãã¯ãèŠã€ãã£ãç°åžžã®äŸã瀺ããŠããŸãã
ããã«ã¯ãç°åžžã®å¯èœæ§ã瀺ã 94 ãšããæ°åã衚瀺ãããŸãã å€ã 100 ã«è¿ããããç°åžžãããããšã¯æããã§ãã ã°ã©ãã®äžã®åã¯ãããã«è¡šç€ºãããã¡ããªã¯ã¹å€ã® 0.000063634% ãšãã軜èçã«å°ããªç¢ºçã瀺ããŠããŸãã
ç°åžžã®æ€çŽ¢ã«å ããŠãKibana ã§äºæž¬ãå®è¡ã§ããŸãã ããã¯ãç°åžžãšåããã¥ãŒããç°¡åã«å®è¡ã§ããŸã - ãã¿ã³ äºæ³ å³äžé ã«ãããŸãã
äºæž¬ã¯æ倧 8 é±éå
ãŸã§è¡ãããŸãã æ¬åœã«ããããããšæã£ãŠããŠããèšèšäžããã¯ããäžå¯èœã§ãã
ç¶æ³ã«ãã£ãŠã¯ãããšãã°ã€ã³ãã©ã¹ãã©ã¯ãã£äžã®ãŠãŒã¶ãŒè² è·ãç£èŠããå Žåãªã©ãäºæž¬ãéåžžã«åœ¹ç«ã¡ãŸãã
ãã«ãã¡ããªãã¯
Elastic Stack ã®æ¬¡ã® ML æ©èœã«é²ã¿ãXNUMX ã€ã®ãããã§è€æ°ã®ã¡ããªã¯ã¹ãåæããŸãã ãã ããããã¯ãããã¡ããªãã¯ãšå¥ã®ã¡ããªãã¯ã®äŸåé¢ä¿ãåæãããããšãæå³ãããã®ã§ã¯ãããŸããã ããã¯åäžã¡ããªãã¯ãšåãã§ãããXNUMX ã€ã®ç»é¢ã«è€æ°ã®ã¡ããªãã¯ã衚瀺ãããããã¡ããªãã¯ãå¥ã®ã¡ããªãã¯ã«äžãã圱é¿ãç°¡åã«æ¯èŒã§ããŸãã ããã¡ããªã¯ã¹ã®å¥ã®ã¡ããªã¯ã¹ãžã®äŸåé¢ä¿ã®åæã«ã€ããŠã¯ãã人å£ãã»ã¯ã·ã§ã³ã§èª¬æããŸãã
ãã«ãã¡ããªãã¯ã®åè§åœ¢ãã¯ãªãã¯ãããšãèšå®ãå«ããŠã£ã³ããŠã衚瀺ãããŸãã ããããããã«è©³ããèŠãŠã¿ãŸãããã
ãŸããåæãšããŒã¿éèšã®å¯Ÿè±¡ãšãªããã£ãŒã«ããéžæããå¿
èŠããããŸãã ããã§ã®éèšãªãã·ã§ã³ã¯åäžã¡ããªã¯ã¹ã®å Žåãšåãã§ã(æ倧ãé«å¹³åãäœãå¹³åãåå¥ ãã®ä»ïŒã ããã«ãå¿
èŠã«å¿ããŠãããŒã¿ã¯ãã£ãŒã«ãã® XNUMX ã€ã«åå²ãããŸã (ãã£ãŒã«ã åå²ããŒã¿ïŒã ãã®äŸã§ã¯ãããããã£ãŒã«ãããšã«å®è¡ããŸãã åºçºå°ç©ºæž¯IDã å³åŽã®ã¡ããªã¯ã¹ ã°ã©ããè€æ°ã®ã°ã©ããšããŠè¡šç€ºãããŠããããšã«æ³šç®ããŠãã ããã
ãã£ãŒã«ã éç¹åéïŒã€ã³ãã«ãšã³ãµãŒïŒ æ€åºãããç°åžžã«çŽæ¥åœ±é¿ããŸãã ããã©ã«ãã§ã¯ãããã«ã¯åžžã«å°ãªããšã XNUMX ã€ã®å€ããããããã«å€ãè¿œå ã§ããŸãã ã¢ã«ãŽãªãºã ã¯åææã«ãããã®ãã£ãŒã«ãã®åœ±é¿ãèæ
®ããæãã圱é¿åã®ãããå€ã衚瀺ããŸãã
èµ·ååŸãKibana ã€ã³ã¿ãŒãã§ã€ã¹ã«æ¬¡ã®ãããªãã®ã衚瀺ãããŸãã
ããã¯ããããåãã£ãŒã«ãå€ã®ç°åžžã®ããŒã ããã åºçºå°ç©ºæž¯IDã§ç€ºãã åå²ããŒã¿ã åäžã¡ããªãã¯ãšåæ§ã«ãç°åžžãªåå·®ã®ã¬ãã«ãè²ã§ç€ºããŸãã ããšãã°ãã¯ãŒã¯ã¹ããŒã·ã§ã³äžã§åæ§ã®åæãå®è¡ãããšãçãããã»ã©å€æ°ã®æ¿èªãæã€ã¯ãŒã¯ã¹ããŒã·ã§ã³ãªã©ã远跡ãããšäŸ¿å©ã§ãã ãã§ã«æžããŸãã
ããŒã ãããã®äžã«ã¯ç°åžžã®ãªã¹ããããããããããã [åäžã¡ããªãã¯] ãã¥ãŒã«åãæ¿ããŠè©³çŽ°ãªåæãè¡ãããšãã§ããŸãã
人å£
ç°ãªãã¡ããªã¯ã¹éã®çžé¢é¢ä¿ã®ç°åžžãæ¢ãããã«ãElastic Stack ã«ã¯ç¹æ®ãªäººå£åæãåãã£ãŠããŸãã ãããå©çšãããšãã¿ãŒã²ãã ã·ã¹ãã ãžã®ãªã¯ãšã¹ãæ°ãå¢å ããå Žåãªã©ã«ãä»ã®ãµãŒããŒãšæ¯èŒããŠãµãŒããŒã®ããã©ãŒãã³ã¹ã®ç°åžžãªå€ãèŠã€ããããšãã§ããŸãã
ãã®å³ã§ã¯ããPopulationããã£ãŒã«ãã¯ãåæãããã¡ããªãã¯ãé¢é£ããå€ã瀺ããŠããŸãã ãã®å Žåãããã¯ããã»ã¹ã®ååã§ãã ãã®çµæãåããã»ã¹ã®ããã»ããµè² è·ãçžäºã«ã©ã®ãããªåœ±é¿ãäžããããããããŸãã
ã·ã³ã°ã«ã¡ããªã¯ã¹ããã«ãã¡ããªã¯ã¹ã®å Žåãšã¯åæããŒã¿ã®ã°ã©ããç°ãªããŸãã®ã§ã泚æãã ããã ããã¯ãåæãããããŒã¿ã®å€ã®ååžã®èªèãæ¹åããããã®èšèšã«ãããKibana ã§è¡ãããŸããã
ã°ã©ãã¯ããã»ã¹ãç°åžžã«åäœããããšã瀺ããŠããŸã ã¹ãã¬ã¹ (ã¡ãªã¿ã«ãç¹å¥ãªãŠãŒãã£ãªãã£ã«ãã£ãŠçæãããŸã) ãµãŒããŒäž ãã€ãããã®ç°åžžã®çºçã«åœ±é¿ãäžããïŒãŸãã¯åœ±é¿åãæã€ããšãå€æããïŒäººç©ã
é«æ©èœ
埮調æŽã䌎ãåæã é«åºŠãªåæã䜿çšãããšãKibana ã«è¿œå ã®èšå®ã衚瀺ãããŸãã äœæã¡ãã¥ãŒã®ã詳现ãã¿ã€ã«ãã¯ãªãã¯ãããšãã¿ãã®ãããã®ãŠã£ã³ããŠã衚瀺ãããŸãã ã¿ã ãžã§ãã®è©³çŽ° åæã®èšå®ã«çŽæ¥é¢ä¿ããªãåºæ¬çãªèšå®ããããããæå³çã«çç¥ããŸããã
Ð summary_count_field_name ãªãã·ã§ã³ã§ãéèšå€ãå«ãããã¥ã¡ã³ãã®ãã£ãŒã«ãã®ååãæå®ã§ããŸãã ãã®äŸã§ã¯ãXNUMX åãããã®ã€ãã³ãæ°ã§ãã ã§
ããã§ã¯ãç¹å®ã®ã¿ã¹ã¯ã®ç°åžžæ€åºæ©èœãæ§æããããã®è¿œå ã®èšå®ãããã¯ã瀺ããŸãã 次ã®èšäºã§ã¯ãç¹å®ã®äœ¿çšäŸ (ç¹ã«ã»ãã¥ãªãã£ã®äœ¿çšäŸ) ã«ã€ããŠèª¬æããäºå®ã§ãã äŸãã°ã
ãã£ãŒã«ã㧠function ç¹å®ã®æ©èœãéžæããŠç°åžžãæ€çŽ¢ã§ããŸãã ãé€å€ãã çããããã«èå³æ·±ãé¢æ°ãããã€ããããŸã -
Ð ãã£ãŒã«ãå ã¯ãåæãå®è¡ãããããã¥ã¡ã³ãã®ãã£ãŒã«ãã瀺ããŸãã ãã£ãŒã«ãåå¥ ããã§æå®ããããã¥ã¡ã³ã ãã£ãŒã«ãã®åã ã®å€ããšã«åæçµæãåé¢ããããã«äœ¿çšã§ããŸãã æºããã° over_field_name äžã§èª¬æãã人å£åæãåŸãããŸãã ã«å€ãæå®ãããšã ããŒãã£ã·ã§ã³ãã£ãŒã«ãåãããã¥ã¡ã³ãã®ãã®ãã£ãŒã«ãã«å¯ŸããŠãå€ããšã«åå¥ã®ããŒã¹ã©ã€ã³ãèšç®ãããŸã (å€ã¯ãããšãã°ããµãŒããŒã®ååãŸãã¯ãµãŒããŒäžã®ããã»ã¹ã®å ŽåããããŸã)ã 㧠é€å€é »åºŠ éžã¶ããšãã§ããŸã ã ãŸã㯠ãªãããã¯ãé »ç¹ã«çºçããããã¥ã¡ã³ã ãã£ãŒã«ãå€ãé€å€ãã (ãŸãã¯å«ãã) ããšãæå³ããŸãã
ãã®èšäºã§ã¯ãElastic Stack ã®æ©æ¢°åŠç¿ã®æ©èœã«ã€ããŠã§ããéãç°¡æœã«èª¬æããããšããŸããããèå°è£ã§ã¯ãŸã å€ãã®è©³çŽ°ãæ®ãããŠããŸãã Elastic Stack ã䜿çšããŠã©ã®ãããªã±ãŒã¹ã解決ã§ããã®ãããŸãã©ã®ãããªã¿ã¹ã¯ã« Elastic Stack ã䜿çšããŠããã®ããã³ã¡ã³ãã§æããŠãã ããã ç§ãã¡ã«é£çµ¡ããã«ã¯ãHabré ã®å人ã¡ãã»ãŒãžã䜿çšãããã
åºæïŒ habr.com