¸ÅÊö
´óÊý¾Ý´¦Àí¼¼ÊõÔ½À´Ô½»ð,ÔÆ¼ÆËãÆ½Ì¨Ò²Èç»ðÈçݱ,¶þÕßÓÌÈç IT ÁгµµÄÁ½¸ö³µÂÖ,ÏศÏà³É,¸ßËÙ·¢Õ¹¡£Èç¹ûÎÒÃǽ«´óÊý¾Ý´¦ÀíÆ½Ì¨±È×÷Ò»¸ö¿ÉÄÜ»áµÃ²¡µÄÈ˵ϰ£¬ÄÇôÈÕÖ¾·ÖÎöϵͳ¾ÍÊǸø²¡ÈËÕï¶ÏµÄÒ½Éú¡£ÓÉÓÚ¼¯ÈºÉõ´ó£¬¼¸°Ų̀»úÆ÷¶¼ÊÇÆð²½¼Û£¬ÉõÖÁ¿ÉÄÜ»áÓÐÉÏǧ̨¡¢ÉÏÍǫ̀»úÆ÷ͬʱÐ×÷ÔËÐС£Èç´Ë´óµÄ¼¯Èº£¬²»¿ÉÄÜÒ»µãÎÊÌâ¶¼²»³ö,¾ÍÏñÒ»¸öÈ˲»¿ÉÄܲ»µÃ²¡Ò»Ñù¡£Èç¹û³öÏÖÎÊÌ⣬ÈçºÎ¿ìËÙµÄÕÒµ½ÎÊÌâµÄ¸ùÔ´²¢¶ÔÖ¢ÏÂÒ©£¬ÔòÏÔµÃÖÁ¹ØÖØÒª¡£ÔÚÕâÑùµÄ±³¾°Ï£¬ÈÕÖ¾·ÖÎöºÍ¼à¿ØÏµÍ³Ò²ÓÌÈçÓêºó´ºËñ£¬µÃµ½ÁË¿ÕǰµÄ·¢Õ¹¡£
Ŀǰ£¬ÈÕÖ¾·ÖÎö¹¤¾ß¶à´ïÊýÊ®ÖÖ£¬ÆäÖÐÓ¦Óý϶àµÄÓÐ Splunk¡¢ELK¡¢AWStats¡¢Graphite¡¢LogAnalyzer¡¢Rsyslog¡¢Log
watch¡¢Open Web Analytics µÈµÈ£¬ÆäÖУ¬ÁìÍ·ÑòµÄµ±Êô Splunk ºÍ ELK£¬ÆäÖÐ
Splunk ÊôÓÚÉÌÒµÔËÓª²úÆ·£¬¶ø ELK ÊôÓÚ¿ªÔ´²úÆ·¡£±¾ÎÄ×ÅÖØÌÖÂÛ ELK ·½°¸£¬²¢Ïêϸ²ûÊö ELK
ÈçºÎÓ¦Óõ½ Spark ¼¯ÈºÖС£ÊÂʵÉÏ£¬ELK ¹Ù·½ÒѳÆÖ®Îª Elastic,¿¼ÂÇÐÐÒµÄÚ¶Ô´ËϵͳÒѾÊìʶ£¬¹Ê¶ø¼ÌÐøÑÓÓÃ
ELK À´´úÌæ¡£
ELK µÄÓ¦ÓôóÖ¿ÉÒÔ·ÖΪÁ½´óÀ࣬һÀàÊÇϵͳºÍÓ¦ÓÃµÄ¼à¿Ø,¿ÉÒÔͨ¹ý Kibana ×ö³ö²»Í¬µÄ Dashboard
À´ÊµÊ±µÄ¼à¿Ø¼¯ÈºµÄ×´¿ö£¬±ÈÈç CPU ÀûÓÃÂÊ£¬ÄÚ´æµÄʹÓÃÇé¿ö£¬¼¯ÈºµÄ Job/Task Íê³ÉÇé¿öµÈ£»ÁíÒ»´óÓô¦ÔÚÓÚ¿ìËٵĹÊÕÏÅŲé,ÔËÐÐÖеļ¯ÈºÔÚʱʱ¿Ì¿ÌµÄ´òÓ¡ÈÕÖ¾£¬ÎÒÃÇ¿ÉÒÔͨ¹ý
ELK ϵͳÀ´ÊÕ¼¯¡¢´æ´¢ºÍ¼ìË÷ÈÕÖ¾£¬È»ºóͨ¹ý¹Ø¼ü×Ö»òÕßÈÕÖ¾ÀàÐ͵ȲéѯÌõ¼þÀ´¿ìËٵIJ鿴Óû§¸ÐÐËȤµÄ Log,ÒÔ±ã¿ìËÙµÄÕÒ³öÎÊÌâµÄ¸ùÔ´¡£
Ò»¡¢ELK ϵͳ¼Ü¹¹
ÄÇôʲôÊÇ ELK ÄØ£¿ELK ÊÇ Elasticsearch, Logstash, Kibana µÄ¼ò³Æ£¬ÊÇ×î³õµÄ
ELK µÄÈý´óºËÐÄÌ×¼þ£¬Ëæ×ŸÃϵͳµÄ·¢Õ¹£¬¶à³öÁËÁíÍâÒ»¸ö×é¼þ£¬ÎÒÃdzÆÖ®Îª Shipper ¶Ë£¬×¨ÃÅÓÃÀ´ÊÕ¼¯ÖÕ¶Ë£¨¼¯ÈºÖеĻúÆ÷£©ÉÏÈÕÖ¾ºÍÊý¾Ý¡£Æäʵ
Logstash ±¾Éí¾ÍÓÐÊÕ¼¯¹¦ÄÜ£¬ÄÇôΪʲô»¹ÐèÒª·¢Õ¹´¦ÁíÍâÒ»¸ö Shipper ¶ËÄØ£¿Ö÷ÒªÊÇÒòΪ Logstash
²¢·ÇÇáÁ¿¼¶µÄ¹¤¾ß£¬ÔÚÔËÐйý³ÌÖУ¬Õ¼ÓÃÁ˽϶àµÄ×ÊÔ´£¨±ÈÈç CPU ºÍÄÚ´æµÈ£©£¬¶ÔÓÚ¼¯ÈºµÄÕûÌåÐÔÄÜÀ´ËµÎÞÒÉÊÇÒ»ÖÖËðºÄ¡£ËùÒÔ£¬Ò»°ãÔÚÖÕ¶ËÉÏÖ»ÔËÐÐÇáÁ¿¼¶µÄ
Shipper À´ÊÕ¼¯ÈÕÖ¾¡£Æð³õµÄ shipper Ϊ Logstash-forwarder,ºóÀ´·¢Õ¹µ½ÁË
Beats¡£ÏÂÃæ¶ÔÕâËÄÖÖ¹¤¾ßÖðÒ»×ö¼òµ¥½éÉÜ¡£
Logstash ÊÇÒ»¸öÓÃÀ´ËѼ¯£¬·ÖÎö£¬¹ýÂËÈÕÖ¾µÄ¹¤¾ß¡£ËüÖ§³Ö¼¸ºõÈκÎÀàÐ͵ÄÈÕÖ¾£¬°üÀ¨ÏµÍ³ÈÕÖ¾¡¢´íÎóÈÕÖ¾ºÍ×Ô¶¨ÒåÓ¦ÓóÌÐòÈÕÖ¾¡£Ëü¿ÉÒÔ´ÓÐí¶àÀ´Ô´½ÓÊÕÈÕÖ¾£¬ÕâЩÀ´Ô´°üÀ¨
syslog¡¢ÏûÏ¢´«µÝ£¨ÀýÈç rabbitmq£©ºÍ jmx£¬ËüÄܹ»ÒÔ¶àÖÖ·½Ê½Êä³öÊý¾Ý£¬°üÀ¨µç×ÓÓʼþ¡¢websockets
ºÍ Elasticsearch¡£
Elasticsearch ÊÇʵʱȫÎÄËÑË÷ºÍ·ÖÎöÒýÇæ£¬ÌṩËѼ¯£¬·ÖÎö£¬´æ´¢Êý¾ÝÈý´ó¹¦ÄÜ£»ÊÇÒ»Ì׿ª·Å REST
ºÍ JAVA API µÈ½á¹¹Ìṩ¸ßЧËÑË÷¹¦ÄÜ£¬¿ÉÀ©Õ¹µÄ·Ö²¼Ê½ÏµÍ³¡£Ëü¹¹½¨ÓÚ Apache Lucene
ËÑË÷ÒýÇæ¿âÖ®ÉÏ¡£
Kibana ÊÇÒ»¸ö»ùÓÚ Web µÄͼÐνçÃæ£¬ÓÃÓÚËÑË÷¡¢·ÖÎöºÍ¿ÉÊÓ»¯´æ´¢ÔÚ Elasticsearch
Ö¸±êÖеÄÈÕÖ¾Êý¾Ý¡£ËüÀûÓà Elasticsearch µÄ REST ½Ó¿ÚÀ´¼ìË÷Êý¾Ý£¬²»½öÔÊÐíÓû§´´½¨ËûÃÇ×Ô¼ºµÄÊý¾ÝµÄ¶¨ÖÆÒDZí°åÊÓͼ£¬»¹ÔÊÐíËûÃÇÒÔÌØÊâµÄ·½Ê½²éѯºÍ¹ýÂËÊý¾Ý¡£
Beats ¸ºÔðÔÚÖÕ¶ËÊÕ¼¯ÈÕÖ¾ºÍÊý¾Ý£¬Ä¿Ç° Beats Óкü¸ÖÖ£¬°üÀ¨£ºFilebeat, Packetbeat,
Metricbeat, Winlogbeat, Topbeat µÈ£¬Óû§»¹¿ÉÒÔ½èÖú Libbeat À´¿ª·¢×Ô¼ºµÄ
Beat¡£Filebeat ¹¦ÄÜÏ൱ÓÚ Logstash-forwarder£¬ÓÃÔÚÊÕ¼¯ÎļþÈÕÖ¾¡£ Packetbeat
ÓÃÀ´ÊÕ¾ÝÍøÂç·½ÃæµÄÊý¾Ý¡£Topbeat ÒѾºÏ²¢µ½ Metricbeat ÀïÃæ£¬ÓÃÀ´ÊÕ¼¯ÏµÍ³»òÕßij¸öÖ¸¶¨µÄ·þÎñËùÕ¼ÓõÄ
Metrics, Winlogbeat ÓÃÀ´ÊÕ¼¯ Windows ϵͳÉϵÄÈÕÖ¾ÐÅÏ¢¡£Ä¿Ç°£¬ÒѾÓÐÊýÊ®ÖÖ
Community Beats£¬¿É¹©ÏÂÔØÊ¹Óá£
ÔÚ²»Í¬µÄÓ¦Óó¡¾°£¬ELK ϵͳµÄ¹¹¼ÜÂÔÓв»Í¬£¬±ÈÈç˵Óеij¡¾°ÔËÓõ½ÁË Redis »òÕß Kafka À´×öÏûÏ¢¶ÓÁУ¬ÒÔ¼õÇá
Logstash µÄѹÁ¦£¬ÒÔ·ÀÊý¾Ý¶ªÊ§¡£´ËÎÄÖ»ÌÖÂÛ×îΪ¾µäµÄ¹¹¼Ü¡£Èçͼ 1 Ëùʾ¡£

