
ãã®èšäºã§ã¯ãHekaãšElasticSearchã«åºã¥ãããã°åéã·ã¹ãã ãšãã£ãŒã«ãã®çµéšãå
±æãç¶ããŸãã
ä»åã®è©±ã¯ãElasticSearch 2.2ãš5.2.2ã®2ã€ã®ã¯ã©ã¹ã¿ãŒéã®ããŒã¿ç§»è¡ã«é¢ãããã®ã§ ãããã«ã¯ããªãã®è² æ
ãããããŸããã çµå±ããã§ã«çšŒåããŠããã·ã¹ãã ãå£ããã«240åä»¶ã®ã¬ã³ãŒãã茞éããå¿
èŠããããŸããã
åã®èšäºã¯ãã·ã¹ãã ãæ©èœãããã°ãå°çããŠElasticSearchã¯ã©ã¹ã¿ãŒã«è¿œå ãããKibanaãä»ããŠãªã¢ã«ã¿ã€ã ã§è¡šç€ºã§ãããšããäºå®ã§çµãããŸããã ããããã¯ã©ã¹ã¿ãŒã¯å
ã
ãæé·ã®ããã ãã«ããªãã®ã¡ã¢ãªã®äœè£ãæã£ãŠçµã¿ç«ãŠãããŠããŸããã
ElasticSearchïŒä»¥éãåã«ESïŒã®å
¬åŒããã¥ã¡ã³ãã«ç®ãåãããšããŸããã32 GBãè¶
ããªãã§ãã ããããšããå³ããèŠåã衚瀺ãããŸãã è¶
éãããšããã©ãŒãã³ã¹ãå®å
šã«åæ¢ãããŸã§äœäžããã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ãäžçã忢ããããšãã粟ç¥ã§åæ§ç¯ãå®è¡ããŸãã ãµãŒããŒã¡ã¢ãªã«é¢ãã補é å
ã®æšå¥šäºé
ïŒããŒãçšã«32 GBïŒxms / xmxïŒããã³32 GBã®ç©ºããã£ãã·ã¥ã¹ããŒã¹ã 1ã€ã®ããŒã¿ããŒãã«åèš64 GBã®ç©çã¡ã¢ãªã
ããããããå€ãã®ã¡ã¢ãªãããå Žåã¯ã©ãã§ããããïŒ å
¬åŒã®çãã¯ãã¹ãŠåãããã¥ã¡ã³ãã«ãããŸã-ESã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãåããã¹ãã«é
眮ããŸãã ãããããã®ã¢ãããŒãã¯ç§ã«ã¯ããŸãé©åã§ã¯ãªããšæãããŸããããªããªããããã«å¯Ÿããéåžžã®ææ®µãæäŸãããŠããªãã£ãããã§ãã initã¹ã¯ãªããã®è€è£œã¯20äžçŽã§ãããããLXDã³ã³ããã«ããŒããé
眮ããã¯ã©ã¹ã¿ãŒä»®æ³åã¯ããè峿·±ããã®ã«èŠããŸããã
LXDïŒLinux Container DaemonïŒ-ãããããã³ã³ãã軜éãã¥ãŒã¢ãã ãéãããã€ããŒãã€ã¶ãŒãšã¯ç°ãªããä»®æ³åã®ãªãŒããŒããããåæžããã®ã«åœ¹ç«ã€ããŒããŠã§ã¢ãšãã¥ã¬ãŒã·ã§ã³ã¯å«ãŸããŠããŸããã ããã«ãé«åºŠãªREST APIã䜿çšããããªãœãŒã¹ã®æè»ãªæ§æããã¹ãéã§ã³ã³ãããŒã転éããæ©èœãããã³åŸæ¥ã®ä»®æ³åã·ã¹ãã ã«ããç¹åŸŽçãªãã®ä»ã®æ©èœãåããŠããŸãã

