ÔÆÆÜTechDay31ÆÚ£¬°¢ÀïÔÆÈÝÆ÷·þÎñ¼¼Êõר¼Ò½ä¿Õ¸ø´ó¼Ò´øÀ´DockerÈÕÖ¾ÊÕ¼¯×î¼Ñʵ¼ùµÄÑݽ²¡£±¾ÎÄÖ÷Òª´Ó´«Í³ÈÕÖ¾´¦Àí¿ªÊ¼Ì¸Æð£¬½ÓÏÂÀ´×ÅÖØ·ÖÎöDockerÈÕÖ¾´¦Àí£¬°üÀ¨stdoutºÍÎļþÈÕÖ¾£¬ÆäÖл¹ÓÐfluentd-pilot£¬½Ó×Å·ÖÏíÁËÈÕÖ¾´æ´¢·½°¸Elasticsearch¡¢graylog2ºÍSLS£¬×îºó¶ÔÕýȷдÈÕÖ¾¸ø³öÁ˽¨Òé¡£
ÒÔÏÂÊǾ«²ÊÄÚÈÝÕûÀí£º
´«Í³ÈÕÖ¾´¦Àí
˵µ½ÈÕÖ¾£¬ÎÒÃÇÒÔǰ´¦ÀíÈÕÖ¾µÄ·½Ê½ÈçÏ£º
ÈÕ־дµ½±¾»ú´ÅÅÌÉÏ
ͨ³£½öÓÃÓÚÅŲéÏßÉÏÎÊÌ⣬ºÜÉÙÓÃÓÚÊý¾Ý·ÖÎö
ÐèҪʱµÇ¼µ½»úÆ÷ÉÏ£¬ÓÃgrep¡¢awkµÈ¹¤¾ß·ÖÎö
ÄÇô£¬ÕâÖÖ·½Ê½ÓÐʲôȱµãÄØ£¿
µÚÒ»£¬ ËüµÄЧÂʷdz£µÍ£¬ÒòΪÿһ´ÎÒªÅŲéÎÊÌâµÄʱºò¶¼ÒªµÇµ½»úÆ÷ÉÏÈ¥£¬µ±Óм¸Ê®Ì¨»òÕßÊÇÉϰŲ̀»úÆ÷µÄʱºò£¬Ã¿Ò»Ì¨»úÆ÷È¥µÇ½ÕâÊÇÒ»¸öû°ì·¨½ÓÊܵÄÊÂÇ飬¿ÉÄÜһ̨»úÆ÷ÀË·ÑÁ½·ÖÖÓ£¬Õû¸ö¼¸Ð¡Ê±¾Í¹ýÈ¥ÁË¡£
µÚ¶þ£¬ Èç¹ûÒª½øÐÐһЩ±È½Ï¸´ÔӵķÖÎö£¬Ïñgrep¡¢awkÁ½¸ö¼òµ¥µÄÃüÁî²»Äܹ»Âú×ãÐèÇóʱ£¬¾ÍÐèÒªÔËÐÐһЩ±È½Ï¸´ÔӵijÌÐò½øÐзÖÎö¡£
µÚÈý£¬ ÈÕÖ¾±¾ÉíËüµÄ¼ÛÖµ²»¹âÔÚÓÚÅŲéһЩϵͳÎÊÌâÉÏÃæ£¬¿ÉÄÜÔÚһЩÊý¾ÝµÄ·ÖÎöÉÏ£¬¿ÉÄÜÀûÓÃÈÕÖ¾À´×öһЩÓû§µÄ¾ö²ß£¬ÕâÒ²ÊÇËüµÄ¼ÛÖµ£¬Èç¹û²»ÄܰÑËüÀûÓÃÆðÀ´£¬¼ÛÖµ¾Í²»Äܳä·ÖµÄ·¢»Ó³öÀ´¡£

