Talk
is cheap£¬show me the demo¡£MySQL µ½µ×Äܲ»Äܷŵ½ Docker ÀïÅÜ£¿Í¬³ÌÂÃÓÎĿǰÒѾÓг¬¹ýһǧ¸ö
MySQL ʵÀý°²È«Îȶ¨µØÅÜÔÚ Docker ƽ̨ÉÏ¡£
ǰÑÔ
ǰ¼¸Ô¾³£¿´µ½ÓÐ MySQL µ½µ×Äܲ»Äܷŵ½ Docker ÀïÅܵĸ÷ÖÖÌÖÂÛ¡£ÕâÑù×öÊÇ´íµÄ£¡ÕâÑù×öÊǶԵģ¡Ëµ´íµÄÀíÓÉҲ˵ÁËÒ»´ó¶Ñ£¬Ëµ¶ÔµÄ˼ÏëÒ²ºÜÃ÷È·¡£´ó¼Ò¶¼ÓеÀÀí¡£µ«ÊÇÎÒ±¾È˾õµÃÕâÑùµÄÌÖÂÛÂ䵨ÒâÒå²»´ó¡£ÒòΪ¶ÔÓë´í»¹ÊÇҪʵ¼ùÀ´µÃ³öµÄ¡£
ËùÒÔͬ³ÌÂÃÓÎÒ²ºÜÔ翪ʼÁË MySQL µÄ Docker »¯Êµ¼ù£¬µ½Ä¿Ç°ÒѾÓг¬Ò»Ç§¶à¸ö
MySQL ʵÀýÔÚ Docker ƽ̨°²È«Îȶ¨µØÅÜ×Å£¬DB ÔËάÄÜÁ¦·¢ÉúÁËÖʵÄÌá¸ß£¨DBA ÔÙÒ²²»Óõ£ÐÄɾ¿âÅÜ·ÁË£©¡£
µ±È»ÕâÑùÊDz»ÊÇ¿ÉÒÔÖ¤Ã÷֮ǰµÄÌÖÂÛ½áÂÛ¡ª¡ªÊǶԵġ£ÎÒÏëÒ²²»Ò»¶¨£¬ÒòΪÎÒÃÇ»¹Ö»ÊÇÒ»Ö»ÔÚѧ·ÉÐеÄСÄñ£¬»¹Òª¸ü¶àµÄѧϰ£¬ËùÒÔÎÒÃÇÌØ½«ÎÒÃÇÔÚ
MySQL µÄ Docker »¯ÉϵÄʵ¼ù·ÖÏí¸ø´ó¼Ò¡£
±³¾°½éÉÜ
ͬ³ÌÂÃÓÎÔçÆÚµÄÊý¾Ý¿â¶¼ÒÔ MSSQL ΪÖ÷£¬Õâ¸ö²úÆ·ÓиöÌØµã¾ÍÊÇ UI ²Ù×÷ºÜ°ô¡£µ«ÊÇÅúÁ¿ºÍ×Ô¶¯»¯¹ÜÀíºÜÄÑ×ö£¬ÈËÁ¦µÄ¹¤×÷ºÜ¶à¡£ºóÀ´Öð½¥Ì滻Ϊ
MySQL ºóÒ²Êǰ´ÕÕ´«Í³µÄÔËά·½Ê½¹ÜÀí¡£µ¼Ö´󲿷ֵŤ×÷ÐèÒªÈËÈâÔËά¡£
µ±È»ÏñÎÒÃÇÔçÆÚʹÓùýµÄ MSSQL Ò²ÊÇÓÐÓŵãµÄ£º¾ÍÊǵ¥»úÐÔÄܱȽϺã¬ÔÚµ±ÄêÄǸö×ÊÔ´²»¹»µÄÄê´úÀïÎÒÃdz£¿ÉÒÔÔڸ߿ÉÓõÄʵÀýÉÏÔËÐжà¸ö¿â¡£ÕâÖÖÇé¿öÏÂÎïÀí»úÊýÁ¿ÓëʵÀýÊýÁ¿»¹ÊDZȽϿɿصģ¬Ïà¶ÔÊýÁ¿±È½ÏÉÙ£¬ÈËÈâÔËάÍêÈ«¿ÉÒÔÓ¦¶Ô¡£
µ«ÊÇ MSSQL µÄȱÏÝÒ²ºÜ¶à£¬±ÈÈç×öˮƽ²ð·Ö±È½ÏÀ§ÄÑ£¬µ¼ÖÂÊý¾Ý¿â³ÉΪϵͳÖÐ×î´óµÄÒ»¸öÆ¿¾±¡£µ«ÔÚÎÒÃÇʹÓÃ
MySQL+ Öмä¼þ£¨ÎÒÃÇ×öÕâ¸öÖмä¼þÒ²ÊÇÏÂÁ˲»ÉÙÐÄ˼µÄ£¬ÒÔºó¿ÉÒÔ·ÖÏíһϣ©×öˮƽ²ð·Öºó¾Í¿ªÊ¼½â¾öÁËÕâ¸öÆ¿¾±¡£
ˮƽ²ð·ÖµÄÒýÈëÒ²´øÀ´ÁËÒ»¸öСȱµã£¬¾ÍÊÇ»áÔì³ÉÊý¾Ý¿âʵÀýÊýÁ¿´ó·ùÉÏÉý¡£¾Ù¸öÀý×ÓÎÒÃÇ×ö 1024 ·ÖƬµÄ»°Ò»°ãÊÇ×ö
32 ¸ö node£¬Ò»Ö÷Ò»´ÓÊDZØÐëµÄ£¨´ó²¿·ÖÇé¿öÊÇÒ»Ö÷Á½´Ó£©£¬ÄÇôÖÁÉÙ 64 ¸öʵÀý£¬ÔÙ¼ÓÉÏÓ¦¼±À©Õ¹ºÍ±¸·ÝÓõĽڵãÄǾ͸ü¶àÁË£¨Öмä¼þµÄ¿ª·¢Õ߸üÏ£ÍûÊÇ
1024 Ƭ¾ÍÊÇ 1024 ¸öʵÀý£©¡£
Ò»´ÎÉÏÏß×öÒ»¸ö 32node ·ÖƬÀ©Õ¹´Ó¿â£¬Á½¸ö DBA ×ã×㻨ÁË 4 ¸öСʱ¡£ÁíÍ⣬Èç¹û×öµ¥»úµ¥ÊµÀýÄǿ϶¨¸ü²»ÐÐÁË£¬±ðµÄ²»Ëµ£¬³É±¾Ò²»áÊǸö´óÎÊÌ⣬ÇÒÎïÀí»úµÄ×ÊԴҲδÄÜ×î´ó»¯ÀûÓ᣿öÇÒÒòΪ
MySQL µ¥ÌåµÄÐÔÄÜûÓÅÊÆËùÒÔ·ÖÆ¬¾Ó¶àËùÒԴ󲿷ÖÇé¿öϲ¢²»ÊÇÿ¸ö¿â¶¼ÄÜÅÜÂúÕû¸öÎïÀí»úµÄ¡£¼´Ê¹Óв¿·ÖÄÜÅÜÂúÕû»ú×ÊÔ´µÄ¿â£¬ËüµÄ¶à½Úµã±¸·Ý£¬»·¾³Ò»ÖÁÐÔºÍÔËά¶¯×÷ͳһµÈÎÊÌâÒ²»áÈÃ
DBA һͷÔ㣬æµÓÖÈÝÒ׳ö´íµÄ¹¤×÷ÆäʵÊÇÎÞÒâÒåµÄ¡£
ÓÐÁ˵¥»ú¶àʵÀýÔËÐÐ MySQL ʵÀýµÄÐèÇó¡£µ¥»ú¶àʵÀýҪ˼¿¼µÄÖ÷ÒªÎÊÌâ¾ÍÊÇÈç¹û½øÐÐ×ÊÔ´¸ôÀëºÍÏÞÖÆ£¬ÊµÏÖ·½°¸Óкܶ࣬Ôõôѡ£¿KVM£¬Docker£¬Cgroups
ÊÇĿǰµÄ¿ÉÒÔʵÏÖ¸ôÀëÖ÷Á÷·½°¸¡£
KVM ¶ÔÒ»¸ö DB µÄ¸ôÀëÀ´ËµÌ«ÖØÁË£¬ÐÔÄÜÓ°ÏìÌ«´ó£¬ÔÚÉú²ú»·¾³Óò»ºÏÊÊ¡£ÕâÊÇÒòΪ MySQL ÔËÐеľÍÊǸö½ø³Ì¶øÇÒ¶Ô
IO ÒªÇó±È½Ï¸ß£¬ËùÒÔ KVM ²»Âú×ãÒªÇó (ËäÈ»ÓÅ»¯ÒÔºó IO ÄÜÓеãÌáÉý)¡£
cgroups ±È½ÏÇᣬËäÈ»¸ôÀëÐÔ²»ÊǺܸߣ¬µ«¶ÔÓÚÎÒÃÇµÄ MySQL ¶àʵÀý¸ôÀëÀ´ËµÊÇÍêÈ«¹»ÓÃÁË£¨Docker
µÄ×ÊÔ´ÏÞÖÆÓõľÍÊÇ cgroups£©¡£µ«ÊÇÎÒÃÇ»¹ÏëÕë¶Ôÿ¸ö MySQL ʵÀýÔËÐжîÍâµÄ¹ÜÀí½ø³Ì (±ÈÈç¼à¿ØµÈµÈ)¡£ÓÃ
cgroups ʵÏÖÆðÀ´»á±È½Ï¸´ÔÓ£¬²¢ÇÒÎÒÃÇ»¹ÏëÈÃʵÀý¹ÜÀíºÍÎïÀí»úÇø·Ö¿ª£¬ÄÇ cgroups Ò²·ÅÆú¡£
ÖÁÓÚ Docker£¬ÄǾͺܲ»´íÁË£¬ÄÇЩÂãÓà cgroups µÄÂé·³Ëü¶¼¸ø¸ã¶¨ÁË¡£²¢ÇÒÓÐ API ¿ÉÒÔÌṩ֧³Ö£¬¿ª·¢³É±¾µÍ¡£¶øÇÒÎÒÃÇ¿ÉÒÔ»ùÓÚ
Docker ¾µÏñÀ´×ö²¿Êð×Ô¶¯»¯£¬ÄÇô»·¾³µÄÒ»ÖÁÐÔÒ²¿ÉÇáËɽâ¾ö¡£ËùÒÔ×îÖÕÎÒÃÇÑ¡ÔñÁË Docker ×÷ÎªÔÆÆ½Ì¨µÄ×ÊÔ´¸ôÀë·½°¸
(µ±È»¹ý³ÌÖÐÒ²×öÁ˺ܶàÐÔÄÜ¡¢Îȶ¨ÐԵȵÄÊÊÅ乤×÷£¬ÕâÀï¾Í²»×¸ÊöÁË)¡£
ÏÂÃæÁ½¸öͼ¿ÉÒÔÐÎÏóչʾÕâ¿î²úÆ·´øÀ´µÄ¸ïÃüÐÔÒâÒ壺