ͼ 1 ELK µÄ¼Ü¹¹
Æä´óÖ¹¤×÷Á÷³ÌΪ£ºBeats ´ÓÖÕ¶Ë»úÆ÷ÊÕ¼¯µ½¸÷ÖÖÊý¾ÝÖ®ºó£¬·¢Ë͸ø Logstash ½øÐнâÎöºÍ¸ñʽ»¯´¦ÀíÖ®ºó£¬ÔÙ²åÈëµ½
Elasticsearch Öд洢£¬È»ºóͨ¹ý Kibana չʾ¸øÓû§¡£´ÓÉÏͼÖУ¬ÎÒÃÇ¿ÉÒÔ¿´³ö£¬Beats
Ò²¿ÉÒÔÖ±½Ó½«Êý¾Ý·¢Ë͸ø Elasticsearch£¬Ê¡ÂÔµô Logstash »·½Ú£¨¼ÙÈçËùÊÕ¼¯µÄÊý¾Ý²»ÐèÒª½øÒ»²½µÄ½âÎö´¦ÀíµÄ»°£©¡£µ±È»£¬ÔÚÒ»°ãÇé¿öÏ£¬¶¼ÐèÒªÓÃ
Logstash ¶ÔÊý¾Ý½øÐнâÎö¼Ó¹¤£¬·½±ãÓÚ Kibana ͼÐλ¯µÄչʾ¡£
¶þ¡¢ELK ÔÚ Spark ¼¯ÈºÖи߿ÉÓÃÐÔ¹¹¼Ü
ΪÁ˱ãÓÚ·ÖÎö£¬ÎÒÃǽ« Spark ¼¯Èº·ÖΪ¹ÜÀí½Úµã£¨Master Node£©ºÍ¼ÆËã½Úµã£¨Slave Node£©¡£¹ÜÀí½Úµã£¨Master
Node£©¿ÉÄÜÓжà¸ö½Úµã£¬·Ö±ð°²×° Beat,Logstash, Elasticsearch ºÍ Kibana¡£¼ÆËã½ÚµãÉÏ£¬Ö»ÐèÒª°²×°
Beats À´ÊÕ¼¯ÈÕÖ¾¼´¿É¡£ÏÂͼÊÇ ELK ÔÚ Spark ¼¯ÈºÖÐ HA ¹¹¼Ü¡£