ËùÒÔ£¬ÏÖÔںܶ๫˾»á²ÉÓü¯ÖÐʽÈÕÖ¾ÊÕ¼¯µÄÈÕÖ¾´¦Àí·½Ê½£¬ÎÒÃÇ»á°ÑÈÕÖ¾·Ö²¼Ê½ÊÕ¼¯£¬¼¯ÖÐÀ´´æ´¢£¬ÎÒÃÇ»áÔÚËùÓлúÆ÷ÉÏÃæ°ÑÈÕÖ¾¶¼ÊÕ¼¯Æðµ½Ò»¸öÖÐÐÄ£¬ÔÚÖÐÐÄÀïÃæ×öÒ»¸öÈÕ־ȫÎÄË÷ÒýËÑË÷£¬¿ÉÒÔͨ¹ýÒ»¸ö½çÃæÈ¥²éѯ£¬Í¬Ê±Õâ¸öÈÕ־ϵͳºó¶Ë¿ÉÒÔ¶Ô½ÓһЩ¸ü¸´ÔÓµÄÊý¾Ý´¦Àíϵͳ£¬¿ÉÒÔ¶Ô½Ó¼à¿Ø¡¢±¨¾¯ÏµÍ³£¬¶Ô½ÓÊý¾ÝÍÚ¾òÊý¾Ý·ÖÎöϵͳ£¬³ä·Ö·¢»ÓÈÕÖ¾µÄ¼ÛÖµ¡£
DockerµÄÈÕÖ¾´¦Àí
ʹÓùýDockerµÄÈËÓÈÆäÊÇʹÓùýÈÝÆ÷±àÅÅϵͳ£¬±ÈÈç˵ÎÒÃǵÄÈÝÆ÷·þÎñ£¬¿ÉÄÜÒѾעÒâµ½ÕâÑùµÄÒ»Ð©ÌØµã£º
ÈÝÆ÷±àÅŸú´«Í³µÄ²¼Ö÷½Ê½ÊDz»Ò»ÑùµÄ£¬ÔÚÈÝÆ÷±àÅÅÀïÃæ£¬×ÊÔ´·ÖÅäÓ¦ÓÃÅܵ½ÄĄ̈»úÆ÷ÉÏÃæµÄ¾ö²ßÊÇÓÉÈÝÆ÷²ãÀ´×öµÄ£¬ËùÒÔÄãÊÂÏȲ»ÖªµÀÄãµÄÈÝÆ÷Ó¦ÓûáÅܵ½ÄĄ̈»úÆ÷ÉÏÃæ£»»¹ÓÐ×Ô¶¯ÉìËõ£¬¸ù¾Ý¸ºÔØ×Ô¶¯Ôö¼Ó»òÕß¼õÉÙÈÝÆ÷ÊýÁ¿£»ÁíÍ⣬ÔÚÕû¸öÔËÐйý³ÌÖУ¬ÏµÍ³·¢ÉúһЩÇé¿öʱ£¬±ÈÈç˵ÄãµÄÈÝÆ÷å´µôÁË£¬ÈÝÆ÷·þÎñ»á×Ô¶¯°ÑÈÝÆ÷Ó¦ÓÃǨµ½ÆäËûµÄ»úÆ÷ÉÏÈ¥£¬Õû¸ö¹ý³Ì·Ç³£¶¯Ì¬£¬Èç¹ûÏñ´«Í³·½Ê½È¥ÅäÖÆÈÕÖ¾µÄÊÕ¼¯¹¤¾ß£¬´Óһ̨»úÆ÷ÉÏÃæÊÕ¼¯Ä³Ò»¸öÓ¦Óã¬ÔÚÕâ¸ö¶¯Ì¬ÏÂÃæ£¬ºÜÄÑÓÃÔÀ´µÄ·½Ê½È¥ÅäÖá£
»ùÓÚÕâÐ©ÌØµã£¬ÔÚDockerµÄÈÕÖ¾ÀïÃæ£¬ ÎÒÃÇÖ»Äܹ»²ÉÓÃÖÐÐÄ»¯µÄÈÕÖ¾ÊÕ¼¯·½°¸£¬ÄãÒѾû°ì·¨ÔÙÏñÔÀ´µÇµ½Ò»Ì¨»úÆ÷ÉÏÃæÈ¥¿´ËüµÄÈÕÖ¾ÊÇʲô£¬ÒòΪÄã²»ÖªµÀËüÆäʵÔÚÄĸö»úÆ÷ÉÏÃæ¡£
stdoutºÍÎļþÈÕÖ¾
DockerµÄÈÕÖ¾ÎÒÃÇ¿ÉÒÔ°ÑËü·Ö³ÉÁ½À࣬һÀàÊÇstdout±ê×¼Êä³ö£¬ÁíÍâÒ»ÀàÊÇÎļþÈÕÖ¾¡£stdoutÊÇдÔÚ±ê×¼Êä³öÀïÃæµÄÈÕÖ¾£¬±ÈÈçÄãÔÚ³ÌÐòÀïÃæ£¬Í¨¹ýprint»òÕßechoÀ´Êä³öµÄʱºò£¬ÕâÖÖÊä³ö±ê×¼ÔÚlinuxÉÏÃæÆäʵÊÇÍùÒ»¸öIDΪÁãµÄÎļþ±íÊöÊéÀïÃæÈ¥Ð´£»ÁíÍâµÄ¾ÍÊÇÎļþÈÕÖ¾£¬ÎļþÈÕÖ¾¾ÍÊÇдÔÚ´ÅÅÌÉϵÄÈÕÖ¾£¬Ò»°ãÀ´ËµÎÒÃÇ»áÔÚ´«Í³µÄÓ¦ÓÃÀïÃæ»áÓõöàһЩ¡£
stdout

ÔÚDockerµÄ³¡¾°ÀïÃæ£¬Ä¿Ç°±È½ÏÍÆ³çÕâÖÖ±ê×¼Êä³öµÄÈÕÖ¾£¬±ê×¼Êä³öÈÕÖ¾¾ßÌå¹ý³ÌÈçͼ¡£±ê×¼Êä³öÈÕÖ¾µÄÔÀíÔÚÓÚ£¬µ±ÔÚÆô¶¯½ø³ÌµÄʱºò£¬½ø³ÌÖ®¼äÓÐÒ»¸ö¸¸×Ó¹ØÏµ£¬¸¸½ø³Ì¿ÉÒÔÄõ½×Ó½ø³ÌµÄ±ê×¼Êä³ö¡£Äõ½×Ó½ø³Ì±ê×¼Êä³öµÄºó£¬¸¸½ø³Ì¿ÉÒÔ¶Ô±ê×¼Êä³ö×öËùÓÐÏ£ÍûµÄ´¦Àí¡£

