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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ELK ¼Ü¹¹Ö® Elasticsearch ºÍ Kibana °²×°ÅäÖÃ
 
  3442  次浏览      29
 2018-5-23 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÎÄÕÂÖ÷Òª¼Ç¼ Elasticsearch ºÍ Kibana »·¾³µÄÅäÖã¬ÒÔ¼°²É¼¯·þÎñ×·×ÙÊý¾ÝµÄÏÔ³ö´¦Àí¡£

1. ELK Stack ¼ò½é

ELK ÊÇÈý¸ö¿ªÔ´Èí¼þµÄËõд£¬·Ö±ðΪ£ºElasticsearch¡¢Logstash ÒÔ¼° Kibana£¬ËüÃǶ¼ÊÇ¿ªÔ´Èí¼þ¡£²»¹ýÏÖÔÚ»¹ÐÂÔöÁËÒ»¸ö Beats£¬ËüÊÇÒ»¸öÇáÁ¿¼¶µÄÈÕÖ¾ÊÕ¼¯´¦Àí¹¤¾ß£¨Agent£©£¬Beats Õ¼ÓÃ×ÊÔ´ÉÙ£¬ÊʺÏÓÚÔÚ¸÷¸ö·þÎñÆ÷ÉÏËѼ¯ÈÕÖ¾ºó´«Ê䏸 Logstash£¬¹Ù·½Ò²ÍƼö´Ë¹¤¾ß£¬Ä¿Ç°ÓÉÓÚÔ­±¾µÄ ELK Stack ³ÉÔ±ÖмÓÈëÁË Beats ¹¤¾ßËùÒÔÒѸÄÃûΪ Elastic Stack¡£

¸ù¾Ý Google Trend µÄÐÅÏ¢ÏÔʾ£¬Elastic Stack ÒѾ­³ÉΪĿǰ×îÁ÷Ðеļ¯ÖÐʽÈÕÖ¾½â¾ö·½°¸¡£

Elastic Stack °üº¬£º

Elasticsearch ÊǸö¿ªÔ´·Ö²¼Ê½ËÑË÷ÒýÇæ£¬ÌṩËѼ¯¡¢·ÖÎö¡¢´æ´¢Êý¾ÝÈý´ó¹¦ÄÜ¡£ËüµÄÌØµãÓУº·Ö²¼Ê½£¬ÁãÅäÖã¬×Ô¶¯·¢ÏÖ£¬Ë÷Òý×Ô¶¯·ÖƬ£¬Ë÷Òý¸±±¾»úÖÆ£¬restful ·ç¸ñ½Ó¿Ú£¬¶àÊý¾ÝÔ´£¬×Ô¶¯ËÑË÷¸ºÔصȡ£Ïêϸ¿É²Î¿¼ Elasticsearch ȨÍþÖ¸ÄÏ

Logstash Ö÷ÒªÊÇÓÃÀ´ÈÕÖ¾µÄËѼ¯¡¢·ÖÎö¡¢¹ýÂËÈÕÖ¾µÄ¹¤¾ß£¬Ö§³Ö´óÁ¿µÄÊý¾Ý»ñÈ¡·½Ê½¡£Ò»°ã¹¤×÷·½Ê½Îª c/s ¼Ü¹¹£¬client ¶Ë°²×°ÔÚÐèÒªÊÕ¼¯ÈÕÖ¾µÄÖ÷»úÉÏ£¬server ¶Ë¸ºÔð½«ÊÕµ½µÄ¸÷½ÚµãÈÕÖ¾½øÐйýÂË¡¢Ð޸ĵȲÙ×÷ÔÚÒ»²¢·¢Íù Elasticsearch ÉÏÈ¥¡£

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

Beats ÔÚÕâÀïÊÇÒ»¸öÇáÁ¿¼¶ÈÕÖ¾²É¼¯Æ÷£¬Æäʵ Beats ¼Ò×åÓÐ 6 ¸ö³ÉÔ±£¬ÔçÆÚµÄ ELK ¼Ü¹¹ÖÐʹÓà Logstash ÊÕ¼¯¡¢½âÎöÈÕÖ¾£¬µ«ÊÇ Logstash ¶ÔÄÚ´æ¡¢cpu¡¢io µÈ×ÊÔ´ÏûºÄ±È½Ï¸ß¡£Ïà±È Logstash£¬Beats ËùռϵͳµÄ CPU ºÍÄڴ漸ºõ¿ÉÒÔºöÂÔ²»¼Æ¡£

ELK Stack £¨5.0°æ±¾Ö®ºó£©--> Elastic Stack == £¨ELK Stack + Beats£©¡£

