æ§æ
ãã¹ãŠãç£èŠããããã«ãäžé£ã®ganglia-shinken-logstash-elasticsearch-kibanaãæ§æãããŠããŸãã å®å šãªèª¬æã¯éåžžã«åºç¯å²ã§ãããããåé¡ã«é¢é£ããéšåã®ã¿ã«éå®ããŸããLogstashã¯ããã¹ãŠã®ãµãŒããŒãããã°ãéä¿¡ããŸãã 圌ã¯elasticsearchã§ããããç©ã¿éããŸãã logstashæ§æã¯ãåé¡ã瀺ãããããçš®é¡ã®å¥åŠãªã¡ãã»ãŒãžã«å¿çããããã«æ§æãããŠããŸãã ã¡ãã»ãŒãžã衚瀺ããããšãã€ãã³ãã¢ãã¿ãªã³ã°ïŒshinkenïŒã«éä¿¡ãããããŸããŸãªæ¹æ³ã§ç®¡çè ãç ©ãããŸãã
ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ããã¡ãã»ãŒãžãéä¿¡ããsyslogã«å ããŠããã¹ãŠã®ã³ã¢ããnetconsoleãéä¿¡ããããã«æ§æããŸããã ãã¯ãããžãŒèªäœã¯äžå¯èœã§ã-dmesgã«å ããŠãã«ãŒãã«ã¯UDPããŒã¿ã°ã©ã ã®åœ¢åŒã§ã¡ãã»ãŒãžãæå®ãããIPããã³MACã¢ãã¬ã¹ã«éä¿¡ããŸãã ãããã³ã³ãœãŒã«ã¯éåžžã«äœã¬ãã«ã§ãããIPïŒã€ãŸããARPïŒããMACãäœæããæ¹æ³ãçè§£ã§ããªããããMACã¢ãã¬ã¹ãå¿ èŠã§ãã äœã¬ãã«ã®ã¡ãã»ãŒãžã®ãããå®å šãªå€§å€åã®ç¶æ³ã§ãééããŸãã ããšãã°ããœãããŠã§ã¢ã¹ã€ãããåäœã忢ããå ŽåïŒããã³ãããã¯ãŒã¯ãå©çšã§ããªãå ŽåïŒãã¡ãã»ãŒãžã¯åŒãç¶ãéä¿¡ãããŸãã ããã«ãiptablesã-j drop_vsyo_nafigãšèšã£ãŠãéä¿¡ãããŸãã ãããŠãæãéèŠã§äŸ¡å€ã®ãããããã®ã¡ãã»ãŒãžã¯ããã£ã¹ã¯ãµãã·ã¹ãã ãå®å šã«æ©èœããªãå Žåã«æ£åžžã«éä¿¡ãããŸãã ã€ãŸããäºåŸèª¿æ»ã§ã¯ãããã³ã°ããŠãããµãŒããŒã§æ£ç¢ºã«äœãèµ·ãã£ãã®ãããšããããšã§ãã
ãæªããã¡ãã»ãŒãžã®æãããªåè£ã¯ãoom-killerããã®ã¡ãã»ãŒãžã§ãã
[517935.914380] ntpdãoom-killerãåŒã³åºããŸããïŒgfp_mask = 0x201daãorder = 0ãoom_score_adj = 0 [517935.914730]åŒã³åºããã¬ãŒã¹ïŒ [517935.914807] [<ffffffff816e14ce>] dump_header + 0x83 / 0xbb [517935.914877] [<ffffffff816e155b>] oom_kill_process.part.6 + 0x55 / 0x2cf ... æåŸã®åå©ã§ïŒ [517935.951044]ã¡ã¢ãªãŒäžè¶³ïŒããã»ã¹4550ïŒapache2ïŒã¹ã³ã¢247ã匷å¶çµäºããããåãç ç²ã«ããŸã [517935.951203] Killed process 4550ïŒapache2ïŒtotal-vmïŒ2610268kBãanon-rssïŒ2012696kBãfile-rssïŒ3928kB
ããã§ã¯ãè¬ã«æ»ããŸãããã çªç¶ãApacheïŒããæ£ç¢ºã«ã¯wsgiã¢ããªã±ãŒã·ã§ã³ïŒã«ãã£ãŠããŒã¿ãäžæçã«ãªãããã©ããã§å€ªã£ãŠããŸãããšããèšèã§beatãããå Žåã詊é転ãããªãããã¯ã·ã§ã³ããããŸãã 管çè ã¯ã¡ãã»ãŒãžãåãåããŸãã ãã¹ãŠãè¯ãããã«èŠããŸããïŒç®¡çè ã®æå³ã§ããè¯ããïŒã ããã...
3ä»¶ã®ãšã©ãŒãçºçããã¡ãã»ãŒãžã¯2ä»¶çºçããŸããã ç£èŠã¯å€§äžå€«ããããã³ã³ãœãŒã«ã¯å€§äžå€«ã§ãã ãªããªãïŒ åé¡ïŒ ç¥ç§çãªæªç¥ã®ãŽãã®çç¶ïŒ ã¿ã³ããªã³ã§å®®å»·ã·ã£ãŒãã³ã«é»è©±ããŸããïŒ
ããŒã¿åé
æåã®è³ªåïŒããã¯ã3çªç®ãã®åé¡ã§ãããïŒ ãµãŒããŒäžã§ããŒã«ã«ã«å確èªããŸãã-ããã§ããã ç§ã¯ãã³ã§æžããŸã-3ã€ã®ããã»ã¹ãééããªã殺ãããŸããã2çªç®ã®è³ªåïŒã¡ãŒã«ïŒ ç§ãã¡ã¯ãã§ãã¯ããŸã-shinkenãã°ã«ãããš-2ã€ã®æäœãshinkenãçæãããã¹ãŠãæ¥ãŸããã
3çªç®ã®è³ªåïŒãããã³ã³ãœãŒã«ã¯æ©èœããŸãããïŒ
ãã§ãã¯ïŒ
# echo "performing tests" > /dev/kmsg
ã¡ãã»ãŒãžããããã«çŸããŸããã ãããã£ãŠãéä¿¡ãšåä¿¡ã¯æ©èœããŸãã
ãŸããOOMã¡ãã»ãŒãžã¯kibanaã§ã¯ã©ã®ããã«èŠããŸããïŒ åçŽãªèŠæ±ããåŒã³åºããããïŒãã°ã®æãäžè¬çãªåèªã§ã¯ãªãïŒ-3ã€ã®ã¡ãã»ãŒãžã
3ã€ã¯ã©ãã§ããïŒ ãªã2ã€ã®ã¢ã©ãŒããããã®ã§ããïŒ ãã£ã«ã¿ãŒãèŠããšããã£ã«ã¿ãŒã¯ãåŒã³åºãããoom-killerãè¡ã§ã¯ãªããOut of memoryïŒKill processã+ïŒã+ïŒãè¡ã§è奮ããŠããŸãã
èŠãŸãã ãããŒããããã®ãã¡ã¢ãªäžè¶³ïŒåŒ·å¶çµäºããã»ã¹ãã®è¡ã¯3è¡ã§ã¯ãªã2è¡ã§ãã 3ãåŒã³åºãã2ãæ®ºããŸãã
ãã®OOMã«é¢ããnetconsoleã®ç¹å®ã®åºåã®ã¿ãæ®ãããããã«ãkibanaã§ãµã³ããªã³ã°ãèšå®ããŸãã [ãã¿ãã¬ïŒkibanaã§ç®¡çè ãçãæ®ãæ¹æ³-次ã®ãšããœãŒãã§]ã èŠãŸãã ãã¹ãŠãããã«ããããã§ãã ãã¹ãäžã®dmesgã®å 容ãš1è¡ãã€ãæ¯èŒãå§ããŸãã ãã¬ãŒã¹ãèŠãããšãã§ãã空ãã¡ã¢ãªã®ããªãåä»ãªãã³ããèŠãããšãã§ããŸãïŒåå¥ã«éä¿¡ããããããlogstashã§ã¯ã5040ããã1 * 256kBïŒUïŒããªã©ã®äžè²«æ§ã®ãªãã¡ãã»ãŒãžã®ã»ããã«ãªããŸãïŒãããã»ã¹ã®ãªã¹ãããããŸã... ãããã»ã¹ã®ãªã¹ãã¯å®å šã§ã¯ãªããäžè¬ã«ãã·ãŒãã®äžååã¯ãããŸããã
以åã®2ã€ã®OOMæäœã§ã¯ããã¹ãŠãæŽã£ãŠããŸãããããã«ã¯ããã€ãã®ã¡ãã»ãŒãžããããŸãã
ãã®ãããå ·äœçãªäºå®No. 1ïŒå®å šãªoomãã°ã¯elasticsearchã«èšé²ãããŸããã§ããã shinkenã¯ã¡ãã»ãŒãžãåä¿¡ãããšè奮ããããããã°ããã£ã«ã¿ãŒã«å®å šã«å°éããªãã£ããšèŠãªãããšãã§ããŸããã€ãŸããä»ã®ãšããelasticsearchãšlogstashãšã®çžäºäœçšã¯ã¹ãããã§ããŸãã
æç¶ã®çŠç¹ãããããã³ã³ãœãŒã«ãååŸããåé¡ã«çµããŸãã ãªãã§ïŒ ãŸããäžæ¹ã§ãUDPãé ä¿¡ã®ä¿èšŒãªã©ã¯ãããŸããããäžæ¹ã§ããŒã«ã«ãããã¯ãŒã¯ã§ããããããã¯ãŒã¯è² è·ã®å¢å ã«é¢ããç£èŠæäœã¯ãããŸããã§ãããã¹ã€ããããã®snmpã¯äœãæå¥ãèšããããããã¯ãŒã¯ãªã³ã¯ã®ç¹æ» ããããŸããã§ããã ãããã¯ãŒã¯è² è·ã°ã©ããã¹ã ãŒãºã§ã-æ¥ç¶æ§ã®åé¡ã¯èгå¯ãããŸããã
çŽèгã®ç¬éïŒãããŠãç§ãã¡ã¯oom killããã©ããªãµã€ãºã®èšé²ãæã£ãŠããŸããïŒ ãã¡ã€ã«wc -cã«æžã蟌ã¿ãŸãã çµå±ã®ãšããã12.5kbã ãUDPã«å°éããªãããšãã仮説ã¯ãåã¡ãã»ãŒãžãæ°çŸãã€ããšããçããããé©åã§ã¯ãããŸããã ãããã質åã¯æ¬¡ã®ãšããã§ãã誰ãé«éã§ã-ã«ãŒãã«ã¹ã¬ããã§äœã¬ãã«ã§UDPãã±ãããçæããã«ãŒãã«ããŸãã¯åä¿¡ããã¡ãã»ãŒãžã«å¯ŸããŠãã£ã«ã¿ãŒãšæ£èŠè¡šçŸãå®è¡ããããŒã¿ããŒã¹ãæžã蟌ã¿ãã¡ãã»ãŒãžçšã«ä»ã®ãµãŒããŒã«ã€ãã³ããéä¿¡ããJavaã¢ããªã±ãŒã·ã§ã³ã§ããïŒ æããã«ãã é¢é£ãããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®èšèšååãæ éã«äœ¿çšããŠå®éã®åé¡ã«å¯ŸããŠç¹ã«ã«ã¹ã¿ãã€ãºå¯èœã§æ¡åŒµå¯èœãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããç¹å¥ãªé«å質ã®ãœãããŠã§ã¢ ãã¯ãgotoã¯ãŒãã119287ååºçŸããããŒãã£Cã³ãŒããããé«éã«åŠçããŸãïŒ 3.16-rc7ïŒã
質åïŒãšã³ã¿ãŒãã©ã€ãºã°ã¬ãŒãã®ãœãããŠã§ã¢ã§åŠçã§ãããããéãããã±ãŒãžã¯ã©ããªããŸããïŒ åªãããŠã£ã¶ãŒãã䜿çšãããšããããã·ã§ããã䜿çšããŠãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®åºå£ã§ããã«ç ãã«ã€ãããšãã§ããŸãã
ãã®åé¡ã«çŠç¹ãåœãŠãŠããŸãã çªç¶ãæèŠããã©ããã¹ãã£ã³ãã«ãlogstashãåãããµãŒããŒã®1ã€ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ãæ®éçãªäžæ£ãå«ã¶ãã誰ãèããŠããªãã
bond0ãªã³ã¯encapïŒã€ãŒãµãããHWaddrãªããšãäœãšã UP BROADCAST RUNNING MASTER MULTICAST MTUïŒ1500ã¡ããªãã¯ïŒ1 RXãã±ããïŒ455816267ãšã©ãŒïŒ0ããããïŒ130361ãªãŒããŒã©ã³ïŒ0ãã¬ãŒã ïŒ0 TXãã±ããïŒ73379669ãšã©ãŒïŒ0ããããïŒ0ãªãŒããŒã©ã³ïŒ0ãã£ãªã¢ïŒ0 è¡çªïŒ0 txqueuelenïŒ0
çãããæåããã幞çŠãããããããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹äžã§ã¹ãªãŒãããã®ã§ã¯ãªãã13äžãã±ããã
äºå®2ãä¿®æ£ããŸããç£èŠã¯ããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®ããããæ°ãå¶åŸ¡ããŸããã ãããã¯ä¿®åŸ©ã§ããŸããïŒããšãããããªãæé ã«é¢ä¿ãªãã貎éãªèгå¯çµæãåŸãããããã«ã¿ã¹ã¯ãã©ãã«ãŒã®ã¿ã¹ã¯ã«å€ãããŸããããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®ããããæ°ã®å€åãç£èŠãããã Googleã§ã®å¥ã®å®è¡ã§ã¯ãæ®å¿µãªããã人éçãªæ¹æ³ã§ã€ã³ã¿ãŒãã§ã€ã¹ã®ã«ãŠã³ã¿ãŒããªã»ããããããšã¯äžå¯èœã§ããããã倿Žãä¿®æ£ããŠããŸãã
ãã©ã¬ã³ãžãã¯ã·ã¹ãã ã®ç®¡çã¯ãã®æç¹ã§çµäºããŸãã ç£èŠã倱æããçç±ã¯äžããæããã§ããOOMã«ãããéåžžã«çãæéã§å€§éã®ã¡ãã»ãŒãžãéä¿¡ãããJavaãããã«è¿œãã€ãããåé·ãã±ããããããããããŸãã æ€èšäžã®ã±ãŒã¹ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã匷å¶çµäºãããããšã瀺ãã¡ãã»ãŒãžãå«ããã±ãããå«ã-ã€ãã³ãã¯shinkenã«éä¿¡ãããŸããã§ããã
è£ä¿®
第äºéš-ããã«ã©ã®ããã«å¯ŸåŠããŸããïŒ
Googleã§ã®çãå®è¡ã§ã¯ãUDPããŒã¿ã°ã©ã ãèªã¿åããšãã®ãœã±ããã®ãããã¡ãŒãµã€ãºãã¢ããªã±ãŒã·ã§ã³ïŒ man setsockopt ãSO_RCVBUFïŒã«ãã£ãŠå¶åŸ¡ãããããšã瀺ãããŸããã Googleã®é害ç©ã§ã¹ããªã³ããç¶è¡ããŸã-logstash configã«ã¯buffer_sizeãšãããªãã·ã§ã³ããããŸãã åžžèã«åŸã£ãŠã1Mbã«åŒãäžããŸããã Net.core.rmem_maxãgoogledã§ã-ããã©ã«ãã§ã¯200 + kbã§ãã ã»ãšãã©ã®å Žåãããã¯ãã®ã±ãŒã¹ã«ã¯é©çšãããŸãããïŒ12kbã®ã¿ïŒã2Mbã«åŒãäžããŠãåé¡ã¯ãããŸããã
çµæ
0.ç£èŠã倱æããçç±ãæããã«ãªããŸããã
1.çŸåšãshinkenã¯ãã¹ãŠã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã§ãããããç£èŠããŸãã
2. logstashã¯ããã±ããæå€±ãªãã§ãã®ã³ã°ã®å€§å¹ ãªå¢å ãåãå ¥ããæºåãã§ããŠããŸãã
PSãsyslogã®tcpãã«ã€ããŠè©±ã人ã®ããã Netconsoleã¯éåžžã«äœã¬ãã«ã§ãããããã£ãŒã«ãã«å ¥åããŠã€ãŒãµããããã¬ãŒã ãéä¿¡ãããæ¹æ³ã§UDPãå®è¡ããŠããäœãã§ããŸããã ãããŠããããããTCPçµç±ã§ãã°ãèšé²ããããšãèããããã«é床ãäœäžãå§ããå Žåãã«ãŒãã«ã¯éåžžã«ããããèŠããã§ããã...