ÀýÈ磬ÎÒÃÇͨ¹ýexec.CommandÆô¶¯ÁËÒ»¸öÃüÁ´øÒ»Ð©²ÎÊý£¬È»ºó¾Í¿ÉÒÔͨ¹ý±ê×¼µÄpipelineÄõ½±ê×¼Êä³ö£¬ºóÃæ¾Í¿ÉÒÔÄõ½³ÌÐòÔËÐйý³ÌÖвúÉú±ê×¼Êä³ö¡£
DockerÒ²ÊÇÓÃÕâ¸öÔÀíÀ´Äõģ¬ËùÓеÄÈÝÆ÷ͨ¹ýDocker DaemonÆô¶¯£¬Êµ¼ÊÉÏÊôÓÚDockerµÄÒ»¸ö×Ó½ø³Ì£¬
Ëü¿ÉÒÔÄõ½ÄãµÄÈÝÆ÷ÀïÃæ½ø³ÌµÄ±ê×¼Êä³ö£¬È»ºóÄõ½±ê×¼Êä³öÖ®ºó£¬»áͨ¹ýËü×ÔÉíµÄÒ»¸ö½Ð×öLogDriverµÄÄ£¿éÀ´´¦Àí£¬LogDriver¾ÍÊÇDockerÓÃÀ´´¦ÀíÈÝÆ÷±ê×¼Êä³öµÄÒ»¸öÄ£¿é¡£
DockerÖ§³ÖºÜ¶àÖÖ²»Í¬µÄ´¦Àí·½Ê½£¬±ÈÈçÄãµÄ±ê×¼Êä³öÖ®ºó£¬ÔÚijһÖÖÇé¿öÏ»á°ÑËüдµ½Ò»¸öÈÕÖ¾ÀïÃæ£¬DockerĬÈϵÄJSON
FileÈÕÖ¾£¬³ý´ËÖ®Í⣬Docker»¹¿ÉÒÔ°ÑËü·¢Ë͵½syslogÀïÃæ£¬»òÕßÊÇ·¢Ë͵½journaldÀïÃæÈ¥£¬»òÕßÊÇgelfµÄÒ»¸öϵͳ¡£
ÔõôÅäÖÃlog driverÄØ£¿
ÓÃDockerÀ´Æô¶¯ÈÝÆ÷µÄ»°£¬ÄãÓÐÁ½ÖÖ·½Ê½À´ÅäÖÃLogDriver£º

µÚÒ»ÖÖ·½Ê½ÊÇÔÚDaemonÉÏÅäÖ㬶ÔËùÓеÄÈÝÆ÷ÉúЧ¡£ÄãÅäÖÃÖ®ºó£¬ËùÓеÄÈÝÆ÷Æô¶¯£¬Èç¹ûûÓжîÍâµÄÆäËûÅäÖÆ£¬Ä¬ÈÏÇé¿öϾͻá°ÑËùÓÐÈÝÆ÷±ê×¼Êä³öÈ«²¿¶¼·¢Ë͸øSyslog·þÎñ£¬ÕâÑù¾Í¿ÉÒÔÔÚÕâ¸öSyslog·þÎñÉÏÃæÊÕ¼¯Õą̂»úÆ÷ÉϵÄËùÓÐÈÝÆ÷µÄ±ê×¼Êä³ö£»

µÚ¶þÖÖ·½Ê½ÊÇÔÚÈÝÆ÷ÉÏÅäÖã¬Ö»¶Ôµ±Ç°ÈÝÆ÷ÉúЧ¡£Èç¹ûÄãÏ£ÍûÕâ¸öÅäÖÃÖ»¶ÔÒ»¸öÈÝÆ÷ÉúЧ£¬²»Ï£ÍûËùÓÐÈÝÆ÷¶¼Êܵ½Ó°Ï죬Äã¿ÉÒÔÔÚÈÝÆ÷ÉÏÃæÅäÖá£Æô¶¯Ò»¸öÈÝÆ÷£¬µ¥¶ÀÅäÖÃËü×ÔÉíʹÓõÄlogdriver¡£

