Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ELK(ElasticSearch, Logstash, Kibana)´î½¨ÊµÊ±ÈÕÖ¾·ÖÎöƽ̨
 
×÷ÕߣºÕ²Áë  À´Ô´£º51cto²©¿Í ·¢²¼ÓÚ 2016-9-26
  3656  次浏览      28
 

ELKƽ̨½éÉÜ

ÔÚËÑË÷ELK×ÊÁϵÄʱºò£¬·¢ÏÖÕâÆªÎÄÕ±ȽϺã¬ÓÚÊÇÕª³­Ò»Ð¡¶Î£º

ÒÔÏÂÄÚÈÝÀ´×Ô£ºhttp://baidu.blog.51cto.com/71938/1676798

ÈÕÖ¾Ö÷Òª°üÀ¨ÏµÍ³ÈÕÖ¾¡¢Ó¦ÓóÌÐòÈÕÖ¾ºÍ°²È«ÈÕÖ¾¡£ÏµÍ³ÔËάºÍ¿ª·¢ÈËÔ±¿ÉÒÔͨ¹ýÈÕÖ¾Á˽â·þÎñÆ÷ÈíÓ²¼þÐÅÏ¢¡¢¼ì²éÅäÖùý³ÌÖеĴíÎó¼°´íÎó·¢ÉúµÄÔ­Òò¡£¾­³£·ÖÎöÈÕÖ¾¿ÉÒÔÁ˽â·þÎñÆ÷µÄ¸ººÉ£¬ÐÔÄܰ²È«ÐÔ£¬´Ó¶ø¼°Ê±²ÉÈ¡´ëÊ©¾ÀÕý´íÎó¡£

ͨ³££¬ÈÕÖ¾±»·ÖÉ¢µÄ´¢´æ²»Í¬µÄÉ豸ÉÏ¡£Èç¹ûÄã¹ÜÀíÊýÊ®ÉϰŲ̀·þÎñÆ÷£¬Ä㻹ÔÚʹÓÃÒÀ´ÎµÇ¼ÿ̨»úÆ÷µÄ´«Í³·½·¨²éÔÄÈÕÖ¾¡£ÕâÑùÊDz»ÊǸоõºÜ·±ËöºÍЧÂʵÍÏ¡£µ±ÎñÖ®¼±ÎÒÃÇʹÓü¯Öл¯µÄÈÕÖ¾¹ÜÀí£¬ÀýÈ磺¿ªÔ´µÄsyslog£¬½«ËùÓзþÎñÆ÷ÉϵÄÈÕÖ¾ÊÕ¼¯»ã×Ü¡£

¼¯Öл¯¹ÜÀíÈÕÖ¾ºó£¬ÈÕÖ¾µÄͳ¼ÆºÍ¼ìË÷ÓÖ³ÉΪһ¼þ±È½ÏÂé·³µÄÊÂÇ飬һ°ãÎÒÃÇʹÓÃgrep¡¢awkºÍwcµÈLinuxÃüÁîÄÜʵÏÖ¼ìË÷ºÍͳ¼Æ£¬µ«ÊǶÔÓÚÒªÇó¸ü¸ßµÄ²éѯ¡¢ÅÅÐòºÍͳ¼ÆµÈÒªÇóºÍÅÓ´óµÄ»úÆ÷ÊýÁ¿ÒÀȻʹÓÃÕâÑùµÄ·½·¨ÄÑÃâÓеãÁ¦²»´ÓÐÄ¡£

¿ªÔ´ÊµÊ±ÈÕÖ¾·ÖÎöELKƽ̨Äܹ»ÍêÃÀµÄ½â¾öÎÒÃÇÉÏÊöµÄÎÊÌ⣬ELKÓÉElasticSearch¡¢LogstashºÍKiabanaÈý¸ö¿ªÔ´¹¤¾ß×é³É¡£¹Ù·½ÍøÕ¾£ºhttps://www.elastic.co/products

ElasticsearchÊǸö¿ªÔ´·Ö²¼Ê½ËÑË÷ÒýÇæ£¬ËüµÄÌØµãÓУº·Ö²¼Ê½£¬ÁãÅäÖã¬×Ô¶¯·¢ÏÖ£¬Ë÷Òý×Ô¶¯·ÖƬ£¬Ë÷Òý¸±±¾»úÖÆ£¬restful·ç¸ñ½Ó¿Ú£¬¶àÊý¾ÝÔ´£¬×Ô¶¯ËÑË÷¸ºÔصȡ£

