
LinuxãµãŒããŒã®ã·ã¹ãã 管çã®é·ãéã®ããçµãŠãçµ±èšã®åéãšç£èŠã®ããã®åºæ¬çãªããŒã«ãšããŠãããŸããŸãªå®è£
ãªãã·ã§ã³ã詊ãããšã«æåããŸããã èªäœã®ã¹ã¯ãªããïŒããã³Webã¢ããªã±ãŒã·ã§ã³ãïŒãCactiãZabbixã¯ããã€ãæã確ç«ããããªãã·ã§ã³ã§ãããè¿å¹Žã§ã¯OkmeterãšPrometheusã«çœ®ãæããããŸããã ãã®èšäºã§ã¯ãaïŒååããŠãããOkmeterã®å°è±¡ãbïŒå°èŠæš¡ãªãã®ããå€§èŠæš¡ãªãã®ãããªãäºçްãªWebã€ã³ã¹ããŒã«ãŸã§ãOkmeterãããŸããŸãªãããžã§ã¯ãã§äœ¿çšããããšã«é¢ããããŒã ãªãŒããŒããã³Flantãšã³ãžãã¢ããã®ãã£ãŒãããã¯Kubernetesã¯ã©ã¹ã¿ãžã®ãã¹ãã£ã³ã°ïŒã
ã©ãããŠOkmeterãªã®ã§ããïŒ
ç¹å®ã®ãµãŒãã¹ïŒWebã¢ããªã±ãŒã·ã§ã³ã®æ£åžžãªæ©èœãããã¯ã¢ããã®å®è¡ãcronã¿ã¹ã¯ã®å®è¡ãªã©ïŒã®éäžç£èŠã«ãã£ãŠè£å®ããããéåžžã®Zabbixã»ã«ããã¹ãã€ã³ã¹ããŒã«ã®ä»£ããã«ããµãŒãããŒãã£ãœãªã¥ãŒã·ã§ã³
-Okmeter-ã®éžæã¯ããã«ã¯èµ·ãããŸããã§ããã éçšããã»ã¹ã®ãã®ãããªéèŠãªéšåã§ãããééã£ãæã«æž¡ããããšã«åæããããã«ã¯ãçµ±èšãåéããç£èŠã®äž»èŠéšåã«éç¥ããããã«ãããããã®ãµããã³ãé£ã¹ãªããã°ãªããŸããã§ããã ãã ããèç©ããããšãã¯ããã®åé¡ãå®å
šã«è§£æ±ºãã2ã€ã®æ¹æ³ããããšããçè§£ã«ã€ãªãããŸããïŒéçºãè¡ãããèª å®ãªæ®å¿µãªããšã«ãªãŒãã³ãœãŒã¹è£œåã§ã¯ãªããæ¬åœã«æ·±å»ãªèŠä»¶ãæå±ãããŠããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãä¿¡é ŒããæäœéãSLAã«èšé²ããã眰åã¯ãã®å質ã«äŸåããæå€§ã§-ãµãŒãã¹ã®ã¬ãã«ãšè©å€å
šè¬ã«äŸåããŸãïŒã
å°èŠæš¡ãªã·ã¹ãã éçºéšéããããŸãããæ¬æ Œçãªç£èŠã·ã¹ãã ã®èŠæš¡ã§ç¬èªã®ã·ã¹ãã ãäœæïŒããã³ææ°ã®ç¶æ
ã«ç¶æïŒããããšã¯ãåªå
é äœã®é«ã掻åã§ã¯ãããŸããïŒç°¡åã«èšãã°ãæéãšè²»çšãããããŸãïŒã ãããã£ãŠã1幎åã«2çªç®ã®ãã¹ãéžæãããŸããããæ±ºå®ãåŸæããããšã¯ãããŸããã ãªãå
·äœçã«Okmeterãªã®ãïŒ ç°¡åãªçãã¯ãããŸããããäžè¬çã«èšãã°ãæäŸãããæ©äŒãšä¿¡é Œæ§ã®ã¬ãã«ãé©åãªè²¡åç¶æ³ãååã®èŠéãïŒç¹ã«ããªã¯ãšã¹ãã®äœæ¥ãå®äºããå¯èœæ§ïŒãæ°ã«å
¥ããŸããã
ãã®éžæã¯å®éã«ã©ã®ããã«åœ¹ç«ã¡ãŸãããïŒ è¡£æã§äººã
ã«äŒãã®ãæ
£ç¿ã§ããå Žåã管çè
ã¯ãæ§æãšãããªãã¡ã³ããã³ã¹ã®å©äŸ¿æ§ã®ããã«ããŒã«ã«äŒããŸãã Okmeterã®å Žåããšã³ãžãã¢ã¯æ¬¡ã®ããã«èª¬æããŸãã
ãã¡ããªãã¯ïŒããã³ã°ã©ãïŒã¯ç°¡åã«è¿œå ã§ããŸããOkmeterçšã«JSONãæºåããã ãã§ãã 人çã®ç°¡çŽ åãšã¯ãZabbixã®ã€ã³ã¹ããŒã«ãšã¡ã³ããã³ã¹ã忢ããããšãã»ããã¢ããã«æéãæµªè²»ããªãããšãäžéšã®ã°ã©ãã£ãã¯ã¹ãçªç¶æç»ã忢ããããšãå¿ããŠããããšã§ãïŒããé »ç¹ã«æ²ãã£ãæãéé£ãããïŒ ãœãããŠã§ã¢ãæ€åºããããšãåºæ¬çãªã¢ã©ãŒããèªåçã«è¿œå ãããŸã-ããã¯éåžžã«äŸ¿å©ã§ããç£èŠã®è¿œå ãå¿ããªãã§ãã ããã
ãZabbixã§ã¯ããã³ãã¬ãŒããèªåã§äœæããæ¬åœã«å¿
èŠãªãã®ãããŸããŸãªãã³ãã¬ãŒãããåéããªããã°ãªããŸããã§ããã -ãããŠããã«æãããŸããã
ã幞ããªããšã«ã1ã€ã®Okmeterã€ã³ã¹ããŒã«ããããžã§ã¯ãå
ã®ä»»æã®ããŒã¿ããŒã¹ã«æ¥ç¶ã§ããŸãã ç§ãããã«AWSã§RDSãç«ã¡åŸçããŸãããã
ãç§ãã¡ãšã¯ã©ã€ã¢ã³ãã«ãšã£ãŠãããŒã¿ããŒã¹ã¡ããªãã¯ãšnginxã¯éåžžã«ææšçã§ããããã䜿çšãããŸãã æã£ãŠããå¿
èŠããããŸãã Zabbixã§ã¯ããã®ãããªã€ããžã¯ãæãããã§ããã
çžäºäœçš
ãããã®æè¡çã¢ã¡ããã£ã®éèŠæ§ã«ãããããããããããå¯äžã®æ±ºå®èŠå ã§ã¯ãããŸããã§ããã ç§ãã¡ã®ååã®åºæ¬çãªéèŠæ§ã¯ãã³ã¢æŽ»åã®çµæãçžäºã«æçã«äº€æããæ©äŒã«ãã£ãŠããããããŸããã
FlantåŽããèŠããšã次ã®ããã«ãªããŸãã
- äžéšã®ãããžã§ã¯ãã§ã¯ãæšæºå€ã®åé¡ããããŸããã
- ãããã®ã°ã©ãã«åºã¥ããŠããããç¹å®ããããšãïŒå®å
šã«/äœç³»çã«ïŒçè§£ããããšãã§ããŸããã§ããã
- 次åãã©ã®ãããªè¿œå ã®ç£èŠæ©èœïŒã©ã®ããŒã¿ãã©ããã©ã®ãããªåœ¢åŒïŒãç¶æ³ïŒã€ãŸããè¡åãšçè§£ïŒãæ¹åããã®ã«åœ¹ç«ã€ããåæãããã®æ
å ±ãOkmeterã«æž¡ããŸããã
- ãã¹ãŠã®ãããžã§ã¯ãã«åºãã£ãŠããæ¹åãåããŸããã
ãã®æ¹æ³ã§ã€ãã³ããè€æ°åå±éãããSphinxãphp-fpmãPostfixãªã©ã®ãµãŒãã¹ã®åäœã®ç£èŠã«è¿œå ã§ããããã«ãªããŸãã...
ä»ã®çžäºäœçšã·ããªãªããããŸãã-ããšãã°ããšã³ãžãã¢ã®å
端ã§ãMySQLã®äžéšã®ããªã¬ãŒã圹ã«ç«ããªãããšã倿ããåãMySQLãLinux cgroupãªã©ã®ãã©ã°ã€ã³ã§å€æ°ã®ãã°ãçºèŠãããä¿®æ£ãããŸããã
ããã«ã¯Okmeterã«ãšã£ãŠæãããªå©ç¹ããããŸãããµãŒãã¹éçºè
ã¯ã倿°ã®ç°ãªãã¯ã©ã€ã¢ã³ããšç¹å®ã®åé¡ã«é¢ããçžè«ã®ãããã§ãç¥èããŒã¹ãç©æ¥µçã«æ¡å€§ããŠããŸãã ããããæè¡é¢ã«æ»ããŸããOkmeterãæ£ç¢ºã«ã©ã®ããã«äœ¿çšããäœãç¹ã«éèŠããŸããïŒ
æäœ
1.äžè¬çãªèšºæ
æåã®æãæçœãªã¢ããªã±ãŒã·ã§ã³ã¯ãLinuxãµãŒããŒã®æ¯æ¥ã®ã¡ã³ããã³ã¹ã§ãããã®ããã«ã次ã®ãããªæ©èœãç¹ã«ç©æ¥µçã«äœ¿çšããŠããŸãã
- ããã»ã¹å¥ã®ã·ã¹ãã ãªãœãŒã¹ïŒããã»ããµããã£ã¹ã¯ãã¡ã¢ãªïŒã®è² è·ã®ã°ã©ããããã³èŠæ±å¥ã®ãããïŒåŸè
ã¯äºåŸã®äºæ
ã®èª¿æ»ã«éåžžã«éèŠã§ã-ããšãã°ãããããã»ã¹ã1æéåã«ãã¹ãŠã®ã¡ã¢ãªãæ¶è²»ããããšãã¯ã£ãããšããããŸãïŒ;
- nginxãã£ãŒãããµãŒããŒã¬ã¹ãã³ã¹ã¿ã€ã ãã£ãŒããããŸããŸãªURLã®ãªã¯ãšã¹ããã£ãŒãïŒGETãã©ã¡ãŒã¿ãŒãªãã§ã°ã«ãŒãåïŒ;

