ãã®èšäºã§ã¯ãYandex.Moneyãæ¯æããµãŒãã¹ã®ãµãŒããŒãã°ãåéããã³é ä¿¡ããã·ã¹ãã ãã©ã®ããã«åããŠãããã«ã€ããŠèª¬æããŸãã ç§ã¯æšå¹Žãã°ãé ä¿¡ããŠããŸãããããã®éã«ååãªãã¥ã¢ã³ã¹ãèç©ãããäžè¬ã®äººãšçµéšãå ±æããããšãã§ããŸããã
ãã®ã·ã¹ãã ã¯ãã»ãŒãªã¢ã«ã¿ã€ã ã§åäœããããšãç®çãšããŠãEHKã¹ã¿ãã¯ïŒElasticsearch / Heka / KibanaïŒã«åºã¥ããŠæ§ç¯ãããŠããŸãã ç§ã¯ã1æ¥ã«äœååè¡ãã®ããã¹ããåŠçããç¹çŽ°ãªå Žæãšãã¥ã¢ã³ã¹ã«ç¹ã«éç¹ã眮ããŸãã
ç§ã¯3ã€ã®ããšãä¿¡ããŠããŸãïŒç£èŠããã°ãããã¯ã¢ããã
Yandex.Moneyã®éçšãã°ã«ãã°ããã¢ã¯ã»ã¹ããããã«ã ElasticSearchã䜿çšãããŸããElasticSearch㯠ãæ¯æããµãŒãã¹ãæ§æããã»ãŒ100ã®ãã€ã¯ããµãŒãã¹ããããŒã¿ãåãåããŸãã
ãéçšããšã¯ããã°ããªã¢ã«ã¿ã€ã ã§å©çšã§ããããšãæå³ããŸãããã°ãã¡ã€ã«ããElasticsearchã¯ã©ã¹ã¿ãŒã«æ°ãããšã³ããªãé ä¿¡ããéã®é 延ã¯1ç§æªæºã«ãªããŸããã ç£èŠãµãŒãã¹ã¯ãã€ã§ããµãŒãã¹ã®ç¶æ ãåžžã«æ£ç¢ºã«ææ¡ããŠãããéçºè ã¯ãªãªãŒã¹åŸããã«åãã€ã¯ããµãŒãã¹ã®æ°ããããŒãžã§ã³ã®åäœãè¿ éã«è©äŸ¡ããã³èª¿æŽã§ããŸãã
ããããåžžã«ããã§ã¯ãããŸããã§ããã 5ãæåã«äŒç€Ÿã«æ¥ããšãã ElasticSearchã¯ã©ã¹ã¿ãŒïŒä»¥éãåã«ESïŒãžã®éçšãµãŒãã¹ãã°ã®é ä¿¡ã«é¢ããäœæ¥ãã»ããã¢ããããã¿ã¹ã¯ãäžããããŸããã ãã®æç¹ã§ãåæãšESãžã®é ä¿¡ã®4ã€ã®ã¹ããŒã ã䜿çšãããŸããã
Heka-> TCPåºå-> Heka-> ESã
HekaâApache KafkaâApache FlumeâESã
SyslogNgâESã
- nxlogânxlogâESã
ãããã®ã»ãšãã©ãã¹ãŠãäžå®å šã«æ©èœããŸãããKafkaã¯ã©ã¹ã¿ãŒã¯ä¿¡é Œæ§ãäœããFlumeãå®æçã«ãã³ã°ããESãæ··ä¹±ã«é¥ããŸããã
ãã°ã¯å®éã«ã¯éåžžã«åçŽãªãã®ã§ããããã«ãµãŒããŒã§æ¥éã«ããªã¥ãŒã ãå¢å€§ããå€ãã®ãã¡ã€ã«ã§ãã ãããã£ãŠããã®å Žåã®åçŽãªãœãªã¥ãŒã·ã§ã³ãæãä¿¡é Œæ§ãé«ããªããŸãã
ãåã®äžã®ãžã§ã€ã³ããå€ãã»ã©ãç Žæããå¯èœæ§ãé«ããªãããããç§ã¯ãã¹ãŠã®ã¢ã€ãã«ã§äžåœã«è€éãªãµãŒãããããã¹ãŠæšãŠããã«ããã³ãã©ãŒãšèŒžéã®åœ¹å²ãæãããµãŒãããã«èœã¡çããŸããã
Heka ã¯ãã°ãååŸããTCPãä»ããŠå¥ã®Hekaã«éä¿¡ããŠãElasticSearchã¯ã©ã¹ã¿ãŒã«ããã«è»¢éããŸãã
ãã®èãã¯æ¬¡ã®ãšããã§ããHekaã¯åãµãŒããŒã«ã€ã³ã¹ããŒã«ããããã®ãµãŒããŒã®ãã¹ãŠã®ãµãŒãã¹ã®ãã°ã¯Protobufãã€ããªãããã³ã«ã«ããã¯ãããåæããã£ã«ã¿ãªã³ã°ãESãžã®éä¿¡ã®ããã«Hekaåä¿¡æ©ã«éä¿¡ãããŸãã
ãªãå€å žçãªELKã¹ã¿ãã¯ã§ã¯ãªããLogstashã§ã¯ãªãHekaãéæšå¥šã«ããã®ã
ãœãããŠã§ã¢ã®æ§æãšæ§æã«é¢ããŠãESã¯ã©ã¹ã¿ãŒã¯æ¬¡ã®ãšããã§ãã
ElasticSearch 2.2ã
ããã4.4.2ã
2ã€ã®ãã¹ã¿ãŒããŒãïŒIntel Xeon 2x E5-2660ã64 GB RAMã2x 146 GB RAID-10ã
Kibanaãã€ã³ã¹ããŒã«ãããã¯ã©ã€ã¢ã³ãããŒãïŒIntel Xeon 2xE5-2660ã64 GB RAMã2x146 GB RAID-10ã
- 4ã€ã®ããŒã¿ããŒãïŒIntel Xeon 2x E5-2640 v3; 512 GB RAMã3x16 TB RAID-10ã
ãã¹ãŠã®ESããŒãã¯åãããŒã«ã«ãããã¯ãŒã¯äžã«ãããåãã«ãŒã¿ãŒã«æ¥ç¶ãããŠããããããã©ã³ã¹ããŒããããã³ã«ã䜿çšããŠã¯ã©ã¹ã¿ãŒå ã§æ倧é床ã§éä¿¡ã§ããŸãã ãã®ãããªçµç¹ã¯ãã€ã³ããã¯ã¹ã®é 眮ãšã¯ã©ã¹ã¿ãŒã®åãã©ã³ã¹ãèããå éããŸãã
çŸä»£ã®äžçã§ã¯ãElasticsearch / Logstash / Kibanaã¹ã¿ãã¯ã¯ããã°ãæäœããããã®äºå®äžã®æšæºã«ãªã£ãŠããŸãã ElasticsearchãšKibanaã«ç°è°ããªãå ŽåãLogstashã«ã¯1ã€ã®èŠåããããŸããããã¯jRubyïŒJavaã§æžãããRubyèšèªã€ã³ã¿ãŒããªã¿ãŒïŒã§äœæãããã·ã¹ãã ã«JVMãå¿ èŠã§ãã Yandex.Moneyãæ°çŸã®ç©çãµãŒããŒãšä»®æ³ã³ã³ãããŒã«é 眮ãããå€æ°ã®ãã€ã¯ããµãŒãã¹ã§ããããšãèãããšãããããã«éãLogstashãšJAVAãé 眮ããã®ã¯ééã£ãŠããŸãã Hekaãéžã°ããçç±ã¯ããã®ã·ã³ãã«ããä¿¡é Œæ§ã軜ããééã¡ãã»ãŒãžã®ãã£ã«ã¿ãªã³ã°æ©èœãããã³åªããããŒã¿ãããã¡ãªã³ã°ã®ããã§ãã
補åã®ã¹ããŒã¿ã¹ã«é¢ããŠã¯ïŒéæšå¥šïŒ-ç§ãã¡ã«ãšã£ãŠããã¯è°è«ã§ã¯ãããŸããã è»äºç®çã®åŒç¢ãå»æ¢ãããŸããããããã¯ããªããé ã®äžã§èª°ããæã€ããšãä¿èšŒããŸãã ããšãã°ãéæšæºã®ãã©ã°ã€ã³ãŸãã¯ããã»ããµãå¿ èŠãªå Žåã¯ãçµéšè±å¯ãªéçºè ã®ã¹ã¿ããå šå¡ã補åã®å®æãæ¯æŽããŸãã
ããããããã¯ãã¹ãŠçè«ã§ãããå®è·µãžã®ç§»è¡ã®åé¡ãå§ãŸããŸããã
æªéã¯ããŒã¿éã«é ããŠããŸãã
ç§ãã¡ã®ä»äºã®è²¡åçãªè©³çŽ°ãèãããšãã»ãšãã©ãã¹ãŠã®ãµãŒãã¹ããã°ã«å€ãã®ç°ãªãæ å ±ãæžã蟌ã¿ãŸãã ã¹ã±ãŒã«ã®äŸãšç解ïŒã·ã¹ãã ã®äžéšã®ã³ã³ããŒãã³ãã®ãã°ã®ããªã¥ãŒã ã¯ã æ¯å25äžè¡ã«éããŸãã
ããŒããŠã§ã¢ãã©ãã»ã©åŒ·åã§ãã£ãŠããåäžã®Hekaã§ã¯ãªãããã®ãããªããªã¥ãŒã ã ããåŠçã§ããŸããããã©ãŒãã³ã¹ã®äœäžãšããŒã¿æ倱ã¯é¿ããããŸããã ãã¡ãããã©ã¡ããå®å šã«åãå ¥ãããããã®ã§ã¯ãªãããã HAProxyãå©ãã«ãªããŸãã æçµçãªã¹ããŒã ã¯æ¬¡ã®ãšããã§ãã
ãã®å³ã¯ãHekaãœãŒã¹ããHAProxy + Hekaãã³ãã«ãžã®ãã°ãã©ãã£ãã¯ã®äžè¬çãªæ¹åã瀺ããŠããŸãã
åãµãŒããŒã«ã¯ããã®ãµãŒããŒã®ãã€ã¯ããµãŒãã¹ã®ãã°ãåéããHekaã1ã€ãããŸãã ããŒã¿ã¯åéãããProtobufã«ããã±ãŒãžåãããTCPãä»ããŠããŒã¿ã»ã³ã¿ãŒã«ãµãŒãã¹ãæäŸããããŒããã©ã³ãµãŒã«éä¿¡ãããŸãã ããã¯ãšã³ãã¯ESããŒã¿ããŒãã«çŽæ¥é 眮ãããHAProxyã§ããããã®èåŸã«HekaããŒã«ããããŸãã 次ã«ãããŒã¿ãåãå ¥ããESJsonã§åããã±ãŒãžåããHTTPãããã³ã«ã䜿çšããŠããŒã«ã«ããŒã¿ããŒãã«éä¿¡ããŸãã
...ããŸããŸãªãã°ãã¡ã€ã«åœ¢åŒ
äŒç€Ÿã®äž»ãªèšèªã¯Javaã§ããããã°ã¯æšæºã®log4jã©ã€ãã©ãªãä»ããŠè¡šç€ºããããšããäºå®ã«ããããããããããªãŒã ã¯ã©ã¹ã¿ãŒãã®æ§ç¯æã«åãå ¥ããããåäžã®åœ¢åŒã¯ãããŸããã§ããã åãã€ã¯ããµãŒãã¹ã¯ã衚瀺ãã£ãŒã«ãã®ã»ãããæ¥æ圢åŒã®ããªãšãŒã·ã§ã³ãªã©ãç¬èªã®çš®é¡ã®ãã°ãäœæããŸããã éçºããã°ãäžè¬çãªåœ¢åŒã«å°ããŸã§åŸ ã¡ãããªãã£ãã®ã§ãç®æšãžã®åãã¯äžŠè¡ããŠããŸããã æ¢åã®ãã°åœ¢åŒã®åæãšåæã«ãä¿®æ£ã®ããã«ã¿ã¹ã¯ãéå§ãããæ£ãã圢åŒã®æ°ããããŒãžã§ã³ããªãªãŒã¹ããããšãã³ã¬ã¯ã¿ãŒã®èšå®ãå€æŽãããŸããã
ãžã¥ãŒã¹èªäœã«ç§»ããŸããã-èšå®ã®ãã¥ã¢ã³ã¹ã§ãã
Hekaã®åäœã¯.tomlãã¡ã€ã«ã«ãã£ãŠèšè¿°ãããèµ·åæã«åäžã®æ§æã«ã¢ã»ã³ãã«ãããèšè¿°ããããããã¯ã«å¿ããŠãHekaã¯ããŒã¿åŠçã¢ãã«ãæ§ç¯ããŸãã
åãããã¯ã«ã¯ããã€ãã®æ®µéããããŸãã
å ¥å-å ¥åã¹ããªãŒã ïŒãã¡ã€ã«ãTCP / UDPå ¥åãKafkaããèªã¿åã£ãããŒã¿ãDockerã³ã³ãããŒã®ã€ãã³ããªã©ïŒã
ã¹ããªãã¿ãŒ-ããã§ã¯ãã¹ããªãŒã å ã®åããŒã¿ãããã¯ã®éå§ãšçµäºã瀺ããŸãã Java Stacktraceã®ãããªè€æ°è¡ããŒã¿ã®å¿ é ã¹ãããã
ãã³ãŒããŒ-åä¿¡ããŒã¿ããã³ãŒãããããã®ã«ãŒã«ã説æããŸãã äž»ã«æ£èŠè¡šçŸãã³ãŒããŒã䜿çšããŸãã
ãã£ã«ã¿ãŒ-ããŒã¿ã®ãã£ã«ã¿ãŒåŠçãšå€æŽã®æ®µéã
ãšã³ã³ãŒããŒ-åä¿¡è 圢åŒã®ããŒã¿ã¹ããªãŒã ããšã³ã³ãŒãããŸãã
- åºå-ããã§ã¯ãããŒã¿ãã©ã®ããã«ãã©ãã«è¡ãã¹ããã説æããŸãã
ãããã®ãã¹ãŠã®æé ã¯ã Goããã³Luaã®ãã©ã°ã€ã³ã«ãããŸããã å¿ èŠã«å¿ããŠãç¬èªã®ãã®ãäœæã§ããŸãã ããšãã°ãLuaã®ãã£ã«ã¿ãŒãã©ã°ã€ã³ã¯ãESãžã®ç£èŠãµãŒãã¹ãªã¯ãšã¹ãã®éä¿¡ãé®æããŸãã ãŸãã¯ããã°ããæ©å¯ããŒã¿ãåãåããŸãã
å€ä»£ãšãžããç¥è©±ã®ãã£ã«ã¯éæ³ã®ç¥ã§ãã ãããŠãHekaããã°ã䜿çšããŠã§ããããšã¯åçŽã«éæ³ã§ãã
ãã°ãœãŒã¹ãµãŒããŒã®èšå®
ãã°ã®ãœãŒã¹ãµãŒããŒãšservice.tomlãã¡ã€ã«ã®äŸã䜿çšããŠãHekaã®æ§æãåæããŸãããã
[money-service-log] type = "LogstreamerInput" log_directory = "/var/log/tomcat" file_match = "money-service.log" splitter = "RegexSplitter" decoder = "service_decoder"
æãåçŽãªã±ãŒã¹ã¯åäžã®ãã¡ã€ã«ã§ãã·ã¹ãã ã®æ段ã«ãã£ãŠããŒããŒã·ã§ã³ãçºçããŸãã å€æ°ã®ãã¡ã€ã«ãããã圢åŒãç°ãªãå Žåã¯ãå ¥å/ãã³ãŒããŒã®åãã¢ãèšè¿°ããå¿ èŠããããŸãã ãã詳现ãªèª¬æã«ã€ããŠã¯ãå ¬åŒããã¥ã¡ã³ããåç §ããããšããå§ãããŸã ã äžæãªç¹ãæ®ã£ãŠããå Žåã¯ãã³ã¡ã³ãã§ç¢ºèªããŠãã ããã
[RegexSplitter] delimiter = '\n(\[\d\d\d\d-\d\d-\d\d)' delimiter_eol = false
ãã°ã¯è€æ°è¡ïŒåãã¹ã¿ãã¯ãã¬ãŒã¹ïŒã«ãªãå¯èœæ§ããããããHekaãããã¹ãã®ãããããã¯ãçµäºããŠå¥ã®ãããã¯ãéå§ããå Žæãç解ã§ããRegexSplitterãå¿ããªãã§ãã ããã
[service_decoder] type = "PayloadRegexDecoder" match_regex = '^\[(?P<timestamp>\d{4}-\d{2}-\d{2}T[\d:.\+]+\])\s+(?P<level>[AZ]+)\s+\[(?P<thread>.*)\]\s+\[(?P<context>\S*)\]\s+\[(?P<traceid>\S*)\]\s+\[(?P<unilabel>\S*)\]\s\[(?P<class>\S+)\]\s-\s(?P<msg>.*)' log_errors = true [service_decoder.message_fields] @timestamp = "%timestamp%" level = "%level%" thread = "%thread%" context = "%context%" traceid = "%traceid%" unilabel = "%unilabel%" class = "%class%" msg = "%msg%"
match_regexã§ã¯ ãGoèšèªæšæºã®æ£èŠè¡šçŸã䜿çšããŠãã°è¡ãèšè¿°ããŸãã Goã®æ£èŠè¡šçŸã¯ãæšæºã®PCREãšã»ãŒäžèŽããŠããŸãããHekaã®éå§ãæåŠããå¯èœæ§ã®ãããã¥ã¢ã³ã¹ãããã€ããããŸãã ããšãã°ãäžéšã®PCREå®è£ ã§ã¯ã次ã®æ§æãèš±å¯ããŸãã
(?<groupname>.*)
ããããGOLANGã¯èš±ããŸããã
log_errorsãã©ã¡ãŒã¿ãŒã䜿çšããŠããã¹ãŠã®ãšã©ãŒãåå¥ã®ãã°ã«åéããŸã-åŸã§å¿ èŠã«ãªããŸãã
[ServiceOutput] type = "TcpOutput" address = "loadbalancer.server.address:port" keep_alive = true message_matcher = "Logger == 'money-appname'" use_buffering = true [ServiceOutput.buffering] max_file_size = 100857600 max_buffer_size = 1073741824 full_action = "block"
æµåºãããã¡ãªã³ã°ã¯ãHekaã®åªããæ©èœã®1ã€ã§ãã ããã©ã«ãã§ã¯ãåºåãããã¡ã¯æ¬¡ã®ãã¹ã«ä¿åãããŸãã
/var/cache/hekad/output_queue/OutputName
èšå®ã§ã¯ãåãããã¡ãŒãã¡ã€ã«ã®ãµã€ãºã100 MBã«å¶éããååºåã¢ãžã¥ãŒã«ã®åèšãã£ãã·ã¥ãµã€ãºã1 GBã«èšå®ããŸãã full_actionãã©ã¡ãŒã¿ãŒã«ã¯ã次ã®3ã€ã®å€ãæå®ã§ããŸãã
ã·ã£ããããŠã³ -ãããã¡ãŒããªãŒããŒãããŒãããšãHekaã¯åæ¢ããŸãã
drop-ãããã¡ããªãŒããŒãããŒãããšãã¹ã¿ãã¯ã®ããã«åäœãéå§ãããã¥ãŒå ã®å€ãã¡ãã»ãŒãžãåé€ããŸãã
- ããã㯠-ãããã¡ãŒããã£ã±ãã«ãªããšãHekaã¯ãã¹ãŠã®æäœãäžæåæ¢ããããŒã¿ãéä¿¡ã§ããããã«ãªããŸã§åŸ æ©ããŸãã
ãããã¯ã䜿çšãããšããã°ã®1è¡ã倱ãããªãããšãä¿èšŒãããŸãã å¯äžã®ãã€ãã¹ã¯ãæ¥ç¶ãåæãããããã£ãã«ãäœäžããå Žåãæ¥ç¶ãåéãããšãã«ãã©ãã£ãã¯ãæ¥æ¿ã«å¢å ããããšã§ãã ããã¯ãHekaãèç©ããããããã¡ãŒãéä¿¡ãããªã¢ã«ã¿ã€ã ã§åŠçã«æ»ãããšããããã§ãã åä¿¡ããŒã«ã¯äœè£ãæã£ãŠèšèšããå¿ èŠããããŸãããã®ãããªç¶æ³ã®å¯èœæ§ãå¿ ãèæ ®ããŠãã ãããããããªããšãDDoSèªäœãç°¡åã«å€æŽã§ããŸãã
ãšããã§ãHekaæ§æã§ã®äºéåŒçšç¬ŠãšåäžåŒçšç¬Šã®äœ¿çšã«é¢ããŠã¯ã次ã®ããšãæ瀺ãããŠããŸãã
åäžåŒçšç¬Šã§å²ãŸããå€æ°ã®å€ã¯ãããã©ã«ãã§ã¯çã®æååãšããŠæ±ãããŸãã ç¹æ®æåãã¹ã¯ãªãŒãã³ã°ããå¿ èŠã¯ãããŸããã
- äºéåŒçšç¬Šã§å²ãŸããå€æ°ã®å€ã¯ãã¬ãŒã³ããã¹ããšããŠæ±ãããå€æ°ã§æ£èŠè¡šçŸã䜿çšããå Žåã¯äºéãšã¹ã±ãŒããå¿ èŠã§ãã
ãããŠãã®ãã¥ã¢ã³ã¹ã¯ç§ã«å€ãã®è¡ãã ãŸããŸããã
ããã¯ãšã³ãæ§æ
ãã©ã³ãµãŒã®ããã¯ãšã³ãã¯ãåESããŒã¿ããŒãäžã®HAProxyãš3ã€ã®Hekaã€ã³ã¹ã¿ã³ã¹ã®æã§ãã
HAProxyã§ã¯ããã¹ãŠãéåžžã«åçŽã§ããã説æãå¿ èŠãšããªãããã§ãïŒ
listen pool_502 bind 0.0.0.0:502 balance roundrobin default-server fall 5 inter 5000 weight 10 server heka_1502 127.0.0.1:1502 check server heka_2502 127.0.0.1:2502 check server heka_3502 127.0.0.1:3502 check
åãµãŒããŒã¯ãããŒãã®ã¿ãç°ãªã3ã€ã®Hekaã€ã³ã¹ã¿ã³ã¹ãå®è¡ããŸãã
[Input_502_1] type = "TcpInput" address = "0.0.0.0:1502" keep_alive = true keep_alive_period = 180 decoder = "MultiDecoder_502" [MultiDecoder_502] type = "MultiDecoder" subs = ['Service1Decoder', 'Service2Decoder'] cascade_strategy = "first-wins" log_sub_errors = true
å€ãã®ãµãŒãã¹ã®ãã°ã1ã€ã®ããŒããééãããããæ§æã§ã¯MultiDecoderã䜿çšããŸãã å åããªã·ãŒã¯ãæåã®äžèŽã®åŸããã³ãŒããŒã®ãããªãåæãåæ¢ããããšãæå³ããŸãã
[Service1Decoder] type = "ProtobufDecoder" [Service2Decoder] type = "ProtobufDecoder" [Service1Encoder] type = "ESJsonEncoder" index = "service1-logs-%{%Y.%m.%d}" es_index_from_timestamp = false type_name = "%{Logger}" fields = [ "DynamicFields", "Payload", "Hostname" ] dynamic_fields = ["@timestamp", "level", "thread", "context", "traceid", "unilabel", "class", "msg"] [Service1Encoder.field_mappings] Payload = "message" Hostname = "MessageSourceAddress"
es_index_from_timestampãã©ã¡ãŒã¿ãŒã¯ ãã€ã³ããã¯ã¹åã圢æããæ¥æãåä¿¡ããŒã¿ããã§ã¯ãªãããµãŒããŒã®çŸå°æéããååŸãããããšã瀺ãããã«å¿ èŠã§ãã ãµãŒããŒãç°ãªãã¿ã€ã ãŸãŒã³ã§åäœãã誰ããUTCã§ã¿ã€ã ãã°ããã°ã«æžã蟌ã¿ã誰ããMSKã«æžã蟌ãå Žåã®æ··ä¹±ãåé¿ã§ããŸãã
ã€ã³ããã¯ã¹ã®ååã¯ã1ã€ã®ãµãŒãã¹-1ã€ã®ã€ã³ããã¯ã¹ãã®ååãå®è£ ããŠãããæ¯æ¥æ°ããã€ã³ããã¯ã¹ãäœæãããŸãã
[Service1Output] type = "ElasticSearchOutput" message_matcher = "Logger == 'money-service1'" server = "http://localhost:9200" encoder = "Service1Encoder" use_buffering = true
åºåãã©ã°ã€ã³ã¯ããã°ãã¡ã€ã«åã«å¯Ÿå¿ããmessage_matcherãã©ã¡ãŒã¿ãŒã«åºã¥ããŠããŒã¿ã¹ããªãŒã ã解æããŸãã ãããã¯ãŒã¯ãéè² è·ã«ããªãããã«ãHekaã¯ããŒã¿ãã€ã³ã¹ããŒã«ãããŠããããŒã«ã«ããŒã¿ããŒãã«ããŒã¿ãéä¿¡ããŸãã ããã«ãESèªäœã¯ãã¯ã©ã¹ã¿ãŒããŒã¿ããŒãéã®ãã©ã³ã¹ããŒããããã³ã«ãä»ããŠã€ã³ããã¯ã¹ä»ãããŒã¿ãéä¿¡ããŸãã
ãããã«
äžèšã®ã¹ããŒã ã¯æ£åžžã«æ©èœãã1ç§ããã25ã3äžã¬ã³ãŒãã®ã€ã³ããã¯ã¹ãäœæããŸãã Hekaåä¿¡ããŒã«ã®å®å šããŒãžã³ã«ãããæ倧10äžã¬ã³ãŒã/ç§ã®è² è·ããŒã¯ã«èããããšãã§ããŸãã
Zabbixããã®çµ±èšã
ElasticSearchã§ã¯ãéå»21æ¥éã®ãã°ãä¿åããŸãã çµéšãããå€ãããŒã¿ãžã®ã¢ã¯ã»ã¹ã¯ã»ãšãã©å¿ èŠãªãããšã瀺ãããŠããŸãã ãã ããå¿ èŠã«å¿ããŠãããŒã¿ãã»ãŒæ°žä¹ ã«ä¿åãããã°ãµãŒããŒãããã€ã§ãèŠæ±ã§ããŸãã
Kopfã«ããã¯ã©ã¹ã¿ãŒã®çŸåšã®ç¶æ ã
ãã°ã®åéãšé ä¿¡ã«é¢é£ããã·ã¹ãã ã®éšåã®ã¿ã説æããããã次ã®èšäºã§ã¯ElasticSearchã¯ã©ã¹ã¿ãŒèªäœãšãã®æ§æã«ã€ããŠèª¬æããŸãã 人é¡ãžã®ä¿¡é Œã倱ãããšãªããä»®æ³åã®æ¹æ³ãããŒãžã§ã³2.2ãã5.3ã«ç§»è¡ãã240å件ã®ã¬ã³ãŒããã©ã®ããã«è»¢éããããäŒããããšãèããŠããŸãã
ã¹ããŒãªãŒã«äœãä»ã®ãã®ãè¿œå ãããã詳现ãèŠå€±ã£ãããšãããã§ããããïŒ ã³ã¡ã³ãã§ããªãã®æèŠãå ±æããŠãã ããã