LogstashÊÇÒ»¸öÍêÈ«¿ªÔ´µÄ¹¤¾ß£¬Ëû¿ÉÒÔ¶ÔÄãµÄÈÕÖ¾½øÐÐÊÕ¼¯¡¢¹ýÂË£¬²¢½«Æä´æ´¢¹©ÒÔºóʹÓã¨È磬ËÑË÷£©¡£

Kibana Ò²ÊÇÒ»¸ö¿ªÔ´ºÍÃâ·ÑµÄ¹¤¾ß£¬ËüKibana¿ÉÒÔΪ Logstash ºÍ ElasticSearch ÌṩµÄÈÕÖ¾·ÖÎöÓÑºÃµÄ Web ½çÃæ£¬¿ÉÒÔ°ïÖúÄú»ã×Ü¡¢·ÖÎöºÍËÑË÷ÖØÒªÊý¾ÝÈÕÖ¾¡£

»­ÁËÒ»¸öELK¹¤×÷µÄÔ­Àíͼ£º

Èçͼ£ºLogstashÊÕ¼¯AppServer²úÉúµÄLog£¬²¢´æ·Åµ½ElasticSearch¼¯ÈºÖУ¬¶øKibanaÔò´ÓES¼¯ÈºÖвéѯÊý¾ÝÉú³Éͼ±í£¬ÔÙ·µ»Ø¸øBrowser¡£

ELKƽ̨´î½¨

ϵͳ»·¾³

System: Centos release 6.7 (Final)

ElasticSearch: 2.1.0

Logstash: 2.1.1

Kibana: 4.3.0

Java: openjdk version "1.8.0_65"

×¢£ºÓÉÓÚLogstashµÄÔËÐÐÒÀÀµÓÚJava»·¾³£¬ ¶øLogstash 1.5ÒÔÉϰ汾²»µÍÓÚjava 1.7£¬Òò´ËÍÆ¼öʹÓÃ×îа汾µÄJava¡£ÒòΪÎÒÃÇÖ»ÐèÒªJavaµÄÔËÐл·¾³£¬ËùÒÔ¿ÉÒÔÖ»°²×°JRE£¬²»¹ýÕâÀïÎÒÒÀȻʹÓÃJDK£¬Çë×ÔÐÐËÑË÷°²×°¡£

ELKÏÂÔØ£ºhttps://www.elastic.co/downloads/

ÅäÖÃElasticSearch£º

tar -zxvf elasticsearch-2.1.0.tar.gz
cd elasticsearch-2.1.0

°²×°Head²å¼þ£¨Optional£©£º

./bin/plugin install mobz/elasticsearch-head

È»ºó±à¼­ESµÄÅäÖÃÎļþ£º

vi config/elasticsearch.yml

ÐÞ¸ÄÒÔÏÂÅäÖÃÏ

cluster.name=es_cluster
node.name=node0
path.data=/tmp/elasticsearch/data
path.logs=/tmp/elasticsearch/logs
#µ±Ç°hostname»òIP£¬ÎÒÕâÀïÊÇcentos2
network.host=centos2
network.port=9200

ÆäËûµÄÑ¡Ïî±£³ÖĬÈÏ£¬È»ºóÆô¶¯ES£º

./bin/elasticsearch

¿ÉÒÔ¿´µ½£¬Ëü¸úÆäËûµÄ½ÚµãµÄ´«Êä¶Ë¿ÚΪ9300£¬½ÓÊÜHTTPÇëÇóµÄ¶Ë¿ÚΪ9200¡£

ʹÓÃctrl+CÍ£Ö¹¡£µ±È»£¬Ò²¿ÉÒÔʹÓúǫ́½ø³ÌµÄ·½Ê½Æô¶¯ES£º

./bin/elasticsearch &

È»ºó¿ÉÒÔ´ò¿ªÒ³Ãælocalhost:9200£¬½«»á¿´µ½ÒÔÏÂÄÚÈÝ£º

·µ»ØÕ¹Ê¾ÁËÅäÖõÄcluster_nameºÍname£¬ÒÔ¼°°²×°µÄESµÄ°æ±¾µÈÐÅÏ¢¡£