ÆäʵDocker֮ǰÒѾ֧³ÖÁ˺ܶàµÄlogdriver£¬Í¼ÖÐÁбíÊÇÖ±½Ó´ÓDockerµÄ¹Ù·½ÎĵµÉÏÃæÄõ½µÄ¡£
ÎļþÈÕÖ¾
¶ÔÓÚstdoutµÄÕâÖÖÈÕÖ¾£¬ÔÚDockerÀïÃæÏÖÔÚ´¦ÀíÆðÀ´»¹ÊDZȽϷ½±ãµÄ£¬Èç¹ûûÓÐÏÖ³ÉLogdriverµÄÒ²¿ÉÒÔ×Ô¼ºÊµÏÖÒ»¸ö£¬µ«ÊǶÔÓÚÎļþÈÕÖ¾´¦ÀíÆðÀ´¾ÍûÓÐÕâô¼òµ¥ÁË¡£Èç¹ûÔÚÒ»¸öÈÝÆ÷ÀïÃæÐ´ÁËÈÕÖ¾£¬ÎļþλÓÚÈÝÆ÷ÄÚ²¿£¬´ÓËÞÖ÷»úÉÏÎÞ·¨·ÃÎÊ£¬µÄÈ·ÄãÊÇ¿ÉÒÔ¸ù¾ÝDockerÓõÄdevicemapper¡¢overlayfs·ÃÎʵ½ËüÀïÃæµÄÒ»¸öÎļþ£¬µ«ÊÇÕâÖÖ·½Ê½¸úDockerµÄʵÏÖ»úÖÆÊÇÓйØÏµµÄ£¬½«À´ËüÈç¹û¸Ä±ä£¬ÄãµÄ·½°¸¾ÍʧЧÁË£»ÁíÍ⣬ÈÝÆ÷ÔËÐзdz£¶¯Ì¬£¬ÈÕÖ¾ÊÕ¼¯³ÌÐòÄÑÒÔÅäÖã¬Èç¹ûÓÐÒ»¸öÈÕÖ¾ÊÕ¼¯µÄ³ÌÐò£¬ÔÚ»úÆ÷ÉÏÃæÅäÖÃÒªÊÕ¼¯ÄĸöÎļþ£¬ËüµÄ¸ñʽÊÇʲôÑù×ӵġ¢·¢Ë͵½ÄĶù£¿ÒòΪһ̨»úÆ÷ÉÏÃæÈÝÆ÷ÊÇÒ»Ö±ÔÚ¶¯Ì¬±äµÄ£¬ËüËæÊ±¿ÉÄÜÔÚÔö¼ÓÒ»¸ö»òÕßɾ³ýÒ»¸ö£¬ÊÂÏÈÄã²¢²»ÖªµÀÕą̂»úÆ÷ÉÏ»áÅÜÁ˶àÉÙ¸öÈÝÆ÷£¬ËûÃǵÄÅäÖÃÊÇÔõôÑù×ӵģ¬ËûÃǵÄÈÕÖ¾ÊÇдÔÚÄĶùµÄ£¬ËùÒÔû°ì·¨Ô¤ÏÈÔÚһ̨»úÆ÷ÉÏÃæ°ÑÕâ¸ö²É¼¯³ÌÐòÅäºÃ£¬Õâ¾ÍÊÇÎļþÊÕ¼¯±È½ÏÄѵÄÁ½¸öµØ·½¡£
×î¼òµ¥µÄÒ»¸ö·½°¸£¬¸øÃ¿¸öÈÝÆ÷Ūһ¸öÈÕÖ¾²É¼¯½ø³Ì£¬Õâ¸ö½ø³ÌÅܵ½ÈÝÆ÷ÀïÃæ£¬¾Í¿ÉÒÔ½â¾öÒÔÉϵÄÁ½¸öÎÊÌ⣬µÚÒ»ÒòΪËüÅܵ½ÈÝÆ÷ÀïÃæ£¬¾Í¿ÉÒÔ·ÃÎʵ½ÈÝÆ÷ÀïÃæËùÓеÄÎļþ£¬°üÀ¨ÈÕÖ¾Îļþ£»µÚ¶þËü¸úÈÝÆ÷ÔÚÒ»Æð£¬µ±ÈÝÆ÷Æô¶¯µÄʱºò£¬ÊÕ¼¯ÈÕÖ¾µÄ½ø³ÌÒ²Æô¶¯ÁË£¬µ±ÈÝÆ÷Ïú»ÙµÄʱºò£¬½ø³ÌÒ²¾Í±»Ïú»ÙµôÁË¡£
Õâ¸ö·½°¸·Ç³£¼òµ¥£¬µ«ÊÇÆäʵ»áÓкܶàµÄȱµã£º
µÚÒ»£¬ ÒòΪÿ¸öÈÝÆ÷¶¼ÓÐÒ»¸öÈÕÖ¾µÄ½ø³Ì£¬Òâζ×ÅÄãµÄ»úÆ÷ÉÏÃæÓÐ100¸öÈÝÆ÷£¬¾ÍÐèÒªÆô¶¯Ò»°Ù¸öÈÕÖ¾É豸µÄ³ÌÐò£¬×ÊÔ´µÄÀ˷ѷdz£À÷º¦¡£
µÚ¶þ£¬ ÔÚ×ö¾µÏñµÄʱºò£¬ÐèÒª°ÑÈÝÆ÷ÀïÃæÈÕÖ¾²É¼¯³ÌÐò×öµ½¾µÏñÀïÃæÈ¥£¬¶ÔÄãµÄ¾µÏñÆäʵÊÇÓÐÈëÇֵģ¬ÎªÁËÈÕÖ¾²É¼¯£¬²»µÃ²»°Ñ×Ô¼ºµÄÈÕÖ¾³ÌÐòÔÙ×ö¸öоµÏñ£¬È»ºó°Ñ¶«Î÷·Å½øÈ¥£¬ËùÒÔ¶ÔÄãµÄ¾µÏñ¹ý³ÌÊÇÓÐÈëÇÖÐԵġ£
µÚÈý£¬ µ±Ò»¸öÈÝÆ÷ÀïÃæºÃ¶à¸ö½ø³ÌµÄʱºò£¬¶ÔÓÚÈÝÆ÷µÄ×ÊÔ´¹ÜÀí£¬»á¸ÉÈÅÄã¶ÔÈÝÆ÷µÄ×ÊԴʹÓõÄÅжϣ¬°üÀ¨¶ÔÓÚÔÚ×ö×ÊÔ´·ÖÅäºÍ¼à¿ØµÄʱºò£¬¶¼»áÓÐһЩÕâÑùµÄ¸ÉÈÅ¡£
fluentd-pilot
ÔÚÈÝÆ÷·þÎñÉÏÃæ£¬ÎÒÃÇпª·¢ÁËÒ»¸ö¹¤¾ß£¬³ÆÖ®Îªfluentd-pilot¡£
fluentd-pilotÊÇÒ»¸ö¿ªÔ´µÄÈÕÖ¾²É¼¯¹¤¾ß£¬ÊʺÏÖ±½ÓÔÚһ̨»úÆ÷ÉÏÃæÅܵ¥¸ö½ø³Ìģʽ¡£fluentd-pilotÓÐÕâÑùµÄÒ»Ð©ÌØµã£º
Ò»¸öµ¥¶Àfluentd½ø³Ì£¬ÊÕ¼¯»úÆ÷ÉÏËùÓÐÈÝÆ÷µÄÈÕÖ¾¡£²»ÐèҪΪÿ¸öÈÝÆ÷Æô¶¯Ò»¸öfluentd½ø³Ì£»
ÉùÃ÷ʽÅäÖá£Ê¹ÓÃlabelÉùÃ÷ÒªÊÕ¼¯µÄÈÕÖ¾ÎļþµÄ·¾¶£»
Ö§³ÖÎļþºÍstdout£»
Ö§³Ö¶àÖÖºó¶Ë´æ´¢£ºelasticsearch, °¢ÀïÔÆÈÕÖ¾·þÎñ,
graylog2¡

