çãããããã«ã¡ã¯ãç§ã®ååã¯ã¢ã¬ã¯ãµã³ããŒã§ããç§ã¯ CIAN ã§ãšã³ãžãã¢ãšããŠåããŠãããã·ã¹ãã 管çãšã€ã³ãã©ã¹ãã©ã¯ã㣠ããã»ã¹ã®èªååã«æºãã£ãŠããŸãã 以åã®èšäºã® 4 ã€ãžã®ã³ã¡ã³ãã§ãXNUMX æ¥ããã XNUMX TB ã®ãã°ãã©ãã§å
¥æãããã®ãã°ãã©ãæ±ããã«ã€ããŠå°ããããŸããã ã¯ãã倧éã®ãã°ããããããããåŠçããããã«å¥ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ã¯ã©ã¹ã¿ãŒãäœæãããŠãããããåé¡ãè¿
éã«è§£æ±ºã§ããŸãã ãã®èšäºã§ã¯ãå¢å€§ãç¶ããããŒã¿ ãããŒãåŠçããããã«ãXNUMX 幎ããããŠãããã©ã®ããã«é©å¿ããããã«ã€ããŠèª¬æããŸãã
ã©ãããå§ããã®ã§ããããïŒ
ããæ°å¹Žãcian.ru ã®è² è·ã¯æ¥éã«å¢å ãã2018 幎ã®ç¬¬ 11.2 ååæãŸã§ã«ããªãœãŒã¹ ãã©ãã£ãã¯ã¯æé 40 äžãŠããŒã¯ ãŠãŒã¶ãŒã«éããŸããã åœæãéèŠãªç¬éã«æ倧 XNUMX% ã®ãã°ã倱ãããŠãããããã€ã³ã·ãã³ãã«è¿
éã«å¯ŸåŠã§ããã解決ã«å€å€§ãªæéãšåŽåãè²»ãããŠããŸããã ãŸããåé¡ã®åå ãèŠã€ãããããã°ãããããšåçºããããšããããããŸããã ããã¯å°çã ã£ãã®ã§ãããã«ã€ããŠäœããããªããã°ãªããŸããã§ããã
åœæããã°ãä¿åããããã«æšæºã®ã€ã³ããã¯ã¹èšå®ãåãã ElasticSearch ããŒãžã§ã³ 10 ãåãã 5.5.2 åã®ããŒã¿ ããŒãã®ã¯ã©ã¹ã¿ãŒã䜿çšããŸããã ããã¯ã人æ°ãããæé ãªãœãªã¥ãŒã·ã§ã³ãšã㊠XNUMX 幎以äžåã«å°å ¥ãããŸãããåœæã¯ãã°ã®ãããŒãããã»ã©å€§ãããªãã£ããããéæšæºã®æ§æãèãåºãæå³ããããŸããã§ããã
åä¿¡ãã°ã®åŠçã¯ã100 ã€ã® ElasticSearch ã³ãŒãã£ããŒã¿ãŒã®ç°ãªãããŒã㧠Logstash ã«ãã£ãŠæäŸãããŸããã ãµã€ãºã«é¢ä¿ãªããXNUMX ã€ã®ã€ã³ããã¯ã¹ã¯ XNUMX ã€ã®ã·ã£ãŒãã§æ§æãããŸãã æéããšããã³æ¥ããšã®ããŒããŒã·ã§ã³ãçµç¹ãããŸããããã®çµæãXNUMX æéããšã«çŽ XNUMX åã®æ°ããã·ã£ãŒããã¯ã©ã¹ã¿ãŒã«åºçŸããŸããã ãã°ã¯ããã»ã©å€ããããŸããã§ããããã¯ã©ã¹ã¿ãŒã¯ããŸã察åŠãã誰ããã®èšå®ã«æ³šæãæããŸããã§ããã
æ¥éãªæé·ã®èª²é¡
XNUMX ã€ã®ããã»ã¹ãäºãã«éè€ãããããçæããããã°ã®éã¯éåžžã«æ¥éã«å¢å ããŸããã äžæ¹ã§ããµãŒãã¹ã®å©çšè æ°ã¯å¢å ããŸããã ãã®äžæ¹ã§ãç§ãã¡ã¯ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã«ç©æ¥µçã«åãæ¿ãå§ããC# ãš Python ã§å€ãã¢ããªã¹ã解äœããŸããã ã¢ããªã¹ã®äžéšã眮ãæããæ°åã®æ°ãããã€ã¯ããµãŒãã¹ã«ãããã€ã³ãã©ã¹ãã©ã¯ã㣠ã¯ã©ã¹ã¿ãŒã«å¯ŸããŠå€§å¹ ã«å€ãã®ãã°ãçæãããŸããã
ã¯ã©ã¹ã¿ãŒãäºå®äžç®¡çäžèœã«ãªããŸã§ç§ãã¡ãå°ããã®ã¯ã¹ã±ãŒãªã³ã°ã§ããã ãã°ã 20 ç§ããã 6 ã¡ãã»ãŒãžã®é床ã§å°çãå§ãããšããç¡é§ãªããŒããŒã·ã§ã³ãé »ç¹ã«è¡ããããããã·ã£ãŒãã®æ°ã¯ 600 ã«å¢å ããããŒãããšã« XNUMX ãè¶ ããã·ã£ãŒããååšããŸããã
ããã«ãã RAM ã®å²ãåœãŠã«åé¡ãçºçããããŒããã¯ã©ãã·ã¥ãããšãã¹ãŠã®ã·ã£ãŒããåæã«ç§»åãå§ãããã©ãã£ãã¯ãå¢å€§ããŠä»ã®ããŒãã«è² è·ãããããããã¯ã©ã¹ã¿ãŒã«ããŒã¿ãæžã蟌ãããšãã»ãŒäžå¯èœã«ãªããŸããã ãããŠãã®æéäžãç§ãã¡ã¯ãã°ãªãã§æŸçœ®ãããŸããã ãããŠããµãŒããŒã«åé¡ããã£ãå Žåãåºæ¬çã«ã¯ã©ã¹ã¿ãŒã® 1/10 ã倱ãããŸãã å€æ°ã®å°ããªã€ã³ããã¯ã¹ã«ããè€éããå¢ããŸããã
ãã°ããªããã°ãç§ãã¡ã¯ã€ã³ã·ãã³ãã®çç±ãç解ã§ãããé ããæ©ããåãçæãåã³èžãå¯èœæ§ããããŸãããç§ãã¡ã®ããŒã ã®ã€ããªãã®ãŒã§ã¯ãããã¯å®¹èªã§ããŸããã§ããããªããªããç§ãã¡ã®ãã¹ãŠã®äœæ¥ã¡ã«ããºã ã¯ãŸã£ããéã®ããšãã€ãŸãäºåºŠãšç¹°ãè¿ããªãããã«èšèšãããŠããããã§ããåãåé¡ããããŸãã ãããè¡ãã«ã¯ãå šéã®ãã°ãšãã®é ä¿¡ãã»ãŒãªã¢ã«ã¿ã€ã ã§è¡ãå¿ èŠããããŸãããããã¯ãå€åäžã®ãšã³ãžãã¢ã®ããŒã ãã¡ããªã¯ã¹ã ãã§ãªããã°ãããã¢ã©ãŒããç£èŠããŠããããã§ãã åé¡ã®èŠæš¡ãç解ããããã«ãåœæã®ãã°ã®ç·é㯠2 æ¥ãããçŽ XNUMX TB ã§ããã
ç§ãã¡ã¯ããã°ã®æ倱ãå®å šã«æé€ããäžå¯æåæã® ELK ã¯ã©ã¹ã¿ãŒãžã®é ä¿¡æéãæ倧 15 åã«ççž®ãããšããç®æšãèšå®ããŸãã (åŸã§ãã®æ°å€ãå éš KPI ãšããŠå©çšããŸãã)ã
æ°ããããŒããŒã·ã§ã³ã¡ã«ããºã ãšããããŠã©ãŒã ããŒã
ElasticSearch ããŒãžã§ã³ã 5.5.2 ãã 6.4.3 ã«æŽæ°ããããšã§ãã¯ã©ã¹ã¿ãŒã®å€æãéå§ããŸããã ãŸãããŠãããŒãžã§ã³ 5 ã¯ã©ã¹ã¿ãŒãåæ¢ãããããã¯ã©ã¹ã¿ãŒããªãã«ããŠå®å
šã«æŽæ°ããããšã«ããŸããããã°ã¯ãŸã ãããŸããã ãããã£ãŠããã®ç§»è¡ã¯ãããæ°æéã§å®äºããŸããã
ãã®æ®µéã§æã倧èŠæš¡ãªå€æã¯ãã³ãŒãã£ããŒã¿ãŒãäžéãããã¡ãšããŠäœ¿çšãã 2 ã€ã®ããŒãäžã§ã® Apache Kafka ã®å®è£ ã§ããã ã¡ãã»ãŒãž ãããŒã«ãŒã®ãããã§ãElasticSearch ã§åé¡ãçºçãããšãã«ãã°ã倱ãããããšããªããªããŸããã åæã«ãã¯ã©ã¹ã¿ãŒã« 24 ã€ã®ããŒããè¿œå ããããŒã¿ã»ã³ã¿ãŒå ã®ç°ãªãã©ãã¯ã« XNUMX ã€ã®ãããããããŒããé 眮ããããã/ãŠã©ãŒã ã¢ãŒããã¯ãã£ã«åãæ¿ããŸããã ã¢ããªã±ãŒã·ã§ã³ ãšã©ãŒ ãã°ã ãã§ãªãããããªãç¶æ³ã§ã倱ãããªããã¹ã¯ã䜿çšããŠããã°ã nginx ã«ãªãã€ã¬ã¯ãããŸããã ãããã°ãèŠåãªã©ã®ãã€ã㌠ãã°ãæ®ãã®ããŒãã«éä¿¡ãããXNUMX æéåŸã«ãããããããŒãããã®ãéèŠããã°ã転éãããŸããã
å°ããªã€ã³ããã¯ã¹ã®æ°ãå¢ãããªãããã«ãæéå転ããããŒã«ãªãŒããŒæ©æ§ã«åãæ¿ããŸããã ãã©ãŒã©ã ã§ã¯ãã€ã³ããã¯ã¹ ãµã€ãºã«ããããŒããŒã·ã§ã³ã¯éåžžã«ä¿¡é Œã§ããªããšããæ å ±ãå€ãã£ãã®ã§ãã€ã³ããã¯ã¹å ã®ããã¥ã¡ã³ãã®æ°ã«ããããŒããŒã·ã§ã³ã䜿çšããããšã«ããŸããã åã€ã³ããã¯ã¹ãåæããããŒããŒã·ã§ã³ãæ©èœãããŸã§ã«å¿ èŠãªããã¥ã¡ã³ãã®æ°ãèšé²ããŸããã ãããã£ãŠãæé©ãªã·ã£ãŒã ãµã€ãº (50 GB 以äž) ã«éããŸããã
ã¯ã©ã¹ã¿ãŒã®æé©å
ããããåé¡ãå®å
šã«è§£æ±ºããããã§ã¯ãããŸããã æ®å¿µãªãããå°ããªã€ã³ããã¯ã¹ãäŸç¶ãšããŠè¡šç€ºãããŠããŸããããããã¯æå®ãããããªã¥ãŒã ã«éããŠããããããŒããŒã·ã§ã³ãããŠããããæ¥ä»ã«ããããŒããŒã·ã§ã³ãåé€ããããã600 æ¥ããå€ãã€ã³ããã¯ã¹ã®ã°ããŒãã« ã¯ãªãŒãã³ã°ã«ãã£ãŠåé€ãããŸããã ããã«ãããã¯ã©ã¹ã¿ãŒããã®ã€ã³ããã¯ã¹ãå®å
šã«æ¶å€±ããååšããªãã€ã³ããã¯ã¹ã«æžã蟌ãããšããããã管çã«äœ¿çšããŠãããã¥ã¬ãŒã¿ãŒã®ããžãã¯ãå£ããããŒã¿æ倱ãçºçããŸããã æžã蟌ã¿çšã®ãšã€ãªã¢ã¹ãã€ã³ããã¯ã¹ã«å€æãããããŒã«ãªãŒã㌠ããžãã¯ãå£ããäžéšã®ã€ã³ããã¯ã¹ãå¶åŸ¡äžèœã«æ倧 XNUMX GB ãŸã§å¢å ããŸããã
ããšãã°ãããŒããŒã·ã§ã³æ§æã®å Žå:
Ñurator-elk-rollover.yaml
---
actions:
1:
action: rollover
options:
name: "nginx_write"
conditions:
max_docs: 100000000
2:
action: rollover
options:
name: "python_error_write"
conditions:
max_docs: 10000000
ããŒã«ãªãŒã㌠ãšã€ãªã¢ã¹ããªãå Žåã¯ããšã©ãŒãçºçããŸããã
ERROR alias "nginx_write" not found.
ERROR Failed to complete action: rollover. <type 'exceptions.ValueError'>: Unable to perform index rollover with alias "nginx_write".
ãã®åé¡ã®è§£æ±ºçã¯æ¬¡ã®ã€ãã¬ãŒã·ã§ã³ã«æ®ããå¥ã®åé¡ã«åãçµã¿ãŸãããã€ãŸããåä¿¡ãã°ãåŠçãã (äžèŠãªæ å ±ãåé€ããŠåŒ·åãã) Logstash ã®ãã« ããžãã¯ã«åãæ¿ããŸããã ããã docker ã«é 眮ããdocker-compose çµç±ã§èµ·åããŸãããŸãããã° ã¹ããªãŒã ã®éçšç£èŠã®ããã« Prometheus ã«ã¡ããªã¯ã¹ãéä¿¡ãã logstash-exporter ãããã«é 眮ããŸããã ãã®ããã«ããŠãåã¿ã€ãã®ãã°ã®åŠçãæ åœãã logstash ã€ã³ã¹ã¿ã³ã¹ã®æ°ãã¹ã ãŒãºã«å€æŽããæ©äŒãåŸãããŸããã
ã¯ã©ã¹ã¿ãŒãæ¹åããŠããéãcian.ru ã®ãã©ãã£ãã¯ã¯æé 12,8 äžãŠããŒã¯ ãŠãŒã¶ãŒã«å¢å ããŸããã ãã®çµæãç§ãã¡ã®å€æã¯éçšç°å¢ã®å€æŽãããå°ãé ããŠããããšãå€æããããŠã©ãŒã ãããŒããè² è·ã«å¯ŸåŠã§ããããã°ã®é ä¿¡å šäœãé ããªããšããäºå®ã«çŽé¢ããŸããã ãããããããŒã¿ã¯é害ãªãåä¿¡ã§ããŸããããã€ã³ããã¯ã¹ãåçã«åæ£ããããã«æ®ãã®ããŒã¿ã®é ä¿¡ã«ä»å ¥ããæåã§ããŒã«ãªãŒããŒãè¡ãå¿ èŠããããŸããã
åæã«ãã¯ã©ã¹ã¿ãŒå ã® logstash ã€ã³ã¹ã¿ã³ã¹ã®èšå®ã®ã¹ã±ãŒãªã³ã°ãšå€æŽã¯ãããŒã«ã«ã® docker-compose ã§ããããã¹ãŠã®ã¢ã¯ã·ã§ã³ãæåã§å®è¡ãããããè€éã§ãã (æ°ãããšã³ããè¿œå ããã«ã¯ããã¹ãŠã®ã¢ã¯ã·ã§ã³ãæåã§å®è¡ããå¿ èŠããããŸãã)ãµãŒããŒã«ã¢ã¯ã»ã¹ããã©ãã§ã docker-compose up -d ãå®è¡ããŸã)ã
ãã°ã®åé åž
ä»å¹Žã® 30 æãç§ãã¡ã¯ãŸã ã¢ããªã¹ãåå²ããŠãããã¯ã©ã¹ã¿ãŒã®è² è·ã¯å¢å ããŠããããã°ã®ãããŒã¯ XNUMX ç§ããã XNUMX ã¡ãã»ãŒãžã«è¿ã¥ããŠããŸããã
ããŒããŠã§ã¢ã®ã¢ããããŒããã次ã®ã€ãã¬ãŒã·ã§ã³ãéå§ããŸããã ç§ãã¡ã¯ã³ãŒãã£ããŒã¿ãŒã XNUMX 人ãã XNUMX 人ã«åãæ¿ããããŒã¿ ããŒãã眮ãæããéé¡ãšã¹ãã¬ãŒãž ã¹ããŒã¹ã®é¢ã§åå©ãåããŸããã ããŒãã«ã¯ XNUMX ã€ã®æ§æã䜿çšããŸãã
- ãããããããŒãã®å Žå: E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (Hot3 ã« 1 ã€ãHot3 ã« 2 ã€)ã
- ããŠã©ãŒã ãããŒãã®å Žå: E3-1230 v6 / 4Tb SSD / 32 Gb x 4ã
ãã®å埩ã§ã¯ãããã³ãã©ã€ã³ã® nginx ãã°ãšåãã¹ããŒã¹ãå æãããã€ã¯ããµãŒãã¹ã®ã¢ã¯ã»ã¹ ãã°ãå«ãã€ã³ããã¯ã¹ãã20 ã€ã®ãããããããŒããããªã XNUMX çªç®ã®ã°ã«ãŒãã«ç§»åããŸããã çŸåšãããŒã¿ããããããããŒãã« XNUMX æéä¿åãããã®åŸãæ®ãã®ãã°ãããŠã©ãŒã ãããŒãã«è»¢éããŸãã
å°ããªã€ã³ããã¯ã¹ãæ¶ããåé¡ã¯ãã€ã³ããã¯ã¹ã®ããŒããŒã·ã§ã³ãåæ§æããããšã§è§£æ±ºããŸããã çŸåšã¯ãããŒã¿ãã»ãšãã©ãªãå Žåã§ããã€ã³ããã¯ã¹ã¯ 23 æéããšã«ããŒããŒã·ã§ã³ãããŸãã ããã«ãããã·ã£ãŒãã®æ°ããããã«å¢å ããŸãã (ã·ã£ãŒãã®æ°ã¯çŽ 800 ã§ãã) ããã¯ã©ã¹ã¿ãŒã®ããã©ãŒãã³ã¹ã®èŠ³ç¹ããã¯èš±å®¹ç¯å²ã§ãã
ãã®çµæãã¯ã©ã¹ã¿ãŒå ã«ã¯ãããããããŒãã XNUMX ã€ãããããŠã©ãŒã ãããŒã㯠XNUMX ã€ã ãã«ãªããŸããã ããã«ãããé·ãæéééã§ãªã¯ãšã¹ãã«ããããªé 延ãçºçããŸãããå°æ¥çã«ããŒãã®æ°ãå¢ããããšã§ããã®åé¡ã¯è§£æ±ºãããäºå®ã§ãã
ãã®å埩ã«ãããåèªåã¹ã±ãŒãªã³ã°ããªããšããåé¡ãä¿®æ£ãããŸããã ãããè¡ãããã«ãå®çšŒåç°å¢ã«æ¢ã«ãããã€ãããã®ãšåæ§ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠Nomad ã¯ã©ã¹ã¿ãŒããããã€ããŸããã ä»ã®ãšãããè² è·ã«å¿ã㊠Logstash ã®éãèªåçã«å€åããããã§ã¯ãããŸããããããã«ã€ããŠã¯èããŠãããŸãã
å°æ¥ã®èšç»
å®è£ ãããæ§æã¯å®å šã«æ¡åŒµãããçŸåšãã¢ã©ãŒãã®ç·æ¥åæã«å¿ èŠãª 13,3 TB ã®ããŒã¿ (4 æ¥éã®ãã¹ãŠã®ãã°) ãä¿åãããŠããŸãã ãã°ã®äžéšãã¡ããªã¯ã¹ã«å€æããããã Graphite ã«è¿œå ããŸãã ãšã³ãžãã¢ã®äœæ¥ã容æã«ããããã«ãã€ã³ãã©ã¹ãã©ã¯ã㣠ã¯ã©ã¹ã¿ãŒã®ã¡ããªã¯ã¹ãšãäžè¬çãªåé¡ãåèªå修埩ããããã®ã¹ã¯ãªãããçšæãããŠããŸãã æ¥å¹Žäºå®ããŠããããŒã¿ããŒãæ°ã®å¢å åŸã¯ãããŒã¿ã¹ãã¬ãŒãžã4æ¥ãã7æ¥ã«åãæ¿ããäºå®ã§ãã ã€ã³ã·ãã³ããã§ããã ãæ©ã調æ»ããããåžžã«åªããŠãããé·æçãªèª¿æ»ã«ã¯ãã¬ã¡ã㪠ããŒã¿ããããããéçšäœæ¥ã«ã¯ããã§ååã§ãã
2019 幎 15,3 æã®æç¹ã§ãcian.ru ãžã®ãã©ãã£ãã¯ã¯ãã§ã«æé XNUMX äžãŠããŒã¯ ãŠãŒã¶ãŒã«å¢å ããŠããŸããã ããã¯ããã°ãé ä¿¡ããããã®ã¢ãŒããã¯ã㣠ãœãªã¥ãŒã·ã§ã³ã®é倧ãªãã¹ããšãªããŸããã
çŸåšãElasticSearch ãããŒãžã§ã³ 7 ã«æŽæ°ããæºåãããŠããŸãããã ãããã®ããã«ã¯ãElasticSearch ã®å€ãã®ã€ã³ããã¯ã¹ã®ãããã³ã°ãæŽæ°ããå¿ èŠããããŸãããããã®ã€ã³ããã¯ã¹ã¯ããŒãžã§ã³ 5.5 ãã移è¡ãããããŒãžã§ã³ 6 ã§éæšå¥šãšããŠå®£èšãããããã§ã (ããŒãžã§ã³ã«ã¯ååšããªãã ãã§ã)ã 7ïŒã ããã¯ãæŽæ°ããã»ã¹äžã«äœããã®äžå¯æåã確å®ã«çºçããåé¡ã解決ããããŸã§ãã°ãæ®ããªãããšãæå³ããŸãã ããŒãžã§ã³ 7 ã®äžã§ãç§ãã¡ãæãæåŸ ããŠããã®ã¯ãæ¹è¯ãããã€ã³ã¿ãŒãã§ãŒã¹ãšæ°ãããã£ã«ã¿ãŒãåãã Kibana ã§ãã
ç§ãã¡ã¯äž»ãªç®æšãéæããŸããããã°ã®æ倱ããªãããã€ã³ãã©ã¹ãã©ã¯ã㣠ã¯ã©ã¹ã¿ãŒã®ããŠã³ã¿ã€ã ãé±ã« 2 ïœ 3 件ã®ã¯ã©ãã·ã¥ããæã«æ°æéã®ã¡ã³ããã³ã¹äœæ¥ã«ççž®ããŸããã å¶äœäžã®ããããäœæ¥ã¯ãã¹ãŠãã»ãšãã©ç®ã«èŠããŸããã ãã ãããµãŒãã¹ã§äœãèµ·ãã£ãŠããããæ£ç¢ºã«å€æã§ããããã«ãªãããµã€ã¬ã³ã ã¢ãŒãã§ããã«å®è¡ã§ããããã«ãªãããã°ã倱ãããããšãå¿é
ããå¿
èŠããªããªããŸãã äžè¬ã«ãç§ãã¡ã¯æºè¶³ããŠãããæºè¶³ããŠãããåŸã§èª¬æããæ°ãããšã¯ã¹ããã€ãã®æºåãããŠããŸãã
åºæïŒ habr.com