Ŀǰ Beats °üº¬ÁùÖÖ¹¤¾ß£º

Packetbeat£º ÍøÂçÊý¾Ý£¨ÊÕ¼¯ÍøÂçÁ÷Á¿Êý¾Ý£©

Metricbeat£º Ö¸±ê£¨ÊÕ¼¯ÏµÍ³¡¢½ø³ÌºÍÎļþϵͳ¼¶±ðµÄ CPU ºÍÄÚ´æÊ¹ÓÃÇé¿öµÈÊý¾Ý£©

Filebeat£º ÈÕÖ¾Îļþ£¨ÊÕ¼¯ÎļþÊý¾Ý£©

Winlogbeat£º windows ʼþÈÕÖ¾£¨ÊÕ¼¯ Windows ʼþÈÕÖ¾Êý¾Ý£©

Auditbeat£ºÉó¼ÆÊý¾Ý£¨ÊÕ¼¯Éó¼ÆÈÕÖ¾£©

Heartbeat£ºÔËÐÐʱ¼ä¼à¿Ø£¨ÊÕ¼¯ÏµÍ³ÔËÐÐʱµÄÊý¾Ý£©

ELK ¼òµ¥¼Ü¹¹Í¼£º

2. »·¾³×¼±¸

·þÎñÆ÷»·¾³£ºCentos 7.0£¨Ä¿Ç°µ¥»ú£¬ºóÐøÔÙ²¿Êð¼¯Èº£©

Elasticsearch ºÍ Logstash ÐèÒª Java »·¾³£¬Elasticsearch ÍÆ¼öµÄ°æ±¾Îª Java 8£¬°²×°½Ì³Ì£ºÈ·¶¨Îȶ¨µÄ Spring Cloud Ïà¹Ø»·¾³°æ±¾

ÁíÍ⣬ÎÒÃÇÐèÒªÐÞ¸ÄÏ·þÎñÆ÷Ö÷»úÐÅÏ¢£º

[root@node1 ~]# vi /etc/hostname
node1
[root@node1 ~]# vi /etc/hosts
192.168.0.11 node1
127.0.0.1 node1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 node1 localhost localhost.localdomain local host6 localhost6.localdomain6

×¢Ò⣺ÎÒ֮ǰ°²×° Elasticsearch ºÍ Kibana ¶¼ÊÇ×îа汾£¨6.x£©£¬µ«ºÍ Spring Cloud ¼¯³ÉÓÐЩÎÊÌ⣬ËùÒԾͲÉÓÃÁË 5.x °æ±¾£¨¾ßÌå 5.6.9 °æ±¾£©

3. °²×° Elasticsearch

ÔËÐÐÒÔÏÂÃüÁ Elasticsearch ¹«¹² GPG ÃÜÔ¿µ¼Èë rpm£º

[root@node1 ~]# rpm --import https: // artifacts . elastic .co /GPG - KEY - elasticsearch

ÔÚ/etc/yum.repos.d/Ŀ¼ÖУ¬´´½¨Ò»¸öÃûΪelasticsearch.repoµÄÎļþ£¬Ìí¼ÓÏÂÃæÅäÖãº

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl = https: // artifacts . elastic . co / packages /5.x /yum
gpgcheck = 1
gpgkey = https: // artifacts.elastic.co /GPG - KEY - elasticsearch
enabled = 1
autorefresh = 1
type = rpm - md

Elasticsearch Ô´´´½¨Íê³ÉÖ®ºó£¬Í¨¹ý makecache ²é¿´Ô´ÊÇ·ñ¿ÉÓã¬È»ºóͨ¹ý yum °²×° Elasticsearch£º

[root@node1 ~] # yum makecache && yum install elasticsearch - y

ÐÞ¸ÄÅäÖã¨Æô¶¯µØÖ·ºÍ¶Ë¿Ú£©£º

[root@node1 ~]# vi / etc / elasticsearch / elasticsearch .yml
network.host: node1 # ĬÈÏlocalhost£¬×Ô¶¨ÒåΪip
http .port : 9200

Òª½« Elasticsearch ÅäÖÃΪÔÚϵͳÒýµ¼Ê±×Ô¶¯Æô¶¯£¬ÔËÐÐÒÔÏÂÃüÁ

[root@node1 ~]# sudo / bin /systemctl daemon - reload
[root@node1 ~]# sudo / bin /systemctl enable elasticsearch .service

Elasticsearch ¿ÉÒÔ°´ÈçÏ·½Ê½Æô¶¯ºÍÍ£Ö¹£º

[root@node1 ~]# sudo systemctl start elastic search .service
[root@node1 ~]# sudo systemctl stop elastic search .service