¾ßÌåÊÇÔõô×öÄØ£¿Èçͼ£¬ÕâÊÇÒ»¸ö¼òµ¥µÄ½á¹¹£¬ÔÚDockerËÞÖ÷»úÉÏÃæ²¿ÊðÒ»¸öfluentd-pilotÈÝÆ÷£¬È»ºóÔÚÈÝÆ÷ÀïÃæÆô¶¯µÄʱºò£¬ÎÒÃÇÒªÉùÃ÷ÈÝÆ÷µÄÈÕÖ¾ÐÅÏ¢£¬fluentd-pilot»á×Ô¶¯¸ÐÖªËùÓÐÈÝÆ÷µÄÅäÖá£Ã¿´ÎÆô¶¯ÈÝÆ÷»òÕßɾ³ýÈÝÆ÷µÄʱºò£¬ËüÄܹ»¿´µÃµ½£¬µ±¿´µ½ÈÝÆ÷ÓÐÐÂÈÝÆ÷²úÉúÖ®ºó£¬Ëü¾Í»á×Ô¶¯¸øÐÂÈÝÆ÷°´ÕÕÄãµÄÅäÖÃÉú³É¶ÔÓ¦µÄÅäÖÃÎļþ£¬È»ºóÈ¥²É¼¯£¬×îºó²É¼¯»ØÀ´µÄÈÕ־ͬÑùÒ²»á¸ù¾ÝÅäÖ÷¢Ë͵½ºó¶Ë´æ´¢ÀïÃæÈ¥£¬ÕâÀïÃæºó¶ËÖ÷ÒªÖ¸µÄelasticsearch»òÕßÊÇSLSÕâÑùµÄϵͳ£¬½ÓÏÂÀ´Äã¿ÉÒÔÔÚÕâ¸öϵͳÉÏÃæÓÃһЩ¹¤¾ßÀ´²éѯµÈµÈ¡£Õû¸öÕâÒ»¿éÔÚDockerËÞÖ÷»úÉÏÃæ£¬ÍâÃæµÄ¾ÍÊÇÍⲿϵͳ£¬ÓÉÕâÁ½¸ö²¿·ÖÀ´×é³É¡£
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock
\
-v /:/host \
-e FLUENTD_OUTPUT=elasticsearch \
-e ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST}
\
-e ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
\
registry.cn-hangzhou.aliyuncs.com/acs-sample/fluentd-pilot:0.1 |
ÎÒÃǼÈȻҪÓÃfluentd-pilot£¬¾ÍµÃÏȰÑËüÆô¶¯ÆðÀ´¡£»¹ÒªÓÐÒ»¸öÈÕ־ϵͳ£¬ÈÕÖ¾Òª¼¯ÖÐÊÕ¼¯£¬±ØÈ»ÒªÓÐÒ»¸öÖмä·þÎñÈ¥ÊÕ¼¯ºÍ´æ´¢£¬ËùÒÔÒªÏȰÑÕâÖÖ¶«Î÷×¼±¸ºÃ£¬È»ºóÎÒÃÇÔÚÿһ¸öÊÕ¼¯ÈÕÖ¾µÄ»úÆ÷ÉÏÃæ²¿ÊðÒ»¸öfluentd-pilot£¬ÓÃÕâ¸öÃüÁîÀ´²¿Êð£¬ÆäʵÏÖÔÚËüÊÇÒ»¸ö±ê×¼µÄDocker¾µÏñ£¬ÄÚ²¿Ö§³ÖһЩºó¶Ë´æ´¢£¬¿ÉÒÔͨ¹ý»·¾³±äÁ¿À´Ö¸¶¨ÈÕÖ¾·Åµ½ÄĶùÈ¥£¬ÕâÑùµÄÅäÖ÷½Ê½»á°ÑËùÓеÄÊÕ¼¯µ½µÄÈÕ־ȫ²¿¶¼·¢Ë͵½elasticsearchÀïÃæÈ¥£¬µ±È»Á½¸ö¹Ü¹ÒÔØÊÇÐèÒªµÄ£¬ÒòΪËüÁ¬½ÓDocker£¬Òª¸ÐÖªµ½DockerÀïÃæËùÓÐÈÝÆ÷µÄ±ä»¯£¬ËüҪͨ¹ýÕâÖÖ·½Ê½À´·ÃÎÊËÞÖ÷»úµÄһЩÐÅÏ¢¡£
docker run -it --rm -p 10080:8080 \
-v /usr/local/tomcat/logs \
--label aliyun.logs.catalina=stdout \
--label aliyun.logs.access= /usr/local/tomcat/logs/localhost_access_log.*.txt
\
tomcat |
ÅäÖúÃÖ®ºóÆô¶¯Ó¦Óã¬ÎÒÃÇ¿´Ó¦ÓÃÉÏÃæÒªÊÕ¼¯µÄÈÕÖ¾£¬ÎÒ¸ÃÔÚÉÏÃæ×öʲôÑùµÄÉùÃ÷£¿¹Ø¼üµÄÅäÖÃÓÐÁ½¸ö£¬Ò»ÊÇlabel
catalina£¬ÉùÃ÷µÄʱºòÒªÊÕ¼¯ÈÝÆ÷µÄÈÕÖ¾£¬ËùÓеÄÃû×Ö¶¼¿ÉÒÔ£»¶þÊÇÉùÃ÷access£¬ÕâÒ²ÊǸöÃû×Ö£¬¶¼¿ÉÒÔÓÃÄãϲ»¶µÄÃû×Ö¡£ÕâÑùÒ»¸ö·¾¶µÄµØÖ·£¬µ±Äãͨ¹ýÕâÑùµÄÅäÖÃÀ´È¥Æô¶¯fluentd-pilotÈÝÆ÷Ö®ºó£¬Ëü¾ÍÄܹ»¸Ð¾õµ½ÕâÑùÒ»¸öÈÝÆ÷µÄÆô¶¯Ê¼þ£¬Ëü»áÈ¥¿´ÈÝÆ÷µÄÅäÖÃÊÇʲô£¬ÒªÊÕ¼¯Õâ¸öĿ¼ÏÂÃæµÄÎļþÈÕÖ¾£¬È»ºó¸æËßfluentd-pilotÈ¥ÖÐÐÄÅäÖò¢ÇÒÈ¥²É¼¯£¬ÕâÀïÓÐÒ»¸ö-V£¬Êµ¼ÊÉϸúLogsÊÇÒ»Öµģ¬ÔÚÈÝÆ÷ÍâÃæÊµ¼ÊÉÏûÓÐÒ»ÖÖͨÓõķ½Ê½Äܹ»»ñÈ¡µ½ÈÝÆ÷ÀïÃæµÄÎļþ£¬ËùÓÐÎÒÃÇÖ÷¶¯°ÑĿ¼´ÓËÞÖ÷»úÉϹÒÔØ½øÀ´£¬ÕâÑù¾Í¿ÉÒÔÔÚËÞÖ÷»úÉÏ¿´µ½Ä¿Â¼ÏÂÃæËùÓеĶ«Î÷¡£
³ýÁË×î¼òµ¥µÄ³¡¾°Ö®Í⣬ÄãµÄÈÕÖ¾¿ÉÄÜ»áÓÐһЩ¸ü¸´ÔÓµÄÌØÐÔ£¬±ÈÈçÄãµÄÈÕÖ¾¸ñʽÊÇʲôÑù×Ó£¬Äã¿ÉÄÜÏ£ÍûÔÚÊÕ¼¯Ö®ºó¼ÓһЩÄÚÈÝ£¬±ãÓÚËÑË÷£¬µ±ÄãÔÚÕæÓõÄʱºò£¬Ëü²»¹âÊÇÒ»¸ö·Ç³£¼òµ¥µÄÈÝÆ÷£¬Ëü¿ÉÄÜÊôÓÚijһ¸öÒµÎñ»òÕßÊôÓÚijһ¸öÓ¦Óã¬ÄÇô£¬ÄãÏ£ÍûÔÚÊÕ¼¯µÄʱºòÄܹ»ÓÐһЩ¹ØÁªÐÅÏ¢£¬ËùÒÔÄã¿ÉÒÔÖ¸¶¨ÈÕÖ¾¸ñʽÊÇʲôÑù×Ó£¬È»ºó¿ÉÒÔÔÚÈÕÖ¾ÀïÌí¼Ótag£¬ÕâЩtagÏ൱ÓÚһЩ¹Ø¼üÐÅÏ¢£¬¿ÉÒÔ¸½¼ÓÈκÎÐèÒªµÄ¹ØÁªÐÅÏ¢£¬ÕâÑù½«À´ÔÚËÑË÷µÄʱºò¿ÉÒÔ¸ü·½±ãµÄ°ÑÕâЩÈÕÖ¾¾ÛÔÚÒ»¿é£»¶øÇÒ£¬Ëü¿ÉÒÔÖ¸¶¨ºÜ¶àµÄºó¶Ë£¬fluetnd-pilotÖ§³Ö¶àÖÖºó¶Ë£¬Ê¹Óû·¾³±äÁ¿FLUENTD_OUTPUTÖ¸¶¨ºó¶ËÀàÐÍ¡£