µ±È»ÒªÄܳÆÖ®ÎªÔÆ£¬ÄÇôƽ̨×î»ù±¾µÄÒªÇó¾ÍÊǾ߱¸×ÊÔ´¼ÆËã¡¢×ÊÔ´µ÷¶È¹¦ÄÜ£¬ÇÒ×ÊÔ´·ÖÅäÎÞÐèÈ˹¤²ÎÓë¡£¶ÔÓû§À´½²£¬Äõ½µÄÓ¦¸ÃÊÇÖ±½Ó¿ÉÓõÄ×ÊÔ´£¬²¢ÇÒÌìÉú×Ô´ø¸ß¿ÉÓá¢×Ô¶¯±¸·Ý¡¢¼à¿Ø¸æ¾¯¡¢ÂýÈÕÖ¾·ÖÎöµÈ¹¦ÄÜ£¬ÎÞÐèÓû§¹ØÐÄ×ÊÔ´±³ºóµÄÊÂÇé¡£Æä´Î²ÅÊǸ÷ÖÖÈÕ³£µÄ
DBA ÔËά²Ù×÷ÐèÇó·þÎñ»¯Êä³ö¡£ÏÂÃæÎÒÃǾÍÀ´½²½²ÎÒÃÇÕâ¸öƽ̨ÊÇÈçºÎÒ»²½²½ÊµÏֵġ£
ƽ̨ʵÏÖ¹ý³Ì
Õ¾ÔÚ¾ÞÈ˵ļç°òÉÏ
ÎÒÒ»Ö±ÈÏΪÆÀ¼ÛÒ»¿îÊý¾Ý¿âµÄÓÅÁÓ£¬²»ÄÜÖ»ÆÀ¼ÛÊý¾Ý¿â±¾Éí¡£ÎÒÃÇÒª×ÛºÏËüµÄÖܱßÉú̬ÊÇ·ñ½¡È«£¬±ÈÈ磺¸ß¿ÉÓ÷½°¸¡¢±¸·Ý·½°¸¡¢ÈÕ³£Î¬»¤ÄѶȡ¢È˲Ŵ¢±¸µÈµÈ¡£µ±È»¶ÔÓÚÒ»¸öÔÆÆ½Ì¨Ò²Ò»Ñù£¬ËùÒÔÎÒÃǽøÐÐÁË¶ÌÆ½¿ìµÄÊÔ´í¹¤×÷£¬½«Æ½Ì¨·ÖΪ¶àÆÚ°æ±¾¿ª·¢¡£µÚÒ»¸ö°æ±¾µÄ¿ª·¢ÖÜÆÚ±È½Ï¶Ì£¬Ö÷ÒªÓÃÀ´ÊÔÑ飬ËùÒÔÎÒÃÇÒª¾¡¿ÉÄÜÔËÓÃÒÑÓеĿªÔ´²úÆ·À´ÊµÏÖÎÒÃǵÄÐèÇ󣬻òÕß¶ÔÒÑÓпªÔ´²úÆ·½øÐжþ´Î¿ª·¢ÒÔºóʵÏÖ¶¨ÖÆ»¯µÄÐèÇó¡£ÒÔÏÂÊÇÎÒÃǵ±Ê±Óõ½µÄ²¿·Ö¿ªÔ´²úÆ·ºÍ¼¼Êõ¡£

