zabbixã§éç¨ãã¦ãã人éãsensuã触ã£ã¦ã¿ãææ³
zabbixã§ã·ã¹ãã éç¨ã«é¢ãã£ã¦ãã人éããsensuã使ã£ãéç¨ã«ãã£ã¬ã³ã¸ãã話ã§ãã
çµè«ã¨ãã¦ã¯ãéç¨ã«æ¬æ ¼çã«å
¥ãåã«ãsensuã®å°å
¥ãæ念ãã¾ããã
sensuã¨ã¯
sensuã¯ãã¯ã©ã¦ãç°å¢ã«è¦ªåæ§ã®é«ãç£è¦ã»ã¢ãã¿ãªã³ã°ã½ããã¦ã§ã¢ã§ãã
http://sensuapp.org/
大ã¾ããªãã¤ã³ãã¯ä»¥ä¸ã ã¨æãã¾ãã
- Chefãpuppetã§ç°¡åã«å°å ¥ã§ãã
- community pluginãè±å¯
- è¨å®ãå ¨ã¦ã³ã¼ãã§è¨è¼ããã¦ãããå¤æ´ããã¨ããjsonãã¡ã¤ã«ã®æ¸ãæã
- ã¯ã©ã¤ã¢ã³ãå´ãããµã¼ãã¸éç¥ãã¦ç£è¦ãå§ã¾ã(ãµã¼ãå´ã«ã¯ã©ã¤ã¢ã³ãã®å®ç¾©ãå¿ è¦ãªã) â AWS EC2ã®ãããªImmutableã«æ±ãç°å¢ã§ä¾¿å©
詳細ã¯ä»¥ä¸ã®è¨äºã詳ããã§ãã
ãDevOpsDays Tokyo 2013ãã¯ã©ã¦ãæ代ã®ã¢ãã¿ãªã³ã°ãã¼ã«ãUNIXã®ææ³ãæ¯ã¥ãsensuãã¥ã¼ããªã¢ã«
ç£è¦ã½ãããNagiosããSensuã«åãæ¿ãã¦2ã¶æçµã£ãã®ã§ã¾ã¨ãã
使ã£ã¦ã¿ãç¶æ³
- ãªã³ãã¬ãã¹ç°å¢ã§zabbixã使ããæ°ã¶æã®éç¨ãè¡ã£ã¦ãã
- AWSç°å¢ãå©ç¨ããã«ããã£ã¦ãsensuã®å°å ¥ãæ¤è¨ãã
- ç£è¦+ã¢ãã¿ãªã³ã°ãè¦ä»¶ ãªã®ã§ãå¿ ç¶çã«graphiteãå°å ¥ãã
- AWSç°å¢ã§ã¯Blue Green Deploymentãå°å ¥ãå¾ã£ã¦é »ç¹ã«EC2ã¤ã³ã¹ã¿ã³ã¹ãä½ãæ¿ãã
ææ³
sensu(ã¨graphite)ãç©åã使ãã¥ããå°è±¡ãåãã¾ããã以ä¸ãsensuã使ã£ã¦ã¿ãææ³ã§ãã
å°å ¥ã容æãããªã
確ãã«ãåºæ¬ã¤ã³ã¹ãã¼ã«ã¯ç°¡åã§ããchef-soloã§å°å
¥ãã¾ããããerlangã®ã¤ã³ã¹ãã¼ã«ãã©ãã«ã¯ãã£ããã®ã®ãå²ã¨ãããªãå
¥ãããã¨ãã§ãã¾ãã
ãã ãç°¡åãªã®ã¯ããã¾ã§åºæ¬ã¤ã³ã¹ãã¼ã«ã®ã¿ã§ãå®éã«ä½¿ãããã«ã¯ã»ã¨ãã©ã®å ´åã¯ä»¥ä¸ãè¡ããã¨ã«ãªãã¾ãã
- community pluginã®å°å ¥
subscribers
(ã¯ã©ã¤ã¢ã³ããå½¹å²å¥ã«åããã°ã«ã¼ãå) ã®è¨å®- ã¢ãã¿ãªã³ã°ç¨ã«graphiteã®å°å ¥
ç¹ã«é¢åãªã®ãå¾å2ã¤ã§ãã
subscribers
ã®è¨å®ã¯ãã¯ã©ã¤ã¢ã³ããã¨ã«ã©ããã£ã¦ååãå®ç¾©ãããï¼ãããããã«èªåçã«è¨å®ãããï¼ã®ãã¹ããã©ã¯ãã£ã¹ãã¾ã 確ç«ããã¦ããªãæ°ããã¾ãããã®ãããè²ã
ãªæ¹æ³ã¯ãããã®ã®ãããç¨åº¦ã¢ã¼ããã¯ãã£ãèªåã§èãã¦ä½ãããå¿
è¦ãããã¾ãããªãchef-serverã§å°å
¥ããå ´åã¯ãrole
åãèªåã§å²ãå½ãããããã®ã§ãããã»ã©å¤§å¤ã§ã¯ãªãã¿ããã§ããâ¦ã
graphiteã¯ããããsensuã§ã¯ãªãã®ã§ãèªåçã«ã¯ã¤ã³ã¹ãã¼ã«ããã¾ããããªã®ã§ãchefã«çµã¿è¾¼ãã¨ããããå§ã¾ãã¾ããå¾è¿°ãã¾ãããå¿
è¦ã¨ãªãã½ããã¦ã§ã¢ãå¤ããDjango
ã«é¦´æã¿ããªããªããªããã大å¤ã§ãã
ã¡ã³ããã³ã¹ã容æãããªã
sensuãå°å ¥ããã¨ã(èªåã§ã¤ã³ã¹ãã¼ã«ãããã¨ã¯ãã)以ä¸ã®é¢åãè¦ãå¿ è¦ãçãã¾ãã
- sensuæ¬ä½
- rabbitmq
- redis
ã¨ãããã¨ã¯ãé害çºçæã¯ä¸è¨ããã§ãã¯ããå¿ è¦ãããã¨ãããã¨ã§ãã ããã¦ãsensu-adminãå°å ¥ããã¨ãæ´ã«â¦
ãå¢ãã¾ãã
graphiteãå°å
¥ããã¨ãæ´ã«å¢ãã¾ãã
sensuã¯Rubyãsensu-adminã¯Ruby on Railsãgraphiteã¯python (Django)ã¨ããã®ãã¡ãã¯ãã§ããªãã ããªãã¨ããæãã
ã¡ãªã¿ã«zabbixãªã
- zabbixæ¬ä½ (zabbix-server, zabbix-agent)
- ãã¼ã¿ãã¼ã¹
ã§æ¸ã¿ã¾ããé¢åãè¦ãªããã°ãªããªãã½ããã¦ã§ã¢ã¯å°ãªãã»ãããããã¨ã
使ç¨æãããã¾ã
sensuã¯ç£è¦ã½ããã¦ã§ã¢ãgraphiteã¯ã°ã©ãåã®ã½ããã¦ã§ã¢ãªã®ã§ãç£è¦ã¨ã¢ãã¿ãªã³ã°ã§ãã¡ãã¡ç»é¢é·ç§»ããªããã°ããã¾ãããå°ãªãã¨ãç´ ã®sensu管çç»é¢ã¯ããªãç°¡ç´ ãªã®ã§ãæ©è½ã¯å¿ è¦æä½éãããªãããã«æãã¾ããã·ã³ãã«ã¨ããè¦æ¹ãã§ãã¾ããã
è¨å®ãjsonå½¢å¼ã ããè¦ããããã¨ããè¦æ¹ãããã«ã¯ããã®ã§ãããæè©®ãã¡ã¤ã«ãªã®ã§ãããããªè»¸ã§è¦ããã¨ããå¤é¢çãªè¦æ¹ã¯ã§ãã¾ããã
ã¾ããgraphiteã¯å®å ¨ãªã°ã©ãåã½ããã¦ã§ã¢ãªã®ã§ã"ã¡ããªã¯ã¹åå¾ã®ããã®"ã½ããã¦ã§ã¢ã§ã¯ããã¾ããããã®ãããããããªãµã¼ãã§æ¨ªæçã«è¦ãã¨ãè¤æ°ã®ã°ã©ãã並ã¹ãã¨ãããããªæ°ã®å©ãããã¨ã¯ã§ãã¾ãããããã¯sensuã®åé¡ã§ã¯ããã¾ãããã
ã»ã¨ãã©ã®æ©è½ã¯zabbixã§ãã§ãã
ãã¨ãã¨ã®è§¦ãè¾¼ã¿ã§ãã"ã¯ã©ã¤ã¢ã³ãå´ãããµã¼ãã¸éç¥ãã¦ç£è¦ãéå§"ã®ä»çµã¿ããzabbixã§ã¯ãã£ã¹ã«ããªæ©è½ã使ããã¨ã§ã»ã¼åæ§ã®ãã¨ãã§ãã¾ãã
sensuã¯apiãæä¾ãã¦ããã®ã§ç¬èªã®ä»çµã¿ãä½ãããããã¨ããæè¦ããzabbixã ã£ã¦APIãæä¾ãã¦ãã¾ãã
éã«ãzabbixã§ã§ãã¦sensuã§ã§ããªããã¨ã¯å¤ãã§ããsensu管çç»é¢èªä½ã®èªè¨¼ã¨ããã¡ã³ããã³ã¹æ©è½(ä¸æçã«ã¢ã©ã¼ããææ¢ããæ©è½)ã¨ããå¾è ã¯sensu-adminãå°å ¥ããã°å¯è½ããããã¾ããã
community pluginãåããªãâ¦ãã®ããã
1ã¶æãããåã«è§¦ã£ã¦ã¿ãå½åã¯ãelasticsearchã®pluginãææ°ãã¼ã¸ã§ã³ã«å¯¾å¿ãã¦ããªãã£ãããå¥ã®ãã©ã°ã¤ã³ã§å¼æ°ãç¨æãã¦ããããã«åããªã(ç´ç²ãªãã°)ã¨ãããã®ãããã¾ãããpull requestãããã£ã¦ããæãããããã¾ãããâ¦ã幸ãã³ã¼ãèªä½ã¯ç°¡åãªã®ã§ãä¿®æ£ãããã¨ã¯ã§ãã¾ãããã ããã¡ãã¡pluginãããã§ä¿¡ç¨ããªããã¨ãåæã«ãã°ã¨ãæ¤è¨¼ã§æéãåã£ã¦ããããªãããåããã¨ãåæã¨ãããã£ããªãã¨ããã®ã¯ããã¾ãã
ãã ãzabbixã ã¨ã¦ã¼ã¶ãã©ã¡ã¼ã¿ã¨ãå¤é¨ã¹ã¯ãªããã¨ãã§ãã©ã°ã¤ã³ç¸å½ã®ä»çµã¿ã¯ããã«ã¯ããã®ã§ãããcommunityã¨ãã¦ã¾ã¨ã¾ã£ã¦ããããã§ã¯ãªãã®ã§ããã®é½åº¦ãããä¸ããæ¢ã(ãããã¯ä¸ããä½ã)å¿ è¦ãããã¾ããåºæ¬çãªããã»ã¹ããã¼ãããªã½ã¼ã¹ç£è¦ãªã©ã ãã§æ¸ããªãèããå¿ è¦ã¯ããã¾ããããæ°ããã½ããã¦ã§ã¢ãAPIãæä¾ãã¦ãã¦ãAPIçµç±ã§æ°ããã¡ããªã¯ã¹ãåå¾ã§ããã¨ããã¨ããã®ä»çµã¿ã«è¿½å¾ã§ããã®ã¯sensuã®æ¹ãå¯è½æ§ãããããããã¾ããã
ã³ã¼ããã¼ã¹ã®å¤æ´ç®¡ç
ããã¯å®å
¨ã«å¿åã®åé¡ã§ãããè¨å®ãå
¨ã¦jsonã§è¨è¼ããã¦ããã¨ãããã¨ã¯ãGUIããããããè¨å®ãå¤æ´ã§ããªãã¨ãããã¨ã§ããå¤æ´å±¥æ´ãã³ã¼ããã¼ã¹ã§ç®¡çã§ããã®ã§ãä¾ãã°githubãªããã§ç®¡çããã¨ããã¤èª°ãè¨å®ãå¤æ´ãããã¯åãããããã¨æãã¾ãã
ä¸æ¹ã§ãGUIã§ã«ã¸ã¥ã¢ã«ã«å¤æ´ãããã¨ããå¿åã®ãã¼ã ã ã¨ãããªãæ·å±
ãé«ãã§ããããè¨å®ãå¤æ´ããã ãã§ããã®é½åº¦git pull â ã³ã¼ãå¤æ´ â ã³ããããã¦push â ããã㤠ã¨ãªãã®ã§ãå¤æ´å±¥æ´ãåãããã«ã¸ã¥ã¢ã«ã«è¨å®å¤æ´ã§ãããã¨ãåããã¯ãã¼ã ã«ããã¨æãã¾ãã
ã¾ã¨ã
æåã«æããç¹å¾´ã®å対æè¦ã¨ãã¦ã以ä¸ã®ããã«æãã¾ããã
- Chefãpuppetã§ç°¡åã«å°å
¥ã§ãã
âãã ããç°¡åãªã®ã¯åºæ¬ã¤ã³ã¹ãã¼ã«ã¾ã§ã§ã追å è¨å®ã¾ã§è¡ãã¨ãããªãã«é¢å - community pluginãè±å¯
âcommunity pluginã§ããããªã½ããã¦ã§ã¢ã«å¯¾ãã¦ç°¡åã«ç£è¦ãè¡ããããä»å¾ããã£ã¨è¿½å ããã¦ããã ãã
ãã ãããã°ãå¤ã - è¨å®ãå
¨ã¦ã³ã¼ãã§è¨è¼ããã¦ãããå¤æ´ããã¨ããjsonãã¡ã¤ã«ã®æ¸ãæã
â確ãã«1å´é¢ã§ã¯è¦ãããããã ãè²ã ãªè»¸ã§æ¨ªæçã«è¦ãã®ã«ã¯åãã¦ããªãã
è¨å®å¤æ´å±¥æ´ãgitãªã©ã§åããã¨ãã§ããã®ã¯ä¾¿å© - ã¯ã©ã¤ã¢ã³ãå´ãããµã¼ãã¸éç¥ãã¦ç£è¦ãå§ã¾ã(ãµã¼ãå´ã«ã¯ã©ã¤ã¢ã³ãã®å®ç¾©ãå¿
è¦ãªã)
â確ãã«ããã§ããzabbixã§ãã§ãã
ããã«â¦
- ããããsensuãå©ç¨ããããã«æ§ã ãªã½ããã¦ã§ã¢ãå°å ¥ããå¿ è¦ããããããããã¡ã³ããã³ã¹ããå¿ è¦ããã
- è²ã ãªã½ããã¦ã§ã¢ããµã¼ãã¹ã¨é£æºã§ããã¨ãã触ãè¾¼ã¿ã ããä¾ãã°ã°ã©ãåã¯graphiteã¨ãã以å¤ã«ãããªã«é¸ã¹ãã»ã©é¸æè¢ãããç¶æ³ã§ããªã
ã¡ãªã¿ã«ãªã½ã¼ã¹ã«é¢ãã¦ã¯ãé·æéã§éç¨ããããã§ã¯ãªãã®ã§è©ä¾¡ã§ãã¾ããã
sensuãå©ç¨ããã®ã«é©ããç¶æ³
ãªã®ã§ãsensuã使ãããã¨ããå ´åã¯ã以ä¸ã«ãªãã¨æãã¾ãã
- sensu apiãå©ç¨ãã¦ãä¸ããæã«é¦´æãç£è¦ãµã¼ãã¹ãä½ãè¦æããã
- GUIã§è¨å®å¤æ´ã¨ãè»å¼±ãªãã¨ã¯ããªãããããã¯å¤æ´å±¥æ´ããã£ããåããã¨ãæ±ãããã
- ãã¨ãã¨rabbitmqãredis, graphiteãªã©é¢ããã®ããã½ããã¦ã§ã¢ãå©ç¨ãã¦ãã
- ä»å¾ãæ°ããã½ããã¦ã§ã¢ãã©ãã©ãå°å ¥ãã¦ããäºå®ã§ããããç£è¦ããäºå®
ããèããã¨ãzabbixã¯ãã£ã±ãç£è¦ã»ã¢ãã¿ãªã³ã°ç¨ã«ããèãããã¦ããã®ã ãªãã¨æãã¾ãã