ͼ 2 ELK ÔÚ Spark ¼¯ÈºÖÐ
HA ¹¹¼Ü
ÔÚ´óÊý¾Ý´¦Àí²¿Êð¹ý³ÌÖУ¬HA ÊǺÜÖØÒªµÄÒ»¸ö»·½Ú¡£¾Í Elasticsearch ¶øÑÔ£¬Æä±¾Éí¾Í¾ß±¸
HA ÄÜÁ¦¡£´óÌåÉϽ²£¬HA ¿ÉÒÔ·ÖΪÁ½¸ö£¬Ò»ÖÖÊÇÖ÷±¸Ä£Ê½£¨Active-standby£©Ä£Ê½£¬ÁíÍâÒ»ÖÖÊǸºÔؾùºâ£¨Load
Balance£©Ä£Ê½¡£¶þÕßµÄÇø±ðÔÚÔÚÓÚ£¬Active-standby ģʽÊÇÖ÷½Úµã£¨Ö÷Òª¸É»îµÄ£©¿åÁË£¬±¸Óýڵã²ÅÆôÓ㬼ÌÐø½Ó×ÅÖ÷½ÚµãµÄ½ø³ÌÈ¥¸É»î£»Load
Balance ģʽÊÇ£¬´ó¼ÒÒ»ÆðÉÏ£¬Ë¿ÕÏÐÁË»òÕß˵Ä×ÊÔ´¶àÁË£¬¾Í°Ñ»î·Ö¸øË¸É¡£Èç¹û°ÑÕâ¶þÕß½áºÏÆðÀ´£¬´ïµ½Ë«èµºÏÒ»µÄЧ¹û¡£×÷Ϊ
ELK µÄ¼¯Èº¼à¿ØÏµÍ³£¬×îºÃµÄ·½Ê½ÊDzÉÓöþÕߵĽáºÏ¡£ÆäÖÐ Elasticsearch ×îºÃÊDzÉÓà Load
Balance ģʽ£¬ÔÚ Master node ÉϽøÐиºÔؾùºâ¡£Logstash µ±È»Ò²¿ÉÒÔ²ÉÓøºÔؾùºâµÄ·½Ê½£¬µ«ÊÇÓÉÓÚǰÎÄÖн²¹ý£¬Logstash
ÔËÐÐÆðÀ´ºó£¬Õ¼ÓÃ×ÊÔ´£¨CPU ÀûÓÃÂʺÍÄڴ棩±È½ÏÀ÷º¦£¬ËùÒÔ£¬±ÊÕß½¨Ò飬Èç¹û Master ½Úµã±È½Ï·±Ã¦µÄ»°£¬²»½¨ÒéÔÚËùÓÐ
Master ÉÏÆô¶¯ Logstash,µ±È»ÔÚ×ÊÔ´ÔÊÐíµÄÇé¿öÏÂ,Æô¶¯ Logstash Ò²¿ÉÒÔʹµÃÕû¸ö
ELK ϵͳµÄ´¦ÀíËٶȱä¿ì¡£Kibana µ±È»ÎÞÐëÈ«²¿Æô¶¯ÁË£¬²ÉÓà Active-standby ģʽ£¬Ö»ÐèÔÚÒ»¸ö¹ÜÀí½ÚµãÉÏÆô¶¯¼´¿É¡£Beats
ÔÚËùÓнڵãÉ϶¼Æô¶¯£¬ÒòΪҪÊÕ¼¯ËùÓнڵãÉϵÄÈÕÖ¾£¬µ«ÊÇÐèҪעÒâµÄÊÇ£¬ÔÚ Spark ¼¯ÈºÖУ¬Ò»°ã²ÉÓ÷ֲ¼Ê½ÎļþϵͳµÄ·½Ê½À´´æ´¢ÈÕÖ¾ºÍÊý¾ÝµÄ£¬¹Ê¶øÒª×¢Òâ±ÜÃâÈÕÖ¾ÖØ¸´ÐÔµÄÎÊÌâ¡£
Èý¡¢ELK ¼à¿Ø Spark ¼¯ÈºµÄÐÔÄÜ
1¡¢CPU ÀûÓÃÂÊµÄ¼à¿Ø
CPU ÊÇϵͳÖеÄÊ×Òª×ÊÔ´£¬CPU ÀûÓÃÂÊµÄ¼à¿ØµÄÖÁ¹ØÖØÒª¡£CPU ÀûÓÃÂÊÒ»°ã·ÖΪÁ½ÖÖ£¬Óû§Ì¬ CPU
ÀûÓÃÂÊ£¨User CPU Usage£©ºÍϵͳ̬ CPU ÀûÓÃÂÊ(System CPU Usage)¡£ÆäÖÐÓû§Ì¬
CPU ÀûÓÃÂÊÊÇÖ¸Ö´ÐÐÓ¦ÓóÌÐò´úÂëµÄʱ¼äÕ¼×Ü CPU ʱ¼äµÄ°Ù·Ö±È£¬ÏµÍ³Ì¬ CPU ÀûÓÃÂÊÊÇÖ¸Ó¦ÓÃÖ´ÐвÙ×÷ϵͳµ÷ÓõÄʱ¼äÕ¼×Ü
CPU ʱ¼äµÄ°Ù·Ö±È¡£
ÀûÓà ELK ¼à¿Ø Spark ¼¯ÈºÖÐµÄ CPU ÀûÓÃÂʵĴóÖÂÁ÷³ÌΪ£ºÓà TopBeat À´ÊÕ¼¯¸÷¸ö½ÚµãµÄÄÚ´æ×ÊÔ´£¬È»ºó´æ´¢µ½
Elasticsearch µ±ÖУ¬ÓÉ Kibana չʾ³öÀ´¡£ÏÂͼΪÀý£¬Õ¹Ê¾ÁË Spark ¼¯ÈºÖÐµÄ CPU
¼à¿Ø£¬Í¬Ê±Ò²¼à¿ØÁËϵͳ¸ºÔØÇé¿ö£¨Jin Chi He2016-11-04T09:36:00.18JCH
System Load£©¡£Èç¹û Spark ¼¯ÈºÖеĽڵã¿ÉÄܽ϶࣬¿ÉÒÔʹÓà Kibana µÄ¹¦ÄÜ£¬À´Õ¹Ê¾³ö
CPU ÀûÓÃÂÊ×î¸ßµÄ¼¸¸ö½Úµã£¬ÒÔ±ãÁ˽âÄÄЩ½ÚµãµÄ¸ºÔؽÏÖØ¡£