ÏÂÃæÑ¡¼¸¸ö²úÆ·¼òµ¥ËµÒ»ÏÂÎÒÃÇͨ¹ýËüʵÏÖʲô¹¦ÄÜ£º
1.Percona£ºÎÒÃǵı¸·Ý¡¢ÂýÈÕÖ¾·ÖÎö¡¢¹ýÔØ±£»¤µÈ¹¦Äܶ¼ÊÇ»ùÓÚ
pt-tools ¹¤¾ß°üÀ´ÊµÏֵġ£
2.Prometheus£ºÐÔÄÜÓÅÔ½ÇÒ¹¦ÄÜÇ¿´óµÄ TSDB£¬ÓÃÓÚʵÏÖÕû¸öƽ̨ʵÀýµÄ¼à¿Ø¸æ¾¯¡£È±µãÊÇûÓм¯Èº¹¦ÄÜ£¬µ¥»úÐÔÄÜÊǸöÆ¿¾±
(ËäÈ»µ¥»úµÄ´¦ÀíÄÜÁ¦ÒѾºÜÇ¿ÁË)£¬ËùÒÔÎÒÃÇÔÚÒµÎñ²ãÃæ½øÐÐÁË DB ²ð·Ö£¬ÊµÏÖÁË·Ö²¼Ê½´æ´¢¼°À©Õ¹¡£
3.Consul£º·Ö²¼Ê½µÄ·þÎñ·¢ÏÖºÍÅäÖù²ÏíÈí¼þ£¬ÅäºÏ prometheus
ʵÏÖ¼à¿Ø½Úµã×¢²á¡£
4.Python£º¹ÜÀí Docker ÈÝÆ÷ÖÐ MySQL ʵÀýµÄ agent
ÒÔ¼°²¿·Ö²Ù×÷½Å±¾¡£
5.Docker£º³ÐÔØ MySQL ʵÀý²¢ÊµÏÖ×ÊÔ´¸ôÀëºÍ×ÊÔ´ÏÞÖÆ¡£
×ÜÌå¼Ü¹¹