¸Õ¸Õ°²×°µÄhead²å¼þ£¬ËüÊÇÒ»¸öÓÃä¯ÀÀÆ÷¸úES¼¯Èº½»»¥µÄ²å¼þ£¬¿ÉÒԲ鿴¼¯Èº×´Ì¬¡¢¼¯ÈºµÄdocÄÚÈÝ¡¢Ö´ÐÐËÑË÷ºÍÆÕͨµÄRestÇëÇóµÈ¡£ÏÖÔÚÒ²¿ÉÒÔʹÓÃËü´ò¿ªlocalhost:9200/_plugin/headÒ³ÃæÀ´²é¿´ES¼¯Èº×´Ì¬£º

¿ÉÒÔ¿´µ½£¬ÏÖÔÚ£¬ES¼¯ÈºÖÐûÓÐindex£¬Ò²Ã»ÓÐtype£¬Òò´ËÕâÁ½ÌõÊǿյġ£

LogstashµÄ¹¦ÄÜÈçÏ£º

ÆäʵËü¾ÍÊÇÒ»¸öÊÕ¼¯Æ÷¶øÒÑ£¬ÎÒÃÇÐèҪΪËüÖ¸¶¨InputºÍOutput£¨µ±È»InputºÍOutput¿ÉÒÔΪ¶à¸ö£©¡£ÓÉÓÚÎÒÃÇÐèÒª°ÑJava´úÂëÖÐLog4jµÄÈÕÖ¾Êä³öµ½ElasticSearchÖУ¬Òò´ËÕâÀïµÄInput¾ÍÊÇLog4j£¬¶øOutput¾ÍÊÇElasticSearch¡£

ÅäÖÃLogstash£º

tar -zxvf logstash-2.1.1.tar.gz
cd logstash-2.1.1

±àдÅäÖÃÎļþ(Ãû×ÖºÍλÖÿÉÒÔËæÒ⣬ÕâÀïÎÒ·ÅÔÚconfigĿ¼Ï£¬È¡ÃûΪlog4j_to_es.conf)£º

mkdir config
vi config/log4j_to_es.conf

ÊäÈëÒÔÏÂÄÚÈÝ£º

# For detail structure of this file
# Set: https://www.elastic.co
/guide/en/logstash/current/configuration-file-structure.html
input {
# For detail config for log4j as input,
# See: https://www.elastic.co/
guide/en/logstash/current/plugins-inputs-log4j.html
log4j {
mode => "server"
host => "centos2"
port => 4567
}
}
filter {
#Only matched data are send to output.
}
output {
# For detail config for elasticsearch as output,
# See: https://www.elastic.co
/guide/en/logstash/current/plugins-outputs-elasticsearch.html
elasticsearch {
action => "index"
#The operation on ES
hosts => "centos2:9200" #ElasticSearch host, can be array.
index => "ec"
#The index to write data to, can be any string.
}
}

logstashÃüÁîÖ»ÓÐ2¸ö²ÎÊý£º

Òò´ËʹÓÃagentÀ´Æô¶¯Ëü£¨Ê¹ÓÃ-fÖ¸¶¨ÅäÖÃÎļþ£©£º

./bin/logstash agent -f config/log4j_to_es.conf

µ½ÕâÀÎÒÃÇÒѾ­¿ÉÒÔʹÓÃLogstashÀ´ÊÕ¼¯ÈÕÖ¾²¢±£´æµ½ESÖÐÁË£¬ÏÂÃæÀ´¿´¿´ÏîÄ¿´úÂë¡£

Java씀
ÕÕÀýÏÈ¿´ÏîÄ¿½á¹¹Í¼£º

pom.xml£¬ºÜ¼òµ¥£¬Ö»Óõ½ÁËLog4j¿â£º

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

log4j.properties£¬½«Log4jµÄÈÕÖ¾Êä³öµ½SocketAppender£¬ÒòΪ¹ÙÍøÊÇÕâô˵µÄ£º

log4j.rootLogger=INFO,console

# for package com.demo.elk, log would be sent to socket appender.
log4j.logger.com.demo.elk=DEBUG, socket

# appender socket
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.Port=4567
log4j.appender.socket.RemoteHost=centos2
log4j.appender.socket.layout=org.apache.log4j.PatternLayout
log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000

# appender console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n

×¢Ò⣺ÕâÀïµÄ¶Ë¿ÚºÅÐèÒª¸úLogstash¼àÌýµÄ¶Ë¿ÚºÅÒ»Ö£¬ÕâÀïÊÇ4567¡£