ͼ 3 ELK ¶Ô Spark ¼¯Èº CPU
µÄ¼à¿Ø
2¡¢ÄÚ´æÀûÓÃÂÊµÄ¼à¿Ø
ÎÒÃÇÖªµÀ£¬Spark ÊÇÒ»ÖÖÄÚ´æÀûÓÃÂʷdz£¸ßµÄ¼¼Êõ£¬»»¾ä»°Ëµ£¬Spark ¼¯Èº¶ÔÄÚ´æµÄÒªÇó½Ï¸ß¡£Spark
¼¯ÈºµÄ¹ÜÀíÕßÐèҪʵʱµÄÕÆÎÕÄÚ´æµÄʹÓÃÇé¿ö¡£ÊÕ¼¯·½Ê½ºÍ CPU ÀûÓÃÂʵķ½Ê½ÀàËÆ£¬Óà Topbeat »òÕß
Metricbeat À´ÊÕ¼¯¡£Ò»°ãÀ´Í³¼Æ×ܵÄÄڴ棬ÒѾʹÓúÍÄÚ´æºÍƽ¾ùµÄÄÚ´æÀûÓÃÂÊ¡£ÈçÏÂͼËùʾ¡£

ͼ 4 ELK ¶Ô Spark ¼¯ÈºÄÚ´æµÄ¼à¿Ø
3¡¢ÍøÂçµÄ¼à¿Ø
ÍøÂçÍÌÍÂÁ¿Ò²»áÓ°Ïì Spark ¼¯ÈºµÄÐÔÄÜ£¬ÍøÂç·½ÃæµÄ²ÎÊýÖ÷ÒªÓÐ Packetbeat À´ÊÕ¼¯£¬¿ÉÒÔͳ¼Æ
Spark ¼¯ÈºÖнڵãÍø¿¨µÄ·¢ËͺÍÊÕµ½µÄÍÌÍÂÁ¿£¬ÈçÏÂͼËùʾ¡£