- ããŒãããã³ã¢ãã¬ã¹ã«ããæ¥ç¶ã®çµ±èšã
- ç§ãã¡ã®ãšã³ãžãã¢ã®äžäººãèšã£ãããã«ãããŒã¿ããŒã¹ã®äžäœã¯ãšãªã¯ãç¥ãã§ãã
å³äžã®ã°ã©ãã®å¹Žéœ¢ïŒãã©ã³ã¶ã¯ã·ã§ã³æéïŒã®æ¥å¢ã¯ãã€ã³ããã¯ã¹ãªãã§ããŒã¿ããŒã¹ã埩å
ããçµæã§ãã2.ç£æ»
Okmeterã®ãã1ã€ã®äžè¬çãªäœ¿çšæ³ã¯ãæ°ãããããžã§ã¯ãã®ç£æ»ã§ãã ãµãŒãã¹ããŸã éå§ããŠããããäºåã®NDAã«çœ²åããã ãã§ãã¯ã©ã€ã¢ã³ãã«ãã¹ãŠã®ãµãŒããŒã§å®è¡ããã³ãã³ããçºè¡ããŸãã çµæ-èªåãµãŒãã¹æ€åºã䜿çšããŠååŸãããå€ãã®ã¡ããªãã¯ã衚瀺ãããŸãã
ãããã£ãŠãçµ±èšã¯å€æ°ã®ãµãŒããŒã«ãè¿
éã«è¿œå ãããçµæã®æšæºã°ã©ãã«ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç¶æ
ãçè§£ããæé©å/éçºã®æåã®ç®æšã圢æããã®ã«åœ¹ç«ã€å€ãã®ã€ã³ãžã±ãŒã¿ãŒãããã«èŠãããšãã§ããŸãïŒ
- ãµãŒããŒäžã®ããã»ã¹ãšæ¶è²»ããããªãœãŒã¹ã®éã
- DBMSãšWebãµãŒããŒã®è² è·
- ããŒã¿ããŒã¹ãµã€ãºïŒElasticsearchã«é¢é£ïŒ;
- ...ãªã©
3.ã³ã³ãã
Kubernetesã¯ã©ã¹ã¿ãŒã®ç¹å®ã®æäœã®ã³ã³ããã¹ãã§ã¯ãOkmeterã«ã¯ããã»ã©å€ãã®ãã®ããããŸããã ããã«ãããããããã³ã³ããã«ãããªãœãŒã¹æ¶è²»ã®ã°ã©ãïŒãŸãã¯KubernetesãæäŸããŸãïŒã¯ãK8ã«å€æ°ã®ã³ã³ãããå±éãããŠããå Žåã®docker
docker stats
åºåãåé¡ã§ãããããç¹ã«é¢é£æ§ããããŸãã
aïŒã³ã³ããã«ãããªãœãŒã¹ã®æ¶è²»
bïŒãããã«ãããªãœãŒã¹ã®æ¶è²»Kubernetesã®å®å
šãµããŒããç»å Žãå§ããã°ããã§ãããããK8åºæã®ã€ã³ãžã±ãŒã¿ãŒãç£èŠããããã«ã
Prometheus moreã䜿çšããŠããŸã ã ãããããã®æ¹åã§ã®Okmeterã®èŠéãã«ã€ããŠãç¥ãããŠããŸã...
OkmeterãšKubernetes
FlantãšOkmeterå
šäœã®çžäºäœçšã«ã€ããŠã¯
ïŒäžèšåç
§ïŒ ãå
±åå©çã®ç¹å®ã®æãæ¿ããé åã§ããKubernetesãæå³çã«çç¥ããŸããã Okmeterã®ãšã³ãžãã¢ã¯ãKubernetesã®ç¥èãšçµéšã䜿çšããŠããµãŒãã¹ã§K8ã¢ãã¿ãªã³ã°ãéçºããŸãã
ãŸã第äžã«ããããã¯ã©ã€ãã¯ã©ã€ã¢ã³ãã§ããã€ãŸããæ¬çªç°å¢ã§äœ¿çšãããK8ã®ã¯ã©ã¹ã¿ãŒã§ãã ãã®ãããªåã€ã³ã¹ããŒã«ã¯Okmeterã«ãšã£ãŠæçšãªããŒã¿ãœãŒã¹ã§ãããKubernetesãå®éã«ã©ã®ããã«æ©èœãããããŠãŒã¶ãŒã«ãšã£ãŠæ¬åœã«éèŠãªã¢ããªã±ãŒã·ã§ã³ã®è©³çްãšåé¡ã確èªã§ããŸãã
第äºã«ãïŒãã®ãããªåŒã³åºããçºçãããšãïŒKubernetesãã©ã®ããã«æ§æãããŠããããç¹å®ã®ãŠãŒã¶ãŒãã©ã®ããã«å±éãããããã©ã®ããã«ççºããããïŒã©ã®åé¡ãååšããæåã«äœãèŠããïŒã«ã€ããŠè©±ããŸãã
ããã«ãããOkmeterã¯Kubernetesã®ç¥èãåäžãããã ãã§ãªãããã®ã·ã¹ãã ãåžå Žå
šäœã§ææã§ããããšã確èªããããšãã§ããŸããã ãåŸæ©åå
ãã®å°éå®¶ã®ååšã¯ãäŒç€Ÿã䜿çšããŠãã
ããã°ããŒãã£ã³ã°ã¢ãããŒãã«å¯Ÿå¿ããç¬èªã®ããŒãºã«åãããŠK8ãè¿
éã«å®è£
ããããšã«
ã€ãªãã ããµãŒãã¹èªäœã§KubernetesããµããŒãããäœæ¥ã«ãè²¢ç®ããŸããã
ãã®ãµããŒãã§äœãçŽæãããŸãã
- K8ã§èµ·åããããµãŒãã¹éã®ã¯ã©ã¹ã¿ãŒãªãœãŒã¹ã®åæ£ã ãã¹ãŠã®ã¡ããªãã¯ã¯ãK8sãšã³ãã£ãã£ã®ã³ã³ããã¹ãã§è¡šç€ºã§ããŸãïŒ å±éããç¹å®ã®çåºã®ç¹å®ã®ã³ã³ãããŸã§ã
- ãµãŒãã¹ãªãœãŒã¹ã®å¶éã䜿ãæããããã®èªåããªã¬ãŒã
- ãµãŒãã¹ã®äœæ¥ã«ãããåé¡ïŒã³ã³ããã®åèµ·åãå¿
èŠãªæ°ã®ã€ã³ã¹ã¿ã³ã¹ãèµ·åã§ããªããªã©ã
- ãã£ãã·ãã£ãã©ã³ãã³ã°ïŒãã§ã«ãäºçŽããããŠãããªãœãŒã¹ã®æ°ãæ®ãããŠãããªãœãŒã¹ã®æ°ã
- K8sã³ã³ããŒãã³ãã®ã¹ããŒã¿ã¹ïŒetcdãdnsãapiserverãªã©ã
äž»ãªã¢ã€ãã¢ã¯ãFluantaã®ãšã³ãžãã¢ããã®æšå¥šäºé
ã«åºã¥ããŠäœæãããKubernetesã®åºæ¬èšå®ã®ç¶ç¶çãªç£æ»ã§ãã ãããŠãã¡ãããDaemonSetã®åœ¢åŒã§
OkmeterãšãŒãžã§ã³ãããããã€ãããŸãã
説æãããŠããæ©èœã¯æ¢ã«ããŒã¿ãã¹ãã«ç»å Žãå§ããŠãã
ïŒè©³çްã«ã€ããŠã¯NikolaySivkoã«ãåãåãããã ãã ïŒ ã9æãŸã§ã«å®å
šãªãªãªãŒã¹ãäºå®ãããŠããŸãã
ãŸãšã
OkmeterãšFlantã®ã³ã©ãã¬ãŒã·ã§ã³ã®å©çšå¯èœãªçµæã¯ãå
±çãšçžä¹å¹æã§ããããžãã¹ã§éèŠãªåœ¹å²ãæãããŠããïŒãã ããå
éšéçºã«ã¯ååã§ã¯ãªãïŒæ¢æã®ããŒã«ãå
¥æããŸãããç¹å®ã®æè¡çåé¡ã«é¢ããç¥èã®è£å
ãšå°éçãªæ¯æŽã åæã«ãååã®éããéåžžã®ããããžã§ã¯ãããKubernetesã¯ã©ã¹ã¿ãŒãžã®éçšãããã³å¯Ÿå¿ããæ¹åãžã®Okmeterã®éçºã®åŸåããããŸãã
PS
ããã°ãã芧ãã ããã