fluent-pilotÒѾ¿ªÔ´£¬Èç¹û¹¦Äܲ»Âú×ãÐèÇ󣬿ÉÒÔ×Ô¼º¶¨ÖÆ£¬×Ô¼ºÐ޸ĴúÂëʵÏÖÐèÒªµÄ¹¦ÄÜ¡£ËüµÄ½á¹¹±È½Ï¼òµ¥£¬ÓÐÕâÑù¼¸¸öÄ£¿é£º
×îÉϲãÊÇÈÝÆ÷ʼþ¹ÜÀí£¬ÕâÒ»¿é¸úDocker½øÐн»»¥£¬Ëü»á¸ÐÖªDockerµÄ´´½¨ÈÝÆ÷£¬È»ºó×ö³öÏàÓ¦µÄÉú³ÉÅäÖûòÕßÇåÀíÅäÖÃÉϵÄÊÂÇ飻½âÎöÈÝÆ÷label¸úÈÝÆ÷ÅäÖ㬵±Äã´´½¨Ò»¸öÐÂÈÝÆ÷Ö®ºó£¬¾Í»áÓÃÕâ¸öÄ£¿éÄõ½ÐÂÈÝÆ÷µÄÅäÖã¬È»ºóÉú³É¶ÔÓ¦µÄÅäÖÃÎļþ£»FluentdControllerÖ÷ÒªÊÇÓÃÀ´Î¬»¤¶ÔÓ¦½ø³Ì£¬°üÀ¨¿ØÖÆÊ²Ã´Ê±ºò¼ÓÔØÐÂÅäÖã¬È»ºó¼ì²âһЩ½¡¿µ×´Ì¬µÈµÈ£»ÔÙÏÂÃæ¾ÍÊÇFluentdµÄһЩ²å¼þ£¬Èç¹ûÄãÐèÒªÔö¼ÓһЩÈÕÖ¾µÄºó¶Ë£¬¾Í¿ÉÒÔ×Ô¼ºÊµÏÖһЩ²å¼þ£¬·ÅÔÚÕâ¸öÀïÃæ£¬È»ºóÔÙÉú³É¸ú¶ÔÓ¦µÄ²å¼þÏà¹ØµÄһЩÅäÖá£
fleuntd-pilot+°¢ÀïÔÆÈÝÆ÷·þÎñ
ÒÔÉÏÊÇfleuntd-pilot±¾ÉíµÄһЩÄÜÁ¦£¬ÏÖÔÚÄã¿ÉÒÔÔÚÈκεط½Ê¹ÓÃËü£¬µ«ÊÇÔÚÈÝÆ÷·þÎñÉÏÃæÎÒÃÇÕë¶ÔËü×öÁËһЩ¸ü¼ÓÁé»î·½±ã¡¢¸ü¿áµÄһЩÊÂÇ飬ÈÝÆ÷·þÎñΪfluentd-pilot½øÐÐÓÅ»¯£º
µÚÒ»£¬ ×Ô¶¯Ê¶±ðaliyun.logs±êÇ©£¬²¢´´½¨Volume£»
µÚ¶þ£¬ ÖØÐ²¿Êð£¬ÐÂÈÝÆ÷×Ô¶¯¸´ÓÃÒÑÓеÄVolume£¬±ÜÃâÈÕÖ¾¶ªÊ§¡£
ÔÉúÖ§³ÖSLS
ÈÝÆ÷·þÎñÓÐÒ»¸öºÜ°ôµÄÌØµã£¬Ëü»á¸úÆäËûµÄÔÆ²úÆ·×öһЩ·Ç³£·½±ãµÄ¼¯³É£¬Õâ¶ÔÓÚÓû§À´Ëµ£¬ÔÚʹÓÃÈÝÆ÷·þÎñµÄʱºò£¬ÔƲúÆ·Äܹ»¸ü¼Ó·½±ãµÄʹÓᣱÈÈç˵ÔÚÈÕÖ¾·½Ã棬°¢ÀïÔÆÈÝÆ÷·þÎñרΪSLS×öÁËÓÅ»¯£¬ÈÃÓû§¸ü¼òµ¥µÄÔÚÈÝÆ÷·þÎñÉÏʹÓÃSLS¡£SLSÊǰ¢ÀïÔÆÌṩµÄÈÕÖ¾·þÎñ£¬ÐÔÄÜÇ¿º·£¬Ê¹Ó÷½±ã£¬»¹¿ÉÒÔ¶Ô½ÓODPSµÈÊý¾Ýϵͳ£»Ö§³Å1W̨ÎïÀí»ú£¬Ò»Ìì12TBÈÕÖ¾Êý¾Ý£¬IOPS>=
2W£¬²É¼¯Æ½¾ù<1 S;µ¥»ú£ºÔÚ1¸öCPU coreÇé¿öÏ£¬¿ÉÒÔʵʱ²É¼¯15-18MB/S ÈÕÖ¾Á¿£»Èç¹ûÅäÖÃÖÐÔö¼Ó¿ÉÒÔÓÃÏß³ÌÊýÄ¿£¬¿ÉˮƽÀ©Õ¹£»Êǰ¢ÀïÔÆ»·¾³ÏµÄ×î¼ÑÈÕÖ¾·½°¸¡£