ͼ 5 ELK ¶Ô Spark ¼¯ÈºÍøÂçµÄ¼à¿Ø
4¡¢´ÅÅÌµÄ¼à¿Ø
´ÅÅÌµÄ¼à¿ØÖ»Òª·ÖΪÁ½¸ö·½Ã棬һÊǵĴÅÅ̵ÄʹÓÃÂÊ£¬ÒÔ±ã¼à¿Ø¶ø·ÀÖ¹Òò´ÅÅ̲»¹»¶øÓ°ÏìÓ¦ÓõÄÔËÐС£¶þÊÇ´ÅÅÌµÄ IO
ÍÌÍÂÁ¿£¬ÍÌÍÂÁ¿ÊÇָÿÃë´«ÊäµÄ MB ×Ö½ÚÊýÀ´ºâÁ¿£¬³£ÓÃÓÚºâÁ¿ OLAP ÐÍÊý¾Ý¿éµÄ IO ÐÔÄÜ¡£ÈçÏÂͼËùʾ¡£

ͼ 6 ELK ¶Ô Spark ¼¯Èº´ÅÅÌµÄ¼à¿Ø
ÒÔÉÏ£¬ÎÒÃÇչʾÁË¶Ô Spark ¼¯ÈºÐÔÄÜµÄ¼à¿Ø¼¸¸ö¹Ø¼üµÄÖ¸±ê£¬Óû§»¹¿ÉÄÜÀûÓà Kibana µÄÁé»îÐÔÀ´¶¨Òå¸ÐÐËȤµÄ
Dashboard¡£Èç¹ûÏÖÓÐÔÚ Beat ²»ÄÜÂú×ãÐèÇ󣬿ÉÒÔ¸ü¾ß libbeat À´¿ª·¢×Ô¼ºµÄ Beat,»òÕßдһЩ¼òµ¥µÄ½Å±¾À´ÊÕ¼¯£¬Ð´ÈëÎļþ£¬È»ºóÓÉ
FileBeat ¶ÁÈ¡£¬·¢Ë͸ø Logstash ½øÐиñʽµÄ´¦Àí£¬»òÕßÓÉ Logstah Ö±½Ó¶ÁÈ¡¡£
ËÄ¡¢ELK ¼à¿Ø Spark ¼¯ÈºµÄ×÷Òµ
1¡¢¶Ô½ÚµãµÄ¼à¿Ø
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Spark ¼¯Èº¿ÉÄܰüÀ¨ÉϰŲ̀£¬ÉõÖÁ¸ü¶àµÄ½Úµã£¬×÷Ϊ¹ÜÀíÔ±£¬Ê×ÏÈÐèÒªÖ»ÒªµÄÊǽڵãµÄ·ÖÅäÇé¿öºÍ½ÚµãµÄ״̬¡£ÈçÏÂͼËùʾ£¬´ËÊý¾ÝÒ»°ãÀ´×ÔÓÚ×ÊÔ´µ÷¶Èƽ̨£¬Spark
×ÊÔ´µ÷¶È´óÌåÉÏ¿ÉÒÔ·ÖΪÁ½´óÀ࣬һÀàµÄ×Ô´øµÄ×ÊÔ´µ÷¶ÈÄ£¿é£¬ÁíÍâÒ»ÀàÊÇÍⲿµÄ×ÊÔ´µ÷¶È¿ò¼Ü£¬±ÈÈç Mesos¡¢YARN
ºÍ IBM Platform EGO µÈ¡£¹¹½¨ Spark Application µÄÔËÐл·¾³£¬´´½¨ SparkContext
ºó£¬ SparkContext Ïò×ÊÔ´¹ÜÀíÆ÷×¢²á²¢ÉêÇë×ÊÔ´¡£ÈçÏÂͼÖÐÁоٳöÁË Spark ¼¯ÈºÖУ¬×ܵĽڵãÊýºÍδ·ÖÅäµÄ½ÚµãÊý£¬ÒѾʧ°ÜµÄ½ÚµãÊý¡£´ËÊý¾ÝÊÇ
PERF Loader ´Ó IBM Platform EGO Ä£¿éÖмÓÔØµ½ Elasticsearch
Êý¾Ý¿âÖУ¬È»ºóÔÚ Kibana ¼ìË÷չʾ¡£