ÈÝÆ÷µ÷¶ÈϵͳÈçºÎÑ¡Ôñ
ÈÝÆ÷µ÷¶ÈµÄ¿ªÔ´²úÆ·Ö÷ÒªÓÐ Kubernetes ºÍ mesos£¬µ«ÊÇÎÒÃDz¢Ã»ÓÐÑ¡ÓÃÕâÁ½¸ö¡£Ö÷ÒªÔÒòÊÇÎÒÃÇÄÚ²¿ÒѾ¿ª·¢ÁËÒ»Ì×»ùÓÚ
Docker µÄ×ÊÔ´¹ÜÀí¡¢µ÷¶ÈµÄϵͳ£¬ÖÁ½ñÎȶ¨ÔËÐÐ 2 Äê¶àÁË¡£ÕâÌ׼ܹ¹ÉÔ×÷ÐÞ¸ÄÊÇ·ûºÏÐèÇóµÄ¡£
ÁíÍâµÚÈý·½µÄ×ÊÔ´µ÷¶Èϵͳ¼æÈÝÎÒÃÇĿǰµÄ¸ß¿ÉÓüܹ¹£¬ÆäËû×Ô¶¯»¯¹ÜÀíÓÐЩÄѶȣ¬Í¬Ê±×ÊÔ´·ÖÅä²ßÂÔÒ²ÐèÒª¶¨ÖÆ»¯¡£ËùÒÔ×îÖÕ»¹ÊÇÑ¡Ôñ²ÉÓÃÁË×ÔÑеÄ×ÊÔ´µ÷¶È¹ÜÀí¡£ÊʺÏ×Ô¼ºÏÖ×´µÄÐèÇó²ÅÊÇ×îºÃµÄ¡£µ±È»ºóÃæÓлú»á×öµ½¼ÆËãµ÷¶ÈºÍ´æ´¢µ÷¶È·ÖÀëµÄÇé¿öÏÂÎÒÃÇ¿ÉÄÜ»áתÏò
Kubernetes µÄ·½°¸¡£
¹¤×÷ÔÀí
ÎÒÃǾÍÄô´½¨¼¯ÈºÀ´¾ÙÀý°É¡£µ±Æ½Ì¨·¢ÆðÒ»¸ö´´½¨¼¯ÈºµÄÈÎÎñºó£¬Ê×ÏÈ»á¸ù¾Ý¼¯Èº¹æÄ£ (Ò»Ö÷Ò»´Ó»¹ÊÇÒ»Ö÷¶à´Ó£¬»òÕßÊÇ·ÖÆ¬¼¯Èº)
È·¶¨Òª´´½¨µÄʵÀýÊýÁ¿£¬È»ºó¸ù¾ÝÕâ¸öÐèÇó°´ÕÕÎÒÃǵÄ×ÊԴɸѡ¹æÔò (±ÈÈçÖ÷´Ó²»ÄÜÔÚͬһ̨»úÆ÷¡¢ÄÚ´æÅäÖò»ÔÊÐí³¬ÂôµÈµÈ)£¬´ÓÏÖÓеÄ×ÊÔ´³ØÖÐÆ¥Åä³ö¿ÉÓÃ×ÊÔ´£¬È»ºóÒÀ´Î´´½¨Ö÷´Ó¹ØÏµ¡¢´´½¨¸ß¿ÉÓùÜÀí¡¢¼ì²é¼¯Èº¸´ÖÆ×´Ì¬¡¢ÍÆËͼ¯ÈºÐÅÏ¢µ½Öмä¼þ
(Ñ¡ÓÃÁËÖмä¼þµÄÇé¿öÏÂ) ¿ØÖÆÖÐÐÄ¡¢×îºó½«ÒÔÉÏÏà¹ØÐÅÏ¢¶¼Í¬²½µ½ CMDB¡£
ÒÔÉϵÄÿһ¸ö¹¤×÷¶¼ÊÇͨ¹ý·þÎñ¶Ë·¢ËÍÏûÏ¢µ½ agent£¬È»ºóÓÉ agent Ö´ÐжÔÓ¦µÄ½Å±¾£¬½Å±¾»á·µ»ØÖ¸¶¨¸ñʽµÄÖ´Ðнá¹û£¬ÕâЩ½Å±¾ÊÇÓÉ
DBA ¿ª·¢µÄ¡£ÕâÖÖ·½Ê½µÄÓÅÊÆÔÚÓÚ£¬DBA ±ÈÈκÎÈ˶¼Á˽âÊý¾Ý¿â£¬ËùÒÔͨ¹ýÕâÖÖ·½Ê½¿ÉÒÔÓÐЧÌáÉýÏîÄ¿¿ª·¢Ð§ÂÊ£¬Ò²ÄÜÈÃ
DBA ²ÎÓëµ½ÏîÄ¿µ±ÖÐÈ¥¡£¿ª·¢Ö»ÐèҪдǰ̨Âß¼£¬DBA ¸ºÔðºó¶Ë¾ßÌåÖ´ÐеÄÖ¸Áî¡£Èç¹ûδÀ´¹¦ÄÜÓбä¸ü»òµü´úµÄ»°£¬Ö»ÐèÒªµü´ú½Å±¾¼´¿É£¬Î¬»¤Á¿¼«Ð¡¡£
×ÊÔ´µÄµ÷¶È·ÖÅäÔÔò
¾¹ý¶Ôͬ³Ì¶àÄêµÄ DB ÔËάÊý¾Ý·ÖÎöµÃµ½ÈçϾÑ飺
1.CPU ×î´ó³¬Âô 3 ±¶£¬ÄÚ´æ²»³¬Âô£»
2.ͬһ»ú·¿ÓÅÏÈÑ¡Ôñ×ÊÔ´×î¿ÕÏеĻúÆ÷£»
3.Ö÷´Ó½ÇÉ«²»ÔÊÐíÔÚͬһ̨»úÆ÷ÉÏ£»
4.ÈôÓÐ VIP ÐèÇóµÄÖ÷´Ó¶Ë¿ÚÐèÒªÒ»Ö£¬ÎÞ VIP ÐèÇóÖ±½Ó¶Ô½ÓÖмä¼þµÄÎÞ¶Ë¿ÚÒ»ÖµÄÏÞÖÆ£»
5.·ÖƬµÄ¼¯Èº½«½Úµã·Ö²¼ÔÚ¶ą̀ÎïÀí»úÉÏ£»
²úÆ··ÖÀà

ºËÐŦÄÜ

ÒÔÉÏÊÇÒѾÉÏÏߵIJ¿·ÖºËÐŦÄÜ£¬»¹Óкܶ๦ÄܾͲ»ÔÙһһչʾ¡£
±¸·Ý»Ö¸´ÏµÍ³

±¸·Ý¹¤¾ßÎÒÃÇÊÇÓà percona-xtrabackup¡£Í¨¹ýÁ÷±¸·ÝµÄ·½Ê½½«Êý¾Ý±¸·Ýµ½Ô¶¶ËµÄ±¸·Ý·þÎñÆ÷¡£±¸·Ý·þÎñÆ÷Óжą̀£¬·Ö±ð°´ÕÕËùÊô»ú·¿»®·Ö¡£
ÎÒÃÇÌṩÁËÊÖ¹¤±¸·ÝºÍ¶¨Ê±±¸·ÝÀ´Âú×㲻ͬ³¡¾°µÄÐèÇó¡£¶àʵÀý±¸·ÝÒ»¶¨Òª¹Ø×¢´ÅÅÌ IO ºÍÍøÂ磬ËùÒÔÎÒÃǵı¸·Ý²ßÂÔ»áÏÞÖÆµ¥¸öÎïÀí»úÉϲ¢Ðб¸·ÝµÄÊýÁ¿£¬ÁíÍâµ¥¸ö»ú·¿±¸·ÝÈÎÎñ¶ÓÁеIJ¢ÐжÈÒ²ÓпØÖÆ£¬È·±£²¢Ðб¸·ÝÈÎÎñʼÖÕ±£³Öµ½ÎÒÃÇÖ¸¶¨µÄÊýÁ¿¡£
¼ÙÈçÕû¸ö»ú·¿²¢ÐеÄÊÇ 50 ¸öÈÎÎñ£¬ÄÇôÕâ 50 ¸öµ±ÖÐÈç¹ûÓÐ 5 ¸öÌáǰ±¸·ÝÍê³É£¬ÄÇô»áмÓÈë
5 ¸öµÈ´ý±¸·ÝµÄÈÎÎñ½øÈëÕâ¸ö±¸·Ý¶ÓÁС£ÎÒÃǺóÀ´¸ÄÔìÁ˱¸·ÝµÄ´æ´¢·½Ê½£¬Ö±½Ó½«±¸·ÝÁ÷Èë·Öʽ´æ´¢¡£
¼à¿Ø¸æ¾¯ÏµÍ³