Application.java£¬Ê¹ÓÃLog4jµÄLOGGER´òÓ¡ÈÕÖ¾¼´¿É£º

package com.demo.elk;

import org.apache.log4j.Logger;

public class Application {
private static final Logger LOGGER = Logger.getLogger(Application.class);
public static void main(String[] args) throws Exception {
for (int i = 0; i < 10; i++) {
LOGGER.error("Info log [" + i + "].");
Thread.sleep(500);
}
}
}

ÓÃHead²å¼þ²é¿´ES״̬ºÍÄÚÈÝ

ÔËÐÐApplication.java£¬ÏÈ¿´¿´consoleµÄÊä³ö£¨µ±È»£¬Õâ¸öÊä³öÖ»ÊÇΪÁË×öÑéÖ¤£¬²»Êä³öµ½consoleÒ²¿ÉÒԵģ©£º

ÔÙÀ´¿´¿´ESµÄheadÒ³Ãæ£º

Çл»µ½Browser±êÇ©£º

µ¥»÷ijһ¸öÎĵµ£¨doc£©£¬Ôò»áչʾ¸ÃÎĵµµÄËùÓÐÐÅÏ¢£º

¿ÉÒÔ¿´µ½£¬³ýÁË»ù´¡µÄmessage×Ö¶ÎÊÇÎÒÃǵÄÈÕÖ¾ÄÚÈÝ£¬Logstash»¹ÎªÎÒÃÇÔö¼ÓÁËÐí¶à×ֶΡ£¶øÔÚhttps://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.htmlÖÐÒ²Ã÷ȷ˵Ã÷ÁËÕâÒ»µã£º

ÉÏÃæÊ¹ÓÃÁËESµÄHead²å¼þ¹Û²ìÁËES¼¯ÈºµÄ״̬ºÍÊý¾Ý£¬µ«ÕâÖ»ÊǸö¼òµ¥µÄÓÃÓÚ¸úES½»»¥µÄÒ³Ãæ¶øÒÑ£¬²¢²»ÄÜÉú³É±¨±í»òÕßͼ±íʲôµÄ£¬½ÓÏÂÀ´Ê¹ÓÃKibanaÀ´Ö´ÐÐËÑË÷²¢Éú³Éͼ±í¡£

Kibana

ÅäÖÃKibana:

tar -zxvf kibana-4.3.0-linux-x86.tar.gz
cd kibana-4.3.0-linux-x86
vi config/kibana.yml

ÐÞ¸ÄÒÔϼ¸ÏÓÉÓÚÊǵ¥»ú°æµÄ£¬Òò´ËhostµÄÖµÒ²¿ÉÒÔʹÓÃlocalhostÀ´´úÌæ£¬ÕâÀï½ö½ö×÷ΪÑÝʾ£©£º

server.port: 5601
server.host: ¡°centos2¡±
elasticsearch.url: http://centos2:9200
kibana.index: ¡°.kibana¡±

Æô¶¯kibana£º

./bin/kibana

ÓÃä¯ÀÀÆ÷´ò¿ª¸ÃµØÖ·£º

ΪÁ˺óÐøÊ¹ÓÃKibana£¬ÐèÒªÅäÖÃÖÁÉÙÒ»¸öIndexÃû×Ö»òÕßPattern£¬ËüÓÃÓÚÔÚ·ÖÎöʱȷ¶¨ESÖеÄIndex¡£ÕâÀïÎÒÊäÈë֮ǰÅäÖõÄIndexÃû×Öapplog£¬Kibana»á×Ô¶¯¼ÓÔØ¸ÃIndexÏÂdocµÄfield£¬²¢×Ô¶¯Ñ¡ÔñºÏÊʵÄfieldÓÃÓÚͼ±êÖеÄʱ¼ä×ֶΣº

µã»÷Createºó£¬¿ÉÒÔ¿´µ½×ó²àÔö¼ÓÁËÅäÖõÄIndexÃû×Ö£º

½ÓÏÂÀ´Çл»µ½Discover±êÇ©ÉÏ£¬×¢ÒâÓÒÉϽÇÊDzéѯµÄʱ¼ä·¶Î§£¬Èç¹ûûÓвéÕÒµ½Êý¾Ý£¬ÄÇôÄã¾Í¿ÉÄÜÐèÒªµ÷ÕûÕâ¸öʱ¼ä·¶Î§ÁË£¬ÕâÀïÎÒÑ¡ÔñToday£º