ͼ 7 ELK ¶Ô Spark ¼¯Èº½ÚµãµÄ¼à¿Ø
2¡¢¶Ô Task ÔËÐÐÇé¿öµÄ¼à¿Ø
ÔÚ Spark ¼¯ÈºÖУ¬×ÊÔ´¹ÜÀíÆ÷¸ù¾ÝÔ¤ÏÈÉ趨µÄËã·¨£¬ÔÚ×ÊÔ´³ØÀïÃæ·ÖÅäºÏÊ浀 Executor ÔËÐÐ×ÊÔ´£¬ÔÚÔËÐйý³ÌÖУ¬Executor
ÔËÐÐÇé¿ö½«Ëæ×ÅÐÄÌø·¢Ë͵½×ÊÔ´¹ÜÀíÆ÷ÉÏ¡£SparkContext ¹¹½¨ DAG ͼ£¬×÷Òµµ÷¶ÈÄ£¿é DAGScheduler
½« DAG ͼ·Ö½â³É Stage¡£Executor Ïò SparkContext ÉêÇë Task£¬TaskScheduler
ά»¤×ÅËùÓÐ TaskSet£¬µ± Driver ÊÕµ½ Executor µÄÐÄÌøµÄʱºò£¬Task Scheduler
»á¸ù¾ÝÆä×ÊÔ´Ê£ÓàÇé¿ö·ÖÅäÏàÓ¦µÄ Task µ½ Executor ÔËÐУ¬Í¬Ê± SparkContext ½«Ó¦ÓóÌÐò´úÂë·¢·Å¸ø
worker¡£Ëæºó Task ±ã¿ªÊ¼ worker ÉÏ¿ªÊ¼ÔËÐС£ÔÚ´ËÆÚ¼ä£¬TaskScheduler »¹Î¬»¤×ÅËùÓÐ
Task µÄÔËÐÐ״̬£¬ÖØÊÔʧ°ÜµÄ Task¡£µ± Task ÔËÐнáÊø£¬·´À¡¸ø SparkContext£¬²¢ÊÍ·Å×ÊÔ´¡£
ÔÚ Application Ìá½»Ö®ºó£¬¼à¿Ø Task ÔËÐÐ״̬£¬¿ÉÒÔµÃÖª Application µÄÍê³ÉÇé¿ö£¬ÏÂͼÖУ¬Õ¹Ê¾ÁËÕýÔÚÔËÐеÄ
Task ÊýÁ¿ºÍÒѾÍê³ÉµÄ Task ÊýÁ¿£¬ÒÔ¼°¸÷¸ö½ÚµãÍê³É Task µÄÊýÁ¿¡£´ËÊý¾Ý»ñÈ¡µÄ·½Ê½±È½ÏÁé»î£¬¿ÉÒÔͨ¹ý
RESTful API Ö±½Ó»ñÈ¡£¬»òÕßÅäÖà Spark ¼¯ÈºÖÐµÄ log4j£¬½«ÕâЩÐÅÏ¢´òÓ¡µ½ÈÕÖ¾ÖУ¬ÓÉ
Logstash À´ÊÕ¼¯¡£