ÔÚÉÏÏßÕâÌ×ÔÆÆ½Ì¨Ç°£¬ÎÒÃÇ»¹ÊÇÓô«Í³µÄ zabbix À´ÊµÏÖ¼à¿Ø¸æ¾¯µÄ¡£zabbix µÄ¹¦ÄܵÄÈ··Ç³£Ç¿´ó£¬µ«ÊǺó¶ËµÄÊý¾Ý¿âÊǸöÆ¿¾±£¬µ±È»¿ÉÒÔͨ¹ýÊý¾Ý¿â²ð·ÖµÄ·½Ê½½â¾ö¡£
Êý¾Ý¿âÒª¼à¿ØµÄÖ¸±ê±È½Ï¶à£¬Èç¹û²É¼¯µÄÏîÄ¿±È½Ï¶à£¬zabbix ¾ÍÐèÒª¼Ó proxy£¬¼Ü¹¹Ô½À´Ô½¸´ÔÓ£¬ÔÙ¼ÓÉϺÍÎÒÃÇÆ½Ì¨¶Ô½ÓµÄ³É±¾±È½Ï¸ß£¬¶ÔһЩ¸´ÔÓµÄͳ¼ÆÀà²éѯ
(95 Öµ¡¢Ô¤²âÖµµÈ) ÐÔÄܱȽϲ
ËùÒÔÎÒÃÇÑ¡ÁËÒ»¿î TSDB¡ª¡ªprometheus£¬ÕâÊÇÒ»¿îÐÔÄܼ«Ç¿¡¢¼«ÆäÊÊºÏ¼à¿ØÏµÍ³Ê¹ÓõÄʱÐòÐÔÊý¾Ý¿â¡£prometheus
Óŵã¾ÍÊǵ¥»úÐÔÄܳ¬Ç¿¡£µ«·²ÊÂÓÖÓÐÁ½ÃæÐÔ£¬ËüµÄȱµã¾ÍÊDz»Ö§³Ö¼¯Èº¼Ü¹¹ (²»¹ýÎÒÃǽâ¾öÁËÀ©Õ¹µÄÎÊÌ⣬ÏÂÃæ»á½²µ½)¡£
prometheus µÄʹÓÃÓ¦¸ÃÊÇ´ÓÒ»Äêǰ¾Í¿ªÊ¼µÄ£¬ÄÇʱºòÎÒÃÇÖ»ÊǰÑËü×÷Ϊ¸¨ÖúµÄ¼à¿ØÏµÍ³À´Ê¹Óõģ¬Ëæ×ÅÖð½¥ÊìϤ£¬Ô½À´Ô½¾õµÃÕâ¸öÊÇÈÝÆ÷¼à¿ØµÄ¾ø¼Ñ½â¾ö·½°¸¡£ËùÒÔÔÚÉÏÔÆÆ½Ì¨µÄʱºò¾ÍÑ¡ÔñÁËËü×÷ΪÕû¸öƽ̨µÄ¼à¿ØÏµÍ³¡£
¼à¿ØÊý¾Ý²É¼¯
prometheus ÊÇÖ§³Ö pushgateway ºÍ pull µÄ·½Ê½¡£ÎÒÃÇÑ¡ÓÃÁË pull µÄ·½Ê½¡£ÒòΪ½á¹¹¼òµ¥£¬¿ª·¢³É±¾µÍµÄͬʱ»¹ÄܺÍÎÒÃǵÄϵͳÍêÃÀ¶Ô½Ó¡£consul
¼¯Èº¸ºÔð×¢²áʵÀýÐÅÏ¢ºÍ·þÎñÐÅÏ¢£¬±ÈÈç MySQL ʵÀýÖ÷´Ó¶ÔÓ¦µÄ·þÎñ¡¢Linux Ö÷´Ó¶ÔÓ¦µÄ·þÎñ¡¢ÈÝÆ÷×¢²á¶ÔÓ¦µÄ·þÎñ¡£È»ºó
prometheus ͨ¹ý consul ÉÏ×¢²áµÄÐÅÏ¢À´»ñÈ¡¼à¿ØÄ¿±ê£¬È»ºóÈ¥ pull ¼à¿ØÊý¾Ý¡£¼à¿Ø¿Í»§¶ËÊÇÒÔ
agent µÄÐÎʽ´æÔÚ£¬prometheus ͨ¹ý HTTP ÐÒé»ñÈ¡ agent ¶Ë²É¼¯µ½µÄÊý¾Ý¡£
¼à¿ØÖ¸±ê»Í¼
²»µÃ²»Ëµ grafana ÊÇ¼à¿Ø»Í¼½çµÄ¿¸°Ñ×Ó£¬¹¦ÄÜÆëÈ«µÄ¶ÈÁ¿ÒDZíÅ̺ÍͼÐÎ±à¼Æ÷£¬¾¹ý¼òµ¥ÅäÖþÍÄÜÍê³É¸÷ÖÖ¼à¿ØÍ¼ÐεÄչʾ¡£È»ºóÎÒÃÇ´òͨÁËÔÆÆ½Ì¨ºÍ
grafana µÄ¹ØÁª£¬Óû§ÔÚÔÆÆ½Ì¨ÐèÒª²é¿´ÊµÀý»ò¼¯ÈºÐÅÏ¢£¬Ö»Òªµã»÷°´Å¥¼´¿É¡£