ÓÅ»¯Óŵã¾ßÌåÌåÏÖÔÚ£º×Ô¶¯´´½¨slsµÄproject, logstore£»Í¬Ê±Ö§³ÖstdoutºÍÎļþÈÕÖ¾£¬Ê¹ÓÃͬÑùµÄ·½Ê½ÅäÖá£
ÈÝÆ÷·þÎñÈÕÖ¾·½°¸

±ÈÈçÔÚÈÝÆ÷·þÎñÉÏÃæ²¼Ò»¸ötomcat£¬¿ÉÄÜ»áдÈçͼµÄÒ»¸ö±ê×¼DockerµÄÄ£°å¡£
µ±Äãͨ¹ý²¿ÊðÖ®ºó£¬¾Í¿ÉÒÔÔÚÈÕÖ¾·þÎñÉÏÃæ¿´µ½»áÉú³ÉÁ½¸ö¶«Î÷£¬¶¼ÊÇ´´½¨ºÃµÄ£¬¼ÓһЩǰ׺À´Çø·Ö£¬²»ÓùÜһЩÅäÖã¬ÄãΨһҪ×öµÄÊÂÊÇÊ²Ã´ÄØ£¿µãÈÕÖ¾Ë÷Òý²éѯ£¬È»ºóµ½ÈÕÖ¾ËÑË÷½çÃæ£¬¸Õ²ÅÆô¶¯µÄʱºòһЩÈÕÖ¾£¬¿ÉÒÔ¿´µ½´ÓÄĹýÀ´µÄ£¬ÕâÌõÈÕÖ¾µÄÄÚÈÝÊÇʲô£¬ÕâЩÐÅÏ¢¶¼ÒѾºÜ¿ìµÄ³öÏÖÁË£¬°üÀ¨ÐèÒª¼ìË÷¿ÉÒÔÑ¡ÖÐÒ»¸öʱ¼ä¶Î£¬ÊäÈë¹Ø½¡´ÊÈ¥×öһЩËÑË÷£¬×Ô¶¯ÔÚÈÕÖ¾·þÎñÉÏ´´½¨²¢ÅäÖÃlogstore¡£