ͼ 8 ELK ¶Ô Task µÄ¼à¿Ø
3¡¢¶Ô×ÊÔ´·ÖÅäÇé¿öµÄ¼à¿Ø
ÔÚ EGO Cluster ģʽÏ£¬Í¨¹ý sbin/spark-submit À´Ìá½» Application£¨Ò»°ãΪ.jar
»òÕß.py Îļþ£©£¬EGO ·ÖÅäÒ»¸ö Container À´Æô¶¯ Driver¡£Driver Ò»µ©Æô¶¯ºó£¬½«ÔÚ
Cluster ÖÐµÄ node ÉÏÆô¶¯ Executor µÄ½ø³Ì£¬²¢ÔÚ´Ë Executor ÉÏÖ´ÐÐ task¡£¸÷ÖÖģʽÏ£¬×ÊÔ´µ÷¶ÈÆ÷µÄµ÷¶Èµ¥Î»ÊDz»Í¬µÄ£¬Í¼
9 ÒÔ IBM Platform EGO ΪÀý£¬Õ¹Ê¾×ÊÔ´µÄ·ÖÅäºÍʹÓÃÇé¿ö¡£

ͼ 9 ELK ¶Ô×ÊÔ´·ÖÅäÇé¿öµÄ¼à¿Ø
4¡¢¶Ô´íÎóºÍ¸æ¾¯µÄ¼à¿Ø
ÔÚ¶ÔÈÕÖ¾µÄÊÕ¼¯¹ý³ÌÖУ¬¸ù¾Ý LOG LEVEL µÄ²»Í¬£¬¿ÉÒÔ½« ERROR »òÕß WARN µÄÈÕÖ¾·ÖÀë³öÀ´£¬Ö±¹ÛµÄչʾµ½
Dashboard ÖУ¬Èçͼ 10 Ëùʾ¡£