¸æ¾¯¹ÜÀí
¸æ¾¯¹ÜÀí·ÖΪ£º¸æ¾¯·¢ËÍ¡¢¸æ¾¯½ÓÊÕÈ˹ÜÀí¡¢¸æ¾¯¾²Ä¬µÈ¹¦ÄÜ¡£prometheus ÓÐÒ»¸ö¸æ¾¯·¢ËÍÄ£¿é alertmanager£¬ÎÒÃÇͨ¹ý
webhook µÄ·½Ê½Èà alertmanager °Ñ¸æ¾¯ÐÅÏ¢·¢Ë͵½ÔÆÆ½Ì¨µÄ¸æ¾¯ API£¬È»ºóÔÚÔÆÆ½Ì¨À´¸ù¾ÝºóÃæµÄÂß¼½øÐи澯ÄÚÈÝ·¢ËÍ¡£
alertmanager ÍÆ¹ýÀ´µÄÖ»ÊÇʵÀýγ¶ÈµÄ¸æ¾¯£¬ËùÒÔÎÒÃǽáºÏ¸æ¾¯Æ½Ì¨µÄʵÀýÏà¹ØÐÅÏ¢£¬»áÆ´³öÒ»¸ö¶àάÐÅÏ¢µÄ¸æ¾¯ÄÚÈÝ¡£ÈÃ
DBA Ò»¿´¾ÍÖªµÀÊÇ˵ÄÄĸö¼¯ÈºÔÚʲôʱ¼ä´¥·¢ÁËʲôµÈ¼¶µÄʲô¸æ¾¯¡£¸æ¾¯»Ö¸´ºóÒ²»áÔÙ·¢Ò»´Î»Ö¸´µÄ֪ͨ¡£

alertmanager Ò²Êǹ¦ÄÜÇ¿´óµÄ¹¤¾ß£¬Ö§³Ö¸æ¾¯ÒÖÖÆ¡¢¸æ¾¯Â·ÓɲßÂÔ¡¢·¢ËÍÖÜÆÚ¡¢¾²Ä¬¸æ¾¯µÈµÈ¡£ÓÐÐèÒª¿ÉÒÔ×ÔÐÐÅäÖᣵ«ÊÇÕâÖÖºÍÆ½Ì¨·ÖÀëµÄ¹ÜÀí·½Ê½²»ÊÇÎÒÃÇÏëÒªµÄ£¬ËùÒÔ¾ÍÏë°Ñ
alertmanager ¶Ô¸æ¾¯ÐÅÏ¢´¦ÀíµÄÕⲿ·Ö¹¦Äܼ¯³Éµ½ÔÆÆ½Ì¨ÄÚ¡£
µ«Êǹٷ½Îĵµ²¢Ã»ÓÐÌá¼°µ½ alertmanager µÄ API£¬Í¨¹ý¶ÔÔ´ÂëµÄ·ÖÎö£¬ÎÒÃÇÕÒµ½Á˸澯¹ÜÀíÏà¹ØµÄ
API¡£È»ºó alertmanager µÄÔÉú UI ÉϲÙ×÷µÄ¹¦ÄÜÍêÃÀÒÆÖ²µ½ÁËÎÒÃǵÄÔÆÆ½Ì¨£¬Í¬Ê±ÐÂÔöÁËʵÀýÏà¹Ø¼¯ÈºÃû³Æ¡¢¸ºÔðÈ˵ȸü¶àγ¶ÈµÄÐÅÏ¢¡£
ÏÂÃæÊÇһЩ²Ù×÷ÑùÀý£º
µ±Ç°¸æ¾¯£º

Ìí¼Ó¸æ¾¯¾²Ä¬£º

ÒÑ´´½¨µÄ¾²Ä¬¹æÔò£º

ÂýÈÕÖ¾·ÖÎöϵͳ

ÂýÈÕÖ¾µÄÊÕ¼¯ÊÇͨ¹ý pt-query-digest ÿСʱ½øÐб¾µØ·ÖÎö£¬·ÖÎöÍê³ÉÒԺ󽫽á¹ûдÈëÂýÈÕÖ¾´æ´¢µÄÊý¾Ý¿âÀ´Íê³ÉµÄ¡£µ±È»Èç¹ûÓû§ÐèÒªÁ¢¿Ì²é¿´µ±Ç°ÂýÈÕÖ¾µÄÇé¿ö£¬Ò²¿ÉÒÔÔÚ½çÃæµã»÷ÂýÈÕÖ¾·ÖÎö¡£·ÖÎöÍê³Éºó¿ÉÒÔÔÚ
UI ½çÃæµã»÷ÂýÈÕÖ¾²é¿´£¬¾ÍÄÜ¿´µ½¸ÃʵÀýµÄÂýÈÕÖ¾·ÖÎö½á¹û¡£Ëüͬʱ¼¯³ÉÁË explain¡¢²é¿´ table
status µÈ¹¦ÄÜ¡£
¼¯Èº¹ÜÀí
¼¯Èº¹ÜÀí×÷Ϊ¸Ãƽ̨µÄºËÐŦÄÜÖ®Ò»£¬Õ¼¾ÝÁËÕû¸öƽ̨ 70% µÄ¹¤×÷¡£ÕâЩ¹¦ÄܾÍÊÇ DBA ÔËάÖо³£ÐèÒªÓõ½µÄ¡£ÎÒÃǵÄÉè¼ÆË¼Â·ÊÇÒÔ¼¯ÈºÎªµ¥Î»£¬ËùÒÔͬʱֻÄܲÙ×÷Ò»¸ö¼¯ÈºÉϵÄʵÀý¡£ÕâÑù¾Í²»»áÔÚÒ»¸öÒ³ÃæÉÏÏÔʾ¹ý¶àÎÞÓõÄÐÅÏ¢£¬¿´×ÅÂÒ»¹ÓпÉÄܵ¼ÖÂÎó²Ù×÷¡£¿´ÁËÏÂͼÖеÄÕâЩ¹¦ÄܾÍÄܸüÃ÷°×ΪʲôҪÕâôÉè¼ÆÁË¡£