ããã¯ãå°æ¥ã®ã¯ã©ã¹ã¿ãŒã®æ§é ã§ãã
äœæ¥ã®éå§æã«ã次ã®ã¢ã€ãã³ãæå
ã«ãããŸããã
èšç»ã©ããã åç©çãµãŒããŒã«ã¯ããã¹ã¿ãŒããŒããšã¯ã©ã€ã¢ã³ãããŒãã®2ã€ã®ESããŒã¿ããŒãããããŸãã ããã«ããµãŒããŒã¯ãHAProxyãã€ã³ã¹ããŒã«ããããã°ã®ã³ã³ãããŒã¬ã·ãŒããŒãšããã®ç©çãµãŒããŒã®ããŒã¿ããŒããåŠçããããã®HekaããŒã«ããã¹ãããŸãã
æ°ããã¯ã©ã¹ã¿ãŒã®æºå
ãŸããããŒã¿ããŒãã®1ã€ãè§£æŸããå¿
èŠããããŸãããã®ãµãŒããŒã¯ããã«æ°ããã¯ã©ã¹ã¿ãŒã«ç§»åããŸãã æ®ãã®3ã€ã®è² è·ã¯30ïŒ
å¢å ããŸããã察åŠããŸããããã¯å
æã®ããŠã³ããŒãçµ±èšã§ç¢ºèªãããŠããŸãã ããã«ãããã¯é·ãã¯ãããŸããã æ¬¡ã«ãã¯ã©ã¹ã¿ãŒããã®ããŒã¿ããŒãã®æšæºåºåã«å¯Ÿããäžé£ã®ã¢ã¯ã·ã§ã³ã瀺ããŸãã
æ°ããã€ã³ããã¯ã¹ã®é
眮ãçŠæ¢ããããšã«ããã4çªç®ã®ããŒã¿ããŒãããè² è·ãåé€ããŸãã
{ "transient": { "cluster.routing.allocation.exclude._host": "log-data4" } }
æ®ãã®ããŒã¿ããŒãã«äžå¿
èŠãªè² è·ããããªãããã«ãç§»è¡æã«ã¯ã©ã¹ã¿ãŒã®èªåãªãã©ã³ã¹ããªãã«ããŸãã
{ "transient": { "cluster.routing.rebalance.enable": "none" } }
è§£æŸãããããŒã¿ããŒãããã€ã³ããã¯ã¹ã®ãªã¹ããåéããããã3ã€ã®çããéšåã«åå²ããæ¬¡ã®ããã«æ®ãã®ããŒã¿ããŒãã«ã·ã£ãŒãã®ç§»åãéå§ããŸãïŒåã€ã³ããã¯ã¹ãšã·ã£ãŒãã«å¯ŸããŠïŒã
PUT _cluster/reroute { "commands" : [ { "move" : { "index" : "service-log-2017.04.25", "shard" : 0, "from_node" : "log-data4", "to_node" : "log-data1" } } }
転éãå®äºããããè§£æŸãããããŒãããªãã«ãããªãã©ã³ã¹ãæ»ãããšãå¿ããªãã§ãã ããã
{ "transient": { "cluster.routing.rebalance.enable": "all" } }
ãããã¯ãŒã¯ãšã¯ã©ã¹ã¿ãŒã®è² è·ã蚱容ããå Žåãããã»ã¹ãé«éåããããã«ãåæã«ç§»åããã·ã£ãŒãã®ãã¥ãŒãå¢ããããšãã§ããŸãïŒããã©ã«ãã§ã¯ããã®æ°ã¯2ã§ãïŒ
{ "transient": { "cluster": { "routing": { "allocation": { "cluster_concurrent_rebalance": "10" } } } } }
å€ãã¯ã©ã¹ã¿ãŒã¯åŸã
ã«å埩ããŠããŸããã3ã€ã®æ¢åã®ãµãŒããŒäžã«ãElasticSearch 5.2.2ã«åºã¥ãæ°ãããµãŒããŒãæ§ç¯ããåããŒãã«åå¥ã®LXDã³ã³ãããŒã䜿çšããŠããŸãã ã±ãŒã¹ã¯åçŽã§ãããããã¥ã¡ã³ãã§è©³ãã説æãããŠããããã詳现ã¯çç¥ããŸãã ã©ã¡ãããšèšãã°-ã³ã¡ã³ãã§å°ããŠãç§ã¯ããªãã«è©³çްãæããŸãã
æ°ããã¯ã©ã¹ã¿ãŒã®ã»ããã¢ããäžã«ã次ã®ããã«ã¡ã¢ãªãå²ãåœãŠãŸããã
ãã¹ã¿ãŒããŒãïŒ4 GB
ã¯ã©ã€ã¢ã³ãããŒãïŒ8 GB
ããŒã¿ããŒãïŒ32 GB
- XMSã¯ã©ãã§ãXMXãšçããèšå®ãããŸãã
ãã®ãããªååžã¯ãããã¥ã¡ã³ããçè§£ããå€ãã¯ã©ã¹ã¿ãŒã®çµ±èšã衚瀺ããåžžèãé©çšããåŸã«çãŸããŸããã
ã¯ã©ã¹ã¿ãŒãåæããŸã
ãããã£ãŠã2ã€ã®ã¯ã©ã¹ã¿ãŒããããŸãã
å€ã-ãããããéãµãŒããŒäžã®3ã€ã®ããŒã¿ããŒãã
- æ°ãããLXDã³ã³ãããŒã«6ã€ã®ããŒã¿ããŒããããããµãŒããŒããšã«2ã€ã
æåã«è¡ãããšã¯ãäž¡æ¹ã®ã¯ã©ã¹ã¿ãŒã§ãã©ãã£ãã¯ãã©ãŒãªã³ã°ãæå¹ã«ããããšã§ãã Hekaåä¿¡ããŒã«ïŒè©³çްãªèª¬æã«ã€ããŠã¯ãã·ãªãŒãºã®åã®èšäºãåç
§ïŒã§ãåŠçäžã®åãµãŒãã¹ã«å¥ã®åºåã»ã¯ã·ã§ã³ã远å ããŸãã
[Service1Output_Mirror] type = "ElasticSearchOutput" message_matcher = "Logger == 'money-service1''" server = "http://newcluster.receiver:9200" encoder = "Service1Encoder" use_buffering = true
ãã®åŸããã©ãã£ãã¯ã¯äž¡æ¹ã®ã¯ã©ã¹ã¿ãŒã«äžŠè¡ããŠéä¿¡ãããŸãã 21æ¥ä»¥å
ã®éçšã³ã³ããŒãã³ããã°ã§ã€ã³ããã¯ã¹ãä¿åããããšãèãããšãããã§åæ¢ã§ããŸãã 21æ¥åŸãã¯ã©ã¹ã¿ãŒã®ããŒã¿ã¯åãã«ãªããå€ãããŒã¿ã¯åæããŠéã¢ã»ã³ãã«ã§ããŸãã ããããé·ãåŸ
ã€ã®ã¯é·ããŠéå±ã§ãã ãããã£ãŠãæåŸã®æãè峿·±ã段éã§ããã¯ã©ã¹ã¿ãŒéã®ããŒã¿ç§»è¡ã«é²ã¿ãŸãã
ã¯ã©ã¹ã¿ãŒéã§ã€ã³ããã¯ã¹ã転éãã
ãããžã§ã¯ãã®æç¹ã§ã¯ESã¯ã©ã¹ã¿ãŒéã§ããŒã¿ãç§»è¡ããããã®å
¬åŒã®æé ããªãããããã¯ã©ã³ãããçºæããããããŸãã-Logstashã䜿çšããŸãã Hekaãšã¯ç°ãªãã圌ã¯ESã«ããŒã¿ãæžã蟌ãã ãã§ãªããããããããŒã¿ãèªã¿åãããšãã§ããŸãã
åã®èšäºã®ã³ã¡ã³ããã倿ãããšãå€ãã®äººãäœããã®çç±ã§Logstashã奜ãã§ã¯ãªããšããæèŠã圢æããŠããŸãã ãã ããåããŒã«ã¯ç¬èªã®ã¿ã¹ã¯çšã«èšèšãããŠãããLogstashã¯ã¯ã©ã¹ã¿ãŒéã®ç§»è¡ã«æé©ã§ãã
ç§»è¡æéäžãã€ã³ããã¯ã¹ã®ã¡ã¢ãªãããã¡ã®ãµã€ãºãããã©ã«ãã®10ïŒ
ãã40ïŒ
ã«å¢ãããšäŸ¿å©ã§ãã40ïŒ
ã¯ãESããŒã¿ããŒãã®ç©ºãã¡ã¢ãªã®å¹³åéã«ãã£ãŠéžæãããŸãã ãŸããåããŒã¿ããŒãã§ã€ã³ããã¯ã¹ã®æŽæ°ããªãã«ããå¿
èŠããããŸãããã®ããã«ã次ã®ãã©ã¡ãŒã¿ãããŒã¿ããŒãæ§æã«è¿œå ããŸãã
memory.index_buffer_size: 40% index.refresh_interval: -1
ããã©ã«ãã§ã¯ãã€ã³ããã¯ã¹ã¯æ¯ç§æŽæ°ããããããäœåãªè² è·ãããããŸãã ãããã£ãŠãèª°ãæ°ããã¯ã©ã¹ã¿ãŒãèŠãŠããŸããããæŽæ°ãç¡å¹ã«ããããšãã§ããŸãã åæã«ãæ°ããã¯ã©ã¹ã¿ãŒã®ããã©ã«ããã³ãã¬ãŒããäœæããŸãããããã¯ãæ°ããã€ã³ããã¯ã¹ãäœæãããšãã«äœ¿çšãããŸãã
{ "default": { "order": 0, "template": "*", "settings": { "index": { "number_of_shards": "6", "number_of_replicas": "0" } } } }
ãã³ãã¬ãŒãã䜿çšããŠãç§»è¡äžã«ã¬ããªã±ãŒã·ã§ã³ããªãã«ããããšã§ããã£ã¹ã¯ã·ã¹ãã ã®è² è·ã軜æžããŸãã
Logstashã®å Žåãæ¬¡ã®æ§æãååŸãããŸããã
input { elasticsearch { hosts => [ "localhost:9200" ] index => "index_name" size => 5000 docinfo => true query => '{ "query": { "match_all": {} }, "sort": [ "@timestamp" ] }'} } output { elasticsearch { hosts => [ "log-new-data1:9200" ] index => "%{[@metadata][_index]}" document_type => "%{[@metadata][_type]}" document_id => "%{[@metadata][_id]}"}} }
å
¥åã»ã¯ã·ã§ã³ã§ã¯ãããŒã¿ååŸã®ãœãŒã¹ã説æãã5000ã¬ã³ãŒãããšã«ããŒã¿ããŸãšããŠåéããããã·ã¹ãã ã«æç€ºããã¿ã€ã ã¹ã¿ã³ãã§ãœãŒãããããã¹ãŠã®ã¬ã³ãŒããéžæããŸãã
åºåã§ã¯ãåä¿¡ããããŒã¿ã®éä¿¡å
ãæå®ããå¿
èŠããããŸãã å€ãã€ã³ããã¯ã¹ããååŸã§ããæ¬¡ã®ãã£ãŒã«ãã®èª¬æã«æ³šæããŠãã ããã
Logstashèµ·åãªãã·ã§ã³ïŒ
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/migrate.conf --pipeline.workers 8
ç§»è¡ã®é床ã«åœ±é¿ããéèŠãªãã©ã¡ãŒã¿ãŒã¯ãLogstashãESã«éä¿¡ãããã³ãã«ã®ãµã€ãºãšãåŠçã®ããã«åæã«èµ·åãããããã»ã¹ïŒpipeline.workersïŒã®æ°ã§ãã ãããã®å€ã®éžæã決å®ããå³å¯ãªã«ãŒã«ã¯ãããŸãããæ¬¡ã®æ¹æ³ã§å®éšçã«éžæãããŸããã
å°ããªã€ã³ããã¯ã¹ãéžæããŸãããã¹ãã§ã¯ã100äžã®ãã«ãã©ã€ã³ïŒããã¯éèŠã§ãïŒã¬ã³ãŒããæã€ã€ã³ããã¯ã¹ã䜿çšããŸããã
Logstashã䜿çšããŠããã®ã€ã³ããã¯ã¹ã®ç§»è¡ãéå§ããŸãã
ãæåŠãããããšã³ããªã®æ°ã«æ³šæããªãããåä¿¡ããŒã¿ããŒãã®thread_poolã調ã¹ãŸãã ãã®å€ã®å¢å ã¯ãESãçä¿¡ããŒã¿ã®ã€ã³ããã¯ã¹ãäœæããæéããªãããšãæç¢ºã«ç€ºããŠããŸãããã®å Žåã䞊åLogstashããã»ã¹ã®æ°ãæžããå¿
èŠããããŸãã
- ãæåŠããããã¬ã³ãŒãã®æ¥æ¿ãªå¢å ããªãå Žåããã«ã¯/ã¯ãŒã«ãŒã®æ°ãå¢ãããŠãããã»ã¹ãç¹°ãè¿ããŸãã
ãã¹ãŠãæºåãããåŸãç§»åã®ããã®ã€ã³ããã¯ã¹ã®ãªã¹ããã³ã³ãã€ã«ãããæ§æãäœæãããä»åŸã®è² è·ã«é¢ããèŠåããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãšç£èŠã®éšéã«éä¿¡ãããããã»ã¹ãéå§ããŸããã
logstashããã»ã¹ã忢ããŠåèµ·åããªãããã«ã次ã®ã€ã³ããã¯ã¹ã®ç§»è¡ãå®äºããåŸãæ°ããæ§æãã¡ã€ã«ã§æ¬¡ã®ããšãè¡ããŸããã
ç§»åã®ããã®ã€ã³ããã¯ã¹ã®ãªã¹ãã¯ã3ã€ã®ã»ãŒçããéšåã«åå²ãããŸããã
/etc/logstash/conf.d/migrate.confã«ã¯ãæ§æã®éçãªéšåã®ã¿ãæ®ã£ãŠããŸãã
input { elasticsearch { hosts => [ "localhost:9200" ] size => 5000 docinfo => true query => '{ "query": { "match_all": {} }, "sort": [ "@timestamp" ] }'} } output { elasticsearch { hosts => [ "log-new-data1:9200" ] index => "%{[@metadata][_index]}" document_type => "%{[@metadata][_type]}" document_id => "%{[@metadata][_id]}"}} }
ãã¡ã€ã«ããã€ã³ããã¯ã¹åãèªã¿åããlogstashããã»ã¹ãåŒã³åºãã¹ã¯ãªãããã³ã³ãã€ã«ããã€ã³ããã¯ã¹åãšããŒãã¢ãã¬ã¹ãåçã«çœ®ãæããŠç§»è¡ããŸããã
- åèšã§ãåãã¡ã€ã«ã«1ã€ãã€ã indexes.to.move.0.txt ã indexes.to.move.1.txt ã indexes.to.move.2.txtã® 3ã€ã®ã¹ã¯ãªããã€ã³ã¹ã¿ã³ã¹ãå®è¡ããå¿
èŠããããŸãã ãã®åŸãããŒã¿ã¯1çªç®ã3çªç®ã5çªç®ã®ããŒã¿ããŒãã«éãããŸãã
ã¹ã¯ãªããã€ã³ã¹ã¿ã³ã¹ã®1ã€ã®ã³ãŒãïŒ
cat /tmp/indices_to_move.0.txt | while read line do echo $line > /tmp/0.txt && /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/migrate.conf --pipeline.workers 8 --config.string "input {elasticsearch { index => \"$line\" }} output { elasticsearch { hosts => [ \"log-new-data1:9200\" ] }}" done;
ç§»è¡ã¹ããŒã¿ã¹ã衚瀺ããã«ã¯ãå¥ã®ã¹ã¯ãªããããåéãããå¥ã®ããã»ã¹ã§ç»é¢ãå®è¡ããå¿
èŠããããŸããïŒ watch -d -n 60ã䜿çšïŒ ã
ç§»è¡ããã»ã¹ã«ã¯çŽ1é±éããããŸããã æ£çŽãªãšãããä»é±ã¯èœã¡çãããããŸããã§ããã
ç§»ååŸ
ã€ã³ããã¯ã¹ãç§»åããåŸãå®è¡ããããšã¯ã»ãšãã©ãããŸããã åææ¥ã®ããæŽããå€ãå€ãã¯ã©ã¹ã¿ãŒã¯ãªãã«ãªããDNSãšã³ããªã倿ŽãããŸããã ãããã£ãŠãæææ¥ã«ä»äºã«æ¥ã人ã¯å
šå¡ã5çªç®ã®Kibanaã®æ°ãããã³ã¯ãã«ãŒã®ã€ã³ã¿ãŒãã§ã€ã¹ãèŠãŸããã ã¹ã¿ããã¯æŽæ°ãããé
è²ã«æ
£ããæ°ããæ©äŒãæ¢ããªãããä»äºãç¶ããŸããã
å€ãã¯ã©ã¹ã¿ãŒãããå¥ã®ç¡æãµãŒããŒãååŸããæ°ããã¯ã©ã¹ã¿ãŒçšã®ESããŒã¿ããŒããæã€2ã€ã®ã³ã³ãããŒãé
眮ããŸããã æ®ãã®éã¯ãã¹ãŠäºåã«ãªããŸããã
æçµçãªæ§é ã¯ãæåã®ã¹ããŒã ã§èšç»ããããšããã«ãªããŸããã
3ã€ã®ãã¹ã¿ãŒããŒãã
3ã€ã®ã¯ã©ã€ã¢ã³ãããŒãã
8ã€ã®ããŒã¿ããŒãïŒãµãŒããŒããšã«2ã€ïŒã
- 4ã€ã®ãã°åä¿¡è
ïŒHAProxy + HekaããŒã«ãåãµãŒããŒã«1ã€ïŒã
ã¯ã©ã¹ã¿ãŒãéçšã¢ãŒãã«ç§»è¡ããŸã-ãããã¡ãŒã®ãã©ã¡ãŒã¿ãŒãšã€ã³ããã¯ã¹ãæŽæ°ããééãè¿ããŸãã
memory.index_buffer_size: 10% index.refresh_interval: 1s
ã¯ã©ã¹ã¿ã®ã¯ã©ãŒã©ã ïŒ3ã€ã®ãã¹ã¿ãŒããŒããèæ
®ïŒã¯2ã«èšå®ãããŸãã
discovery.zen.minimum_master_nodes: 2
次ã«ã8ã€ã®ããŒã¿ããŒããæ¢ã«ããããšãèæ
®ããŠãã·ã£ãŒãå€ãè¿ãå¿
èŠããããŸãã
{ "default": { "order": 0, "template": "*", "settings": { "index": { "number_of_shards": "8", "number_of_replicas": "1" } } } }
æåŸã«ãé©åãªç¬éïŒãã¹ãŠã®åŸæ¥å¡ãå®¶ã«åž°ã£ãïŒãéžæããã¯ã©ã¹ã¿ãŒãåèµ·åããŸãã
ãã·ã£ãŒãããããæ··ããªãã§ãã ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã·ã¹ãã ã®å
šäœçãªä¿¡é Œæ§ã®äœäžã«ç¹ã«æ³šæãæããããšæããŸããããã¯ã1å°ã®IronãµãŒããŒã«è€æ°ã®ESããŒã¿ããŒããé
眮ããå®éã«ä»®æ³åãè¡ãå Žåã«çºçããŸãã