½ÓÏÂÀ´¾ÍÄÜ¿´µ½ESÖеÄÊý¾ÝÁË£º

Ö´ÐÐËÑË÷¿´¿´ÄØ£º

µã»÷Óұߵı£´æ°´Å¥£¬±£´æ¸Ã²éѯΪsearch_all_logs¡£½ÓÏÂÀ´È¥VisualizeÒ³Ãæ£¬µã»÷н¨Ò»¸öÖù״ͼ£¨Vertical Bar Chart£©£¬È»ºóÑ¡Ôñ¸Õ¸Õ±£´æµÄ²éѯsearch_all_logs£¬Ö®ºó£¬Kibana½«Éú³ÉÀàËÆÓÚÏÂͼµÄÖù״ͼ£¨Ö»ÓÐ10ÌõÈÕÖ¾£¬¶øÇÒÊÇÔÚͬһʱ¼ä¶ÎµÄ£¬±È½Ï³ó£¬µ«×ã¿ÉÒÔ˵Ã÷ÎÊÌâÁË£º) £©£º

Äã¿ÉÒÔÔÚ×ó±ßÉèÖÃͼÐεĸ÷Ïî²ÎÊý£¬µã»÷Apply Changes°´Å¥£¬ÓұߵÄͼÐν«±»¸üС£Í¬Àí£¬ÆäËûÀàÐ͵ÄͼÐζ¼¿ÉÒÔʵʱ¸üС£

µã»÷Óұߵı£´æ£¬±£´æ´Ëͼ£¬ÃüÃûΪsearch_all_logs_visual¡£½ÓÏÂÀ´Çл»µ½DashboardÒ³Ãæ£º

µ¥»÷н¨°´Å¥£¬Ñ¡Ôñ¸Õ¸Õ±£´æµÄsearch_all_logs_visualͼÐΣ¬Ãæ°åÉϽ«Õ¹Ê¾¸Ãͼ£º

Èç¹ûÓн϶àÊý¾Ý£¬ÎÒÃÇ¿ÉÒÔ¸ù¾ÝÒµÎñÐèÇóºÍ¹Ø×¢µãÔÚDashboardÒ³ÃæÌí¼Ó¶à¸öͼ±í£ºÖùÐÎͼ£¬ÕÛÏßͼ£¬µØÍ¼£¬±ýͼµÈµÈ¡£µ±È»£¬ÎÒÃÇ¿ÉÒÔÉèÖøüÐÂÆµÂÊ£¬ÈÃͼ±í×Ô¶¯¸üУº

Èç¹ûÉèÖõÄʱ¼ä¼ä¸ô¹»¶Ì£¬¾ÍºÜÇ÷½üÓÚʵʱ·ÖÎöÁË¡£

µ½ÕâÀELKƽ̨²¿ÊðºÍ»ù±¾µÄ²âÊÔÒÑÍê³É¡£

   
3656 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

itilÎå´óÁ÷³Ìͼ
ITILÁ÷³Ì¹ÜÀíÁù²½×ß
ʹÓÃITIL V3×÷SOAÖÎÀíµÄ»ùʯ
IT·þÎñ¹ÜÀíµÄʵ¼ùÓë×ܽá
½è¼øITIL¼Ü¹¹ÀíÄîÌáÉýÐÅÏ¢»¯
ITILÁ÷³Ì×ܽá


»ùÓÚITILµÄIT·þÎñ¹ÜÀí
ITILÈÏÖ¤
ITSM/ITIL»ù´¡
IT¹æ»®¹ÜÀí
ITÍâ°ü¹ÜÀí
IT³É±¾¹ÜÀí

ÖйúÒÆ¶¯Í¨ÐÅ ÍøÂç¹æ»®Óë¹ÜÀí
ijº½¿Õ¹«Ë¾ IT¹æ»®ÓëÆóÒµ¼Ü¹¹
ij½ðÈÚ¹«Ë¾ IT·þÎñ¹ÜÀí£¨ITIL V3£©
ÖйúÁªÍ¨¼¯ÍÅ ITÇ°ÑØÖªÊ¶¸ÅÊö
Öк£ÓÍ ÆóÒµIT¼Ü¹¹Éè¼Æ