ͼÖÐÖ»ÊÇÒ»²¿·Ö£¬»¹Óв¿·Öδչʾ³öµÄ¹¦ÄÜ (¼¯³ÉÖмä¼þ¡¢Dashboard¡¢ºÚÆÁÕï¶Ï´°¿ÚµÈ)£¬ÔÚºó°æÖй¦Äܸü¶à¡£
¸ß¿ÉÓÃ
¸ß¿ÉÓ÷½°¸ÎÒÃÇʹÓÃÁËĿǰ×îÁ÷ÐÐµÄ MySQL ¸ß¿ÉÓ÷½°¸ MHA¡£MHA µÄÓÅȱµã¾Í²»ÔÚÕâÀï½²ÁË£¬ÓÐ
DBA ͬѧµÄÓ¦¸Ã¶¼ÒѾºÜÊìϤÁË¡£ÕâÀïÎÒ˵һÏÂÎÒÃÇ»ùÓÚͬ³ÌÒµÎñ×öµÄµ÷Õû¡£
GTID
ÒòΪÎÒÃÇÖ÷ҪʹÓÃµÄ MariaDB£¬µ«ÊÇ MHA ×îа汾ҲÊDz»ÄÜÖ§³Ö MariaDB µÄ GTID
Çл»¡£ËùÒÔÎÒÃÇÔÚÔÓеĻù´¡ÉÏ×öÁ˸Ľø£¬Ö§³ÖÁË MariaDB µÄ GTID¡£Ê¹Óà GTID ÒÔºóÁé»îÇл»ÊÇÒ»¸ö·½Ã棬ÁíÍâÒ»¸ö·½ÃæÊÇ
sync_master_info ºÍ sync_relay_log_info ¾Í²»ÐèÒªÉèÖÃ³É 1 ÁË
(MariaDB ²»Ö§³Öд table£¬Ö»ÄÜд file)£¬¼«´ó¼õÉÙÁË´Ó¿â¸´ÖÆ´øÀ´µÄ IOPS¡£
Çл»Ê±µ÷ÕûÏà¹Ø²ÎÊý
ÎÒÃÇÔÚÇл»Ê±µ÷Õû sync_binlog ºÍ innodb_flush_log_at_trx_commit
²ÎÊý£¬ÕâÁ½¸ö²ÎÊýÊǾö¶¨Êý¾ÝÂäÅÌ·½Ê½µÄ£¬Ä¬ÈÏ´ó¼Ò¶¼ÊÇÉèÖÃË« 1¡£ÕâÑùÏà¶ÔÊý¾Ý×ȫ£¬µ«ÊÇ IO Ò²×î¸ß¡£
ÔÆ·þÎñµÄ¶àʵÀý²¿Êð»áµ¼ÖÂһ̨ÎïÀí»úÉϼÈÓÐ master ÓÖÓÐ slave¡£ÎÒÃǿ϶¨²»Ï£Íû slave
²úÉúÌ«¸ßµÄ IO Ó°Ï쵽ͬ»úÆ÷µÄÆäËû slave(ËäÈ»¿ÉÒÔ IO ¸ôÀ룬µ«ÊÇÓÅÏȽµµÍ²»±ØÒª IO ²Å¿¿Æ×)¡£ËùÒÔÀíÂÛÉÏÀ´Ëµ
Master ÉÏÃæÉèÖÃË« 1£¬slave Ôò¿ÉÒÔ²»ÕâÑùÉèÖᣵ«ÊÇÇл»ºóÔÀ´µÄ salve ¿ÉÄÜ»á±ä³ÉÁË
master¡£ËùÒÔÎÒÃÇĬÈÏ slave ·ÇË« 1£¬ÔÚ MHA Çл»µÄʱºò»á×Ô¶¯½«Ð master µÄÕâÁ½¸ö²ÎÊýÉèÖÃΪ
1¡£
ÉÚ±ø
ÎÒÃÇÔÚ¶à¸öµã²¿ÊðÁËÉÚ±ø·þÎñ¡£Õâ¸öÉÚ±øÊÇÒ»¸ö¼òµ¥µÄ API ·þÎñ£¬´øÉÏÏìÓ¦µÄ²ÎÊý¿ÉÒÔÇëÇóµ½Ö¸¶¨µÄʵÀý¡£µ±
MHA manager ¼ì²âµ½ÓÐ Master ÎÞ·¨Á¬½Óʱ£¬»á´¥·¢ secondary check
»úÖÆ£¬´ø×Å master Ïà¹ØÐÅÏ¢ÇëÇóÉÚ±ø½ÚµãµÄ API£¬¸ù¾ÝÉÚ±ø½Úµã·µ»ØÇé¿ö£¬Èô³¬¹ý°ëÊýÎÞ·¨Á¬½ÓÔòÇл»¡£·ñÔò·ÅÆúÇл»¡£
¸ß¿ÉÓÃÇл»¶Ô½ÓDB Öмä¼þ
(µã»÷·Å´óͼÏñ)
DB Öмä¼þºÍ DB ͨ¹ýÎïÀí IP Á¬½Ó£¬µ±·¢Éú¸ß¿ÉÓÃÇл»Ê±½«×îÐ嵀 Master IP¡¢Master
port ÐÅÏ¢ÍÆË͵½ DB Öмä¼þ¿ØÖÆÖÐÐÄ£¬DB Öмä¼þÄõ½ÅäÖúóÁ¢¿ÌÏ·¢²¢ÉúЧ¡£
ʵÀý¡¢¿âÇ¨ÒÆ