Áгö Elasticsearch ·þÎñµÄÈÕÖ¾£º

[root@node1 ~]# sudo journalctl --unit elastic search
-- Logs begin at Èý 2018-05-09 10:13:46 CEST, end at Èý 2018-05-09 10:53:53 CEST. --
5ÔÂ 09 10:53:43 node1 systemd [1]: [/ usr /lib / systemd / system / elasticsearch.service : 8 ] Unknown lvalue 'RuntimeDirectory' in section ' Service '
5ÔÂ 09 10:53:43 node1 systemd [1]: [/usr /lib /systemd /system / elasticsearch.service : 8 ] Unknown lvalue 'RuntimeDirectory' in section ' Service '
5ÔÂ 09 10:53:48 node1 systemd [1]: Starting Elastic search...
5ÔÂ 09 10:53:48 node1 systemd [1]: Started Elastic search.
5ÔÂ 09 10:53:48 node1 elasticsearch[2908]: which: no java in (/usr /local /sbin: /usr/ local/ bin:/ usr /sbin :/usr /bin )
5ÔÂ 09 10:53:48 node1 elasticsearch[2908]: could not find java; set JAVA_HOME or ensure java is in PATH
5ÔÂ 09 10:53:48 node1 systemd [1]: elasticsearch. service : main process exited, code = exited , status = 1 / FAILURE
5ÔÂ 09 10:53:48 node1 systemd [1]: Unit elastic search .service entered failed state.

³öÏÖÁË´íÎ󣬾ßÌåÐÅÏ¢ÊÇδÕÒµ½JAVA_HOME»·¾³±äÁ¿£¬µ«ÎÒÃÇÃ÷Ã÷ÒѾ­ÅäÖùýÁË¡£

½â¾ö·½Ê½£¨²Î¿¼×ÊÁÏ£ºhttps://segmentfault.com/q/1010000004715131£©£º

[root@node1 ~]# vi / etc / sysconfig / elastic search
JAVA _ HOME = /usr/ local /java

ÖØÐÂÆô¶¯£º

sudo systemctl restart elasticsearch .service

»òÕßͨ¹ýsystemctlÃüÁ²é¿´ Elasticsearch Æô¶¯×´Ì¬£º

[root@node1 ~]# systemctl status elasticsearch.service
elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/ systemd/system /elasticsearch. service ; enabled )
Active: active (running) since Ò» 2018- 05- 14 05:13:45 CEST; 4h 5min ago
Docs: http: // www.elastic.co
Process: 951 ExecStartPre= /usr/share /elasticsearch /bin / elasticsearch - systemd-pre-exec (code = exited, status = 0/SUCCESS)
Main PID: 953 (java)
CGroup: /system.slice /elasticsearch .service
©¸©¤ 953 /usr /local/java/bin/java - Xms2g - Xmx2g -XX: + UseConcMarkSweepGC - XX : CMSInitiatingO...
5ÔÂ 14 05:13:45 node1 systemd[1]: Started Elasticsearch.

·¢ÏÖ Elasticsearch ÒѾ­³É¹¦Æô¶¯¡£

²é¿´ Elasticsearch ÐÅÏ¢£º