ÎÒÃÇÔÚÈÝÆ÷·þÎñÉÏÃæ×öµ½Á˶ÔÓÚÎļþÈÕÖ¾µÄÊÕ¼¯£¬²¢ÇÒ·½Ê½Ò²¶¼·Ç³£¼òµ¥£¬¶¼ÊÇÄã¿ÉÒÔÉèÁ¢Ò»¸ölabel£¬Í¨¹ýlabel·½Ê½¿ÉÒÔÊÕ¼¯µ½ËùÓеÄÈÕÖ¾¡£
ÈÕÖ¾´æ´¢·½°¸

×îºó¼òµ¥µÄ½éÉܼ¸ÖÖÈÕÖ¾´æ´¢·½°¸µÄ¶Ô±È£¬Í¼ÎªÏÖÔڱȽÏÁ÷ÐеÄÈÕÖ¾·½°¸Elasticsearch£¬Ëü±¾Éí²¢²»Ìṩ½çÃæ£¬ELKÖеÄE£¬»ùÓÚLucene£¬Ö÷ÒªÓÃÓÚÈÕÖ¾Ë÷Òý¡¢´æ´¢ºÍ·ÖÎö£»Í¨³£ÅäºÏKibanaչʾÈÕÖ¾£¬Ãâ·Ñ£¬Ö§³Ö¼¯ÈºÄ£Ê½£¬¿ÉÒÔ´îÒ»¸öDockerÓõÄÉú²ú»·¾³¿ÉÓõÄϵͳ¡£

½ÓÏÂÀ´ÊÇgraylog2£¬Ä¿Ç°²»ËãºÜÁ÷ÐУ¬µ«ÊÇÒ²Êǹ¦ÄܺÜÇ¿´óµÄϵͳ£¬Ëü²»ÏñElasticsearch»¹ÐèÒªÅäºÏÆäËüȥʹÓã¬Ëü×ÔÉíÓµÓÐÈÕÖ¾´æ´¢¡¢Ë÷ÒýÒÔ¼°Õ¹Ê¾ËùÓеŦÄÜ£¬¶¼ÔÚÒ»¸öϵͳÀïÃæÊµÏÖ£¬Ëü¿ÉÒÔÉèÖÃһЩ±¨¾¯¹æÔò£¬µ±ÈÕÖ¾ÀïÃæ³öÏÖһЩ¹Ø¼ü×ÖµÄʱºò×Ô¶¯±¨¾¯£¬Õâ¸ö¹¦ÄÜ»¹ÊǷdz£ÓÐÓõģ¬Ãâ·Ñ¡¢Ö§³Ö¼¯ÈºÄ£Ê½£¬¿ÉÒÔÔÚÉú²ú»·¾³ÀïÃæ´îÒ»¸öDockerÓõÄÉú²úϵͳ¡£

°¢ÀïÔÆµÄÈÕÖ¾·þÎñSLSÌØµãÈçÏ£º
°¢ÀïÔÆÍйܣ¬²»ÐèÒª×Ô¼ºÎ¬»¤
Ö§³Ö¶àÓû§ºÍȨÏÞ¹ÜÀí
¿ÉÒÔ¶Ô½ÓODPSµÈϵͳ
Ö§³Å1W̨ÎïÀí»ú£¬Ò»Ìì12TBÈÕÖ¾Êý¾Ý£¬IOPS>= 2W£¬²É¼¯Æ½¾ù<1
S;µ¥»ú£ºÔÚ1¸öCPU coreÇé¿öÏ£¬¿ÉÒÔʵʱ²É¼¯15-18MB/S ÈÕÖ¾Á¿£»Èç¹ûÅäÖÃÖÐÔö¼Ó¿ÉÒÔÓÃÏß³ÌÊýÄ¿£¬¿ÉˮƽÀ©Õ¹
ÓÃÕýÈ·µÄ·½Ê½Ð´ÈÕÖ¾
ÄÇô£¬ÎÒÃÇÔõôÑùÈ¥ÊÕ¼¯ÈÕÖ¾¡¢´æ´¢ÈÕÖ¾£¬ÓÃʲôÑùµÄϵͳ£¬ÈÕÖ¾µÄÔ´Í·ºÍдÈÕÖ¾ÎÒÃÇÓÖ¸ÃÔõôÀ´×ö£¬ÓÐÕâÑù¼¸¸ö½¨Ò飺
1. Ñ¡ÔñºÏÊʵÄÈÕÖ¾¿ò¼Ü£¬²»ÒªÖ±½Óprint£»
2. ΪÿһÌõÈÕ־ѡÔñÕýÈ·µÄlevel£¬¸ÃdebugµÄ²»ÒªÓÃinfo£»
3. ¸½¼Ó¸ü¶àµÄÉÏÏÂÎÄÐÅÏ¢£»
4. ʹÓÃjson¡¢csvµÈÈÕÖ¾¸ñʽ£¬·½±ã¹¤¾ß½âÎö£»
5. ¾¡Á¿²»ÒªÊ¹ÓöàÐÐÈÕÖ¾(Java Exception Stack)¡£
|