ESã¯ã©ã¹ã¿ãŒã®èгç¹ããã¯ããã¹ãŠãåé¡ãããŸãããããŒã¿ããŒãã®æ°ã«ãã£ãŠã€ã³ããã¯ã¹ãã·ã£ãŒãã«åå²ãããåã·ã£ãŒãã«ã¯ã¬ããªã«ãããããã©ã€ããªã·ã£ãŒããšã¬ããªã«ã·ã£ãŒãã¯ç°ãªãããŒãã«æ ŒçŽãããŸãã
ESã®ã·ã£ãŒãã£ã³ã°ããã³ã¬ããªã±ãŒã·ã§ã³ã·ã¹ãã ã¯ãäœæ¥ã®é床ãšããŒã¿ã¹ãã¬ãŒãžã®ä¿¡é Œæ§ã®äž¡æ¹ãåäžãããŸãã ãã ãããã®ã·ã¹ãã ã¯ãæ©åšã®åé¡ãçºçããå Žåã«1ã€ã®ESããŒã¿ããŒãã®ã¿ã倱ãããå Žåã«ãåäžãµãŒããŒäžã®1ã€ã®ESããŒãã®é
眮ãèæ
®ããŠèšèšãããŸããã ã¯ã©ã¹ã¿ãŒã®å Žåã 2ã€ãèœã¡ãŸãã ãã¹ãŠã®ããŒãéã®ã€ã³ããã¯ã¹ã®åçåå²ãšåã·ã£ãŒãã®ã¬ããªã«ã®ååšãèæ
®ããŠããåãã·ã£ãŒãã®ãã©ã€ããªãšã¬ããªã«ãåãç©çãµãŒããŒã®2ã€ã®é£æ¥ããããŒã¿ããŒãã«ããå¯èœæ§ããããŸãã
ãã®ãããESéçºè
ã¯ãåäžã¯ã©ã¹ã¿ãŒå
ã®ã·ã£ãŒãã®é
眮ã管çããããã®ããŒã«ã§ããã·ã£ãŒãå²ãåœãŠèªè ïŒSAAïŒãææ¡ããŠããŸãã ãã®ããŒã«ã«ãããã·ã£ãŒãã¯ããŒã¿ããŒãã§ã¯ãªããLXDã³ã³ãããåãããµãŒããŒã®ãããªããã°ããŒãã«ãªæ§é ã§åäœã§ããŸãã
åããŒã¿ããŒãã®èšå®ã§ã¯ããããé
眮ãããŠããç©çãµãŒããŒãèšè¿°ããES屿§ãé
眮ããå¿
èŠããããŸãã
node.attr.rack_id: log-lxd-host-N
次ã«ãããŒãããªããŒãããŠæ°ãã屿§ãé©çšããæ¬¡ã®ã³ãŒããã¯ã©ã¹ã¿ãŒæ§æã«è¿œå ããå¿
èŠããããŸãã
{ "persistent": { "cluster": { "routing": { "allocation": { "awareness": { "attributes": "rack_id" } } } } } }
ãã®é åºã§ã®ã¿ãSAAãæå¹ã«ããåŸãã¯ã©ã¹ã¿ãŒã¯æå®ããã屿§ã®ãªãããŒãã«ã·ã£ãŒããé
眮ããªãããã§ãã
ãšããã§ãåæ§ã®ã¡ã«ããºã ãããã€ãã®å±æ§ã«äœ¿çšã§ããŸãã ããšãã°ãã¯ã©ã¹ã¿ãŒãè€æ°ã®ããŒã¿ã»ã³ã¿ãŒã«ããããããã®éã§ã·ã£ãŒããããåãããããªãå Žåã ãã®å Žåã䜿ãæ
£ããèšå®ã¯æ¬¡ã®ããã«ãªããŸãã
node.attr.rack_id: log-lxd-hostN node.attr.dc_id: datacenter_name
{ "persistent": { "cluster": { "routing": { "allocation": { "awareness": { "attributes": "rack_id, dc_id" } } } } } }
ãã®ã»ã¯ã·ã§ã³ã®ãã¹ãŠãæããã§ããããã«æãããŸãã ããããããããç§ã®é ããé£ã³åºãã®ã¯æããã«æãããªã®ã§ãå¥ã«ç¢ºèªããŠãã ãã-ç§»åããåŸã¯èãé£ãã»ã©çã¿ã¯ãããŸããã
ã·ãªãŒãºã®æ¬¡ã®èšäºã¯ãç§ã®2ã€ã®ãæ°ã«å
¥ãã®ãããã¯-æ¢ã«æ§ç¯ãããã·ã¹ãã ã®ç£èŠãšèª¿æŽã«å°å¿µããŸãã ãã§ã«æžãããŠãããèšç»ãããŠãããã®ãç¹ã«è峿·±ãã質åãæèµ·ããå Žåã¯ãã³ã¡ã³ããå¿
ãæžããŠãã ãã ã