Ç¨ÒÆ¹¦ÄܳõÖÔÊÇΪÁ˽«Æ½Ì¨ÍâµÄʵÀý»òÕß¿âÇ¨ÒÆµ½Æ½Ì¨ÀïÃæÀ´£¬ºóÀ´Ëæ×ÅÖð½¥Ê¹Ó÷¢ÏÖÕâ¸ö¹¦ÄÜ¿ÉÍÚ¾òµÄ¿Õ¼äºÜ´ó£¬±ÈÈç¿ÉÒÔ×öƽ̨ÄÚ¿â±í²ð·ÖµÈÐèÇó¡£ÊµÏÖÔÀíÒ²ºÜ¼òµ¥£¬ÓÃ
mydumper ½«Ö¸¶¨Êý¾Ý±¸·ÝÏÂÀ´ÒÔºó£¬ÔÙÓà myloader »Ö¸´µ½Ö¸¶¨Êý¾Ý¿â¡£
ÕâÊÇÒ»¸öÈ«Á¿µÄ¹ý³Ì£¬ÔöÁ¿¸´ÖÆÓõÄÊÇÓÃÎÒÃÇ×Ô¼º¿ª·¢µÄÒ»¸öÖ§³Ö²¢Ðи´ÖƵŤ¾ß£¬Õâ¸ö¹¤¾ß»¹Ö§³ÖµÈÃÝ´¦Àí£¬Ê¹ÓøüÁé»î¡£Ã»ÓÐÓÃÔÉú¸´ÖƵÄÔÒòÊÇ£¬¼ÙÈçÒª½«Ô´ÊµÀý¶à¸ö¿âÖеÄÒ»¸ö¿âÇ¨ÒÆµ½Ä¿±êʵÀý£¬ÄÇôÔÉú¸´ÖƾÍÐèÒª¶Ô
binlog ×ö¸´ÖƹýÂË£¬ÕâÀïÃæÉæ¼°µ½ÅäÖÃÐ޸ģ¬ÊµÀýÖØÆô£¬ËùÒÔ¹û¶Ï²»¿¼ÂÇ¡£
ʵÏÖ¹ý³Ì²¢Ã»ÓиߴóÉÏ£¬µ«ÊÇÍêÈ«Âú×ãÐèÇó¡£µ±È» mydumper ºÍ myloader Ò²ÓÐһЩÎÊÌ⣬ÎÒÃÇÒ²×öÁËС¸Ä¶¯ÒÔºó²ÅʵÏֵġ£ºóÃæÎÒÃǼƻ®ÓÃÁ÷µÄ·½Ê½È¥×öÊý¾Ýµ¼³öµ¼Èë
(ÀàËÆÓÚ°¢À↑ԴµÄ datax)¡£
Ç¨ÒÆÍê³É£¬ÔöÁ¿ÎÞÑÓ³ÙµÄÇé¿öÏ£¬´ó¼Ò»á¹ØÐÄÇ¨ÒÆÇ°ºóÊý¾ÝÒ»ÖÂÐÔµÄÎÊÌ⣬ÎÒÃÇÌṩÁË×ÔÑеÄÊý¾ÝУÑ鹤¾ß¡£Êµ²â
300G µÄÊý¾ÝУÑéʱ¼äԼΪ 2 ÖÁ 3 ·ÖÖÓ£¬¿ìÂýÈ¡¾öÓÚ¿ª¶àÉÙÏ̡߳£
ÆÁ±Îµ×²ãÎïÀí×ÊÔ´
¶ÔÓû§À´½²£¬Æ½Ì¨ÌṩµÄÊÇÒ»¸ö»òÒ»×éÊý¾Ý¿â·þÎñ£¬²»ÐèÒª¹ØÏµºó¶ËµÄʵÀýÊÇÔÚÄĄ̈»úÆ÷ÉÏ¡£×ÊÔ´¼ÆËãºÍµ÷¶ÈÈ«²¿ÓÉϵͳµÄËã·¨½øÐйÜÀí¡£
ÌáÉý×ÊÔ´ÀûÓÃÂÊ (CPU¡¢ÄÚ´æ)
ͨ¹ýµ¥»ú¶àʵÀý£¬CPU ×ÊÔ´¿É³¬Âô£¬ÓÐЧÌá¸ß CPU ×ÊÔ´µÄÀûÓá£ÄÚ´æ×ÊԴ䳬Âô£¬µ«ÊÇ¿ÉÒÔ¿ØÖƵ½Ã¿¸öʵÀýµÄÄÚ´æÊ¹Óã¬È·±£Ã¿¸öʵÀý¶¼ÄÜÓÐ×ã¹»µÄÄÚ´æ¡£ÈôÓÐÊ£ÓàÄڴ棬Ôò¼ÌÐø·ÖÅäÈÝÆ÷¼´¿É£¬²»
OOM µÄÇé¿öÏÂѹեÄÚ´æ×ÊÔ´¡£
ÌáÉýÔËάЧÂÊ
ЧÂʵÄÌáÉýµÃÒæÓÚ±ê×¼»¯ÒÔºó´øÀ´µÄ×Ô¶¯»¯¡£ÅúÁ¿ÔËάµÄ³É±¾ºÜµÍ¡£ÒÔǰ²¿ÊðÒ»Ì×·ÖÆ¬¼¯ÈºÐèÒª»¨·Ñ½«½ü 6
¸öСʱ (²»°üº¬¶Ô½ÓÖмä¼þµÄ 1 µ½ 2 ¸öСʱ)£¬¶øÏÖÔÚÖ»ÐèÒª 5 ·ÖÖÓ¼´¿É²¿ÊðÍê³É¡£²¢ÇÒ²¿ÊðÍê³ÉÒÔºó»á½«ÌṩһÌ×Öмä¼þ
+DB ·ÖƬ¼¯ÈºµÄ·þÎñ¡£
¾«Ï¸»¯¹ÜÀí
ƽ̨ÉÏÏߺóÓÐЧÌá¸ßÁË×ÊÔ´ÀûÓÃÂÊ£¬Í¬Ê±ÎÒÃǰ´ÕÕ 1 ¿â 1 ʵÀýµÄ·½Ê½£¬¿ÉÒÔÓÐЧ±ÜÃⲻͬ¿âµÄѹÁ¦²»¾ùµ¼ÖÂÏ໥ӰÏìµÄÎÊÌâ¡£²¢ÇÒÐÔÄÜ¼à¿ØÒ²Äܾ«×¼µ½¿â¼¶±ð¡£
½áÓï
ÒÔÉÏÕâЩֻÊÇÒ»¸ö¿ªÊ¼, ºóÃæ»¹Óкܶ๦ÄÜÐèÒªÍêÉÆ£¬ÏÂÃæÊǽüÆÚ²ß»®µÄһЩ¹¦ÄÜ£¬ÆäÖÐÓÐЩÒѾÔÚºó°æÖпª·¢Íê³É¡£
Ëæ×Ź¦ÄܵIJ»¶Ïµü´ú£¬ÎÒÃÇ»á´òÔìÒ»¸ö¸ü¼ÓÍêÃÀµÄ˽ÓÐÔÆÆ½Ì¨¡£

Êý¾Ý¿â˽ÓÐÔÆÆ½Ì¨µÄÉÏÏß¶Ôͬ³Ì DB À´Ëµ£¬Òâζ×ÅÒ»¸öʱ´úµÄ½áÊø£¬Ò²Òâζ×ÅÒ»¸öʱ´úµÄ¿ªÊ¼¡£½áÊøµÄÊÇ´«Í³ÔËάµÍЧ¡¢¸ß³É±¾µÄÔËάʱ´ú£¬¿ªÊ¼µÄÊÇÒ»¸öµÍ³É±¾¡¢¸ßЧÂÊ¡¢¸ß±£ÕϵÄÔËάʱ´ú¡£ÎÒÃÇÏàÐÅδÀ´»á¸üÃÀºÃ£¡ |