[root@node1 ~]# curl - XGET 'http: // node1: 9200 / ?pretty '
{
"name" : "AKmrtMm",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "r7lG3UBXQ-uTLHInJxbOJA",
"version" : {
"number" : "5.6.9",
"build _ hash" : "877a590",
"build _ date" : "2018- 04- 12T16: 25:14.838Z",
"build _ snapshot" : false,
"lucene _ version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}

4. °²×° Kibana

ÔËÐÐÒÔÏÂÃüÁ Elasticsearch ¹«¹² GPG ÃÜÔ¿µ¼Èë rpm£º

[root@node1 ~]# rpm -- import https: //artifacts .elastic .co /GPG-KEY-elasticsearch

ÔÚ/etc/yum.repos.d/Ŀ¼ÖУ¬´´½¨Ò»¸öÃûΪkibana.repoµÄÎļþ£¬Ìí¼ÓÏÂÃæÅäÖãº

[kibana-5.x]
name = Kibana repository for 5.x packages
baseurl = https: //artifacts .elastic.co /packages / 5.x /yum
gpgcheck = 1
gpgkey = https://artifacts.elastic.co/GPG-KEY-elastic search
enabled = 1
autorefresh = 1
type = rpm - md

°²×° Kibana£º

[root@node1 ~]# yum makecache && yum install kibana - y

ÐÞ¸ÄÅäÖ㨵ØÖ·ºÍ¶Ë¿Ú£¬ÒÔ¼° Elasticsearch µÄµØÖ·£¬×¢Òâserver.hostÖ»ÄÜÌîд·þÎñÆ÷µÄ IP µØÖ·£©£º

[root@node1 ~]# vi /etc/ kibana / kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use.
server.port : 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "192.168.0.11"
# The Kibana server's name. This is used for display purposes.
server . name : "kibana - server"
# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url : "http: //node1:9200"
# ÅäÖÃkibanaµÄÈÕÖ¾Îļþ·¾¶£¬²»È»Ä¬ÈÏÊÇ messages Àï¼Ç¼ÈÕÖ¾
logging.dest: /var /log /kibana.log

´´½¨ÈÕÖ¾Îļþ£º

[root@node1 ~]# touch / var /log / kibana.log ; chmod 777 /var /log/ kibana.log

Òª½« Kibana ÅäÖÃΪÔÚϵͳÒýµ¼Ê±×Ô¶¯Æô¶¯£¬ÔËÐÐÒÔÏÂÃüÁ

[root@node1 ~]# sudo / bin / systemctl daemon - reload
[root@node1 ~]# sudo / bin / systemctl enable kibana .service

Kibana ¿ÉÒÔÈçÏÂÆô¶¯ºÍÍ£Ö¹

[root@node1 ~]# sudo systemctl start kibana . service
[root@node1 ~]# sudo systemctl stop kibana . service

²é¿´Æô¶¯ÈÕÖ¾£º

[root@node1 ~]# sudo journalctl -- unit kibana
5ÔÂ 09 11:14:48 node1 systemd [1]: Starting Kibana...
5ÔÂ 09 11:14:48 node1 systemd [1]: Started Kibana.

È»ºóä¯ÀÀÆ÷·ÃÎÊ£ºhttp://node1:5601

³õ´ÎʹÓÃʱ£¬»áÈÃÄãÅäÖÃÒ»¸öĬÈ쵀 index£¬Ò²¾ÍÊÇÄãÖÁÉÙÐèÒª¹ØÁªÒ»¸ö Elasticsearch ÀïµÄ Index£¬¿ÉÒÔʹÓà pattern ÕýÔòÆ¥Åä¡£

×¢Ò⣺Èç¹û Elasticsearch ÖÐûÓÐÊý¾ÝµÄ»°£¬ÄãÊÇÎÞ·¨´´½¨ Index µÄ¡£

Èç¹û Spring Cloud Sleuth Zipkin + Stream + RabbitMQ ÅäÖÃÕýÈ·µÄ»°£¨ÒÔºóÔÙÏêϸ˵Ã÷£©£¬·þÎñ×·×ÙµÄÊý¾Ý¾ÍÒѾ­´æ´¢ÔÚ Elasticsearch ÖÐÁË¡£

5. Kibana ʹÓÃ

´´½¨zipkin:*Ë÷Òý£¨*Æ¥ÅäºóÃæËùÓÐ×Ö·û£©£º

È»ºó¾Í¿ÉÒԲ鿴·þÎñ×·×ÙµÄÊý¾ÝÁË£º

Ò²¿ÉÒÔ´´½¨×Ô¶¨ÒåÒDZíÅÌ£º

6. Elasticsearch ÃüÁî

´´½¨Ë÷Òý£º

$ curl -XPUT 'http: // node1:9200 / twitter'

²é¿´ Index Ë÷ÒýÁÐ±í£º

$ curl -XGET http: //node1:9200/_ cat /indices
yellow open twitter k1KnzWyYRDeckjt7GASh8w 5 1 1 0 5.1kb 5.1kb
yellow open .kibana 8zJGQkq8TwC4s3JJLMX44g 1 1 1 0 4kb 4kb
yellow open student iZPqPcwrQbifGOfE9DQYvg 5 1 0 0 955b 955b

Ìí¼Ó Document Êý¾Ý£º

$ curl -XPUT 'http: //node1:9200/ twitter/ tweet / 1' - d '{
" user " : " kimchy ",
" post_date " : "2009- 11- 15T14:12:12 ",
"message" : " trying out Elastic Search "
} '

»ñÈ¡ Document Êý¾Ý£º

$ curl -XGET 'http: //node1:9200 /twitter /tweet /1'
{"_index" : "twitter","_ type":"tweet","_ id" : "1" ," _ version " :1 , "found" : true,"_ source " : {
"user" : "kimchy",
"post_date" : "2009- 11- 15T14 :12: 12",
"message" : "trying out Elastic Search"
}}%

²éѯzipkinË÷ÒýÏÂÃæµÄÊý¾Ý£º

$ curl - XGET 'http : // node1:9200 /zipkin:* /_ search'
   
3442 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