ͼ 10 ELK ¶Ô´íÎóºÍ¸æ¾¯µÄ¼à¿Ø
Èç¹ûÏë¸ü½øÒ»²½µÄÁ˽â´íÎóÈÕÖ¾»òÕ߸澯ÐÅÏ¢£¬¿ÉÒÔÔÚ Kibana µÄ Discover tab Ï£¬ÊäÈëÏàÓ¦µÄÅжÏÌõ¼þ£¬¼´¿É¼ìË÷³öÓû§¸ÐÐËȤµÄÈÕÖ¾¡£

ͼ 11 Kibana ¶ÔÈÕÖ¾µÄ¼ìË÷
Îå¡¢½áÊøÓï
ͨ³££¬ÈÕÖ¾±»·ÖÉ¢µÄ´¢´æÔÚ²»Í¬µÄÉ豸ÉÏ¡£Èç¹û¹ÜÀí´ó¹æÄ£µÄ¼¯Èº£¬»¹Ê¹ÓÃÒÀ´ÎµÇ¼ÿ̨»úÆ÷µÄ´«Í³·½·¨²éÔÄÈÕÖ¾£¬ÕâÑù»áʹµÃЧÂʼ«ÆäµÍÏ£¬¶øÇÒ¹¤×÷·±Ëö£¬¼¯Öл¯µÄÈÕÖ¾¹ÜÀí¾ÍÏÔµÃÔ½À´Ô½ÖØÒª£¬ELK
ÎÞÒÉÊÇĿǰ×î»ðµÄÈÕÖ¾ÊÕ¼¯¡¢´¦Àí¡¢´æ´¢¡¢Web Õ¹ÏÖΪһÉíµÄ¼¼Êõ£¬¸üÓÐÀûÕߣ¬ELK ÊÇ¿ªÔ´µÄ¡£±¾Õ²ûÊöÁË
ELK µÄ²¿ÊðÐÎʽºÍʹÓð¸Àý¡£ÊÂʵÉÏ£¬ELK ÒѾӦÓõ½Á˸÷ÖÖ³¡ºÏ£¬°üÀ¨ Hadoop ¼¯ÈºµÄ¼à¿Ø£¬Spark
¼¯ÈºµÄ¼à¿ØµÈ¡£ÔÚÆ½Ê±µÄʹÓÃÖУ¬Èç¹ûÒòΪijÖÖȱÏݶøÎÞ·¨´ïµ½Óû§µÄÐèÇ󣬿ÉÒÔ¸ù¾Ý ELK ¹Ù·½µÄ·½·¨£¬À´¿ª·¢×Ô¼ºµÄ²å¼þ¡£
±¾ÎÄËùչʾµÄ¹¹¼ÜºÍչʾͼΪ IBM Platform ÍŶÓÔÚʹÓà ELK ϵͳ¹ý³ÌÖеÄʵս°¸ÀýºÍ×ܽᣬͬʱ
IBM Platform ÍŶÓÀ´ ELK ϵͳ×öÁ˺ܶà¸ÄÉÆºÍÌáÉý£¬±ÈÈçºÍ IBM Platform EGO
¼¯³É£¬À©Õ¹ Beats µÄÊÕ¼¯·¶Î§£¬¼à¿Ø IBM Spectrum Storage ϵͳ£¬ELK µÄ×Ô¶¯²¿ÊðºÍ¹ÜÀíµÈ·½Ãæ¡£²¢ÇÒ£¬Ä¬ÈÏÇé¿öÏÂ
ELK ϵͳ²»Ö§³Ö IBM JAVA£¬Îª´Ë£¬IBM Platform ÍŶÓͨ¹ýÍêÉÆ ELK ϵͳ£¬À´ÍêÃÀµÄÖ§³ÖºÍ
IBM JAVA ºÍ Power ϵͳ£¬²¢½« ELK ²úÆ·Ó¦Óõ½ÁË IBM Spectrum Conductor
with Spark ºÍ IBM Spectrum Cluster Foundation µÈ²úÆ·ÖС£ |