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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¼¯ÖÐʽÈÕ־ϵͳ ELK ЭÒéÕ»Ïê½â
 
  1430  次浏览      27
 2020-1-6
 
±à¼­ÍƼö:
±¾ÎÄÖ÷ÒªÓÃÒ»¸öÏà¶Ô¼òµ¥µÄÀý×ÓÀ´²ûÊö ELK ЭÒéÕ»ÔÚ¼¯ÖÐʽÈÕÖ¾µÄ×÷ÓÃ,ÔÚʵ¼ÊµÄ¹¤×÷ÖУ¬ÆäʵËûÃǶ¼ÊÇ¿ÉÒÔÏà¶Ô×ÔÓÉ×éºÏ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚIBM£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

¼ò½é

ÔÚÎÒÃÇÈÕ³£Éú»îÖУ¬ÎÒÃǾ­³£ÐèÒª»Ø¹ËÒÔǰ·¢ÉúµÄһЩÊÂÇ飻»òÕߣ¬µ±³öÏÖÁËһЩÎÊÌâµÄʱºò£¬¿ÉÒÔ´ÓijЩµØ·½È¥²éÕÒÔ­Òò£¬Ñ°ÕÒ·¢ÉúÎÊÌâµÄºÛ¼£¡£Î޿ɱÜÃâÐèÒªÓõ½ÎÄ×ֵġ¢Í¼ÏñµÄµÈµÈ²»Í¬ÐÎʽµÄ¼Ç¼¡£ÓüÆËã»úµÄÊõÓï±í´ï£¬¾ÍÊÇ LOG£¬»òÈÕÖ¾¡£

ÈÕÖ¾£¬¶ÔÓÚÈκÎϵͳÀ´Ëµ¶¼ÊǼ°ÆäÖØÒªµÄ×é³É²¿·Ö¡£ÔÚ¼ÆËã»úϵͳÀïÃæ£¬¸üÊÇÈç´Ë¡£µ«ÊÇÓÉÓÚÏÖÔڵļÆËã»úϵͳ´ó¶à±È½Ï¸´ÔÓ£¬ºÜ¶àϵͳ¶¼²»ÊÇÔÚÒ»¸öµØ·½£¬ÉõÖÁ¶¼ÊÇ¿ç¹ú½çµÄ£»¼´Ê¹ÊÇÔÚÒ»¸öµØ·½µÄϵͳ£¬Ò²Óв»Í¬µÄÀ´Ô´£¬±ÈÈ磬²Ù×÷ϵͳ£¬Ó¦Ó÷þÎñ£¬ÒµÎñÂß¼­µÈµÈ¡£ËûÃǶ¼ÔÚ²»Í£²úÉú¸÷ÖÖ¸÷ÑùµÄÈÕÖ¾Êý¾Ý¡£¸ù¾Ý²»Íêȫͳ¼Æ£¬ÎÒÃÇÈ«ÇòÿÌì´óÔ¼Òª²úÉú 2EB£¨1018£©µÄÊý¾Ý¡£

Ãæ¶ÔÈç´Ëº£Á¿µÄÊý¾Ý£¬ÓÖÊÇ·Ö²¼ÔÚ¸÷¸ö²»Í¬µØ·½£¬Èç¹ûÎÒÃÇÐèҪȥ²éÕÒÒ»Ð©ÖØÒªµÄÐÅÏ¢£¬ÄѵÀ»¹ÊÇʹÓô«Í³µÄ·½·¨£¬È¥µÇ½µ½Ò»Ì¨Ì¨»úÆ÷Éϲ鿴£¿¿´À´´«Í³µÄ¹¤¾ßºÍ·½·¨ÒѾ­ÏԵ÷dz£±¿×¾ºÍµÍЧÁË¡£ÓÚÊÇ£¬Ò»Ð©´ÏÃ÷È˾ÍÌá³öÁ˽¨Á¢Ò»Ì×¼¯ÖÐʽµÄ·½·¨£¬°Ñ²»Í¬À´Ô´µÄÊý¾Ý¼¯ÖÐÕûºÏµ½Ò»¸öµØ·½¡£

Ò»¸öÍêÕûµÄ¼¯ÖÐʽÈÕ־ϵͳ£¬ÊÇÀë²»¿ªÒÔϼ¸¸öÖ÷ÒªÌØµãµÄ¡£

ÊÕ¼¯£­Äܹ»²É¼¯¶àÖÖÀ´Ô´µÄÈÕÖ¾Êý¾Ý

´«Ê䣭Äܹ»Îȶ¨µÄ°ÑÈÕÖ¾Êý¾Ý´«Êäµ½ÖÐÑëϵͳ

´æ´¢£­ÈçºÎ´æ´¢ÈÕÖ¾Êý¾Ý

·ÖÎö£­¿ÉÒÔÖ§³Ö UI ·ÖÎö

¾¯¸æ£­Äܹ»Ìṩ´íÎ󱨸棬¼à¿Ø»úÖÆ

Êг¡ÉϵIJúÆ·

»ùÓÚÉÏÊö˼·£¬ÓÚÊÇÐí¶à²úÆ·»ò·½°¸¾ÍÓ¦Ô˶øÉúÁË¡£±ÈÈ磬¼òµ¥µÄ Rsyslog£¬Syslog-ng£»ÉÌÒµ»¯µÄ Splunk £»¿ªÔ´µÄÓÐ FaceBook ¹«Ë¾µÄ Scribe£¬Apache µÄ Chukwa£¬Linkedin µÄ Kafak£¬Cloudera µÄ Fluentd£¬ELK µÈµÈ¡£

ÔÚÉÏÊö²úÆ·ÖУ¬Splunk ÊÇÒ»¿î·Ç³£ÓÅÐãµÄ²úÆ·£¬µ«ÊÇËüÊÇÉÌÒµ²úÆ·£¬¼Û¸ñ°º¹ó£¬ÈÃÐí¶àÈËÍû¶øÈ´²½¡£

Ö±µ½ ELK µÄ³öÏÖ£¬Èôó¼ÒÓÖ¶àÁËÒ»ÖÖÑ¡Ôñ¡£Ïà¶ÔÓÚÆäËû¼¸¿î¿ªÔ´Èí¼þÀ´Ëµ£¬±¾ÎÄÖØµã½éÉÜ ELK¡£

ELK ЭÒéÕ»½éÉܼ°Ìåϵ½á¹¹

ELK Æäʵ²¢²»ÊÇÒ»¿îÈí¼þ£¬¶øÊÇÒ»ÕûÌ×½â¾ö·½°¸£¬ÊÇÈý¸öÈí¼þ²úÆ·µÄÊ××ÖĸËõд£¬Elasticsearch£¬Logstash ºÍ Kibana¡£ÕâÈý¿îÈí¼þ¶¼ÊÇ¿ªÔ´Èí¼þ£¬Í¨³£ÊÇÅäºÏʹÓ㬶øÇÒÓÖÏȺó¹éÓÚ Elastic.co ¹«Ë¾ÃûÏ£¬¹Ê±»¼ò³ÆÎª ELK ЭÒéÕ»£¬¼ûͼ 1¡£

ͼ 1.ELK ЭÒéÕ»

Elasticsearch

Elasticsearch ÊÇÒ»¸öʵʱµÄ·Ö²¼Ê½ËÑË÷ºÍ·ÖÎöÒýÇæ£¬Ëü¿ÉÒÔÓÃÓÚÈ«ÎÄËÑË÷£¬½á¹¹»¯ËÑË÷ÒÔ¼°·ÖÎö¡£ËüÊÇÒ»¸ö½¨Á¢ÔÚÈ«ÎÄËÑË÷ÒýÇæ Apache Lucene »ù´¡ÉϵÄËÑË÷ÒýÇæ£¬Ê¹Óà Java ÓïÑÔ±àд¡£Ä¿Ç°£¬×îеİ汾ÊÇ 2.1.0¡£

Ö÷ÒªÌØµã

ʵʱ·ÖÎö

·Ö²¼Ê½ÊµÊ±Îļþ´æ´¢£¬²¢½«Ã¿Ò»¸ö×ֶζ¼±àÈëË÷Òý

Îĵµµ¼Ïò£¬ËùÓеĶÔÏóÈ«²¿ÊÇÎĵµ

¸ß¿ÉÓÃÐÔ£¬Ò×À©Õ¹£¬Ö§³Ö¼¯Èº£¨Cluster£©¡¢·ÖƬºÍ¸´ÖÆ£¨Shards ºÍ Replicas£©¡£¼ûͼ 2 ºÍͼ 3

½Ó¿ÚÓѺã¬Ö§³Ö JSON

ͼ 2. ¼¯Èº

ͼ 3. ·ÖƬºÍ¸´ÖÆ

Logstash

Logstash ÊÇÒ»¸ö¾ßÓÐʵʱÇþµÀÄÜÁ¦µÄÊý¾ÝÊÕ¼¯ÒýÇæ¡£Ê¹Óà JRuby ÓïÑÔ±àд¡£Æä×÷ÕßÊÇÊÀ½çÖøÃûµÄÔËά¹¤³ÌʦÇǵ¤Î÷Èû (JordanSissel)¡£Ä¿Ç°×îеİ汾ÊÇ 2.1.1¡£

Ö÷ÒªÌØµã

¼¸ºõ¿ÉÒÔ·ÃÎÊÈκÎÊý¾Ý

¿ÉÒԺͶàÖÖÍⲿӦÓýáºÏ

Ö§³Öµ¯ÐÔÀ©Õ¹

ËüÓÉÈý¸öÖ÷Òª²¿·Ö×é³É£¬¼ûͼ 4£º

Shipper£­·¢ËÍÈÕÖ¾Êý¾Ý

Broker£­ÊÕ¼¯Êý¾Ý£¬È±Ê¡ÄÚÖà Redis

Indexer£­Êý¾ÝдÈë

ͼ 4.Logstash »ù±¾×é³É

Kibana

Kibana ÊÇÒ»¿î»ùÓÚ Apache ¿ªÔ´Ð­Ò飬ʹÓà JavaScript ÓïÑÔ±àд£¬Îª Elasticsearch Ìṩ·ÖÎöºÍ¿ÉÊÓ»¯µÄ Web ƽ̨¡£Ëü¿ÉÒÔÔÚ Elasticsearch µÄË÷ÒýÖвéÕÒ£¬½»»¥Êý¾Ý£¬²¢Éú³É¸÷ÖÖά¶ÈµÄ±íͼ¡£Ä¿Ç°×îеİ汾ÊÇ 4.3£¬¼ò³Æ Kibana 4¡£

ELK ЭÒéÕ»Ìåϵ½á¹¹

ÍêÕûµÄ ELK ЭÒéÕ»Ìåϵ½á¹¹¼ûͼ 5¡£»ù±¾Á÷³ÌÊÇ Shipper ¸ºÔð´Ó¸÷ÖÖÊý¾ÝÔ´Àï²É¼¯Êý¾Ý£¬È»ºó·¢Ë͵½ Broker£¬Indexer ½«´æ·ÅÔÚ Broker ÖеÄÊý¾ÝÔÙдÈë Elasticsearch£¬Elasticsearch ¶ÔÕâЩÊý¾Ý´´½¨Ë÷Òý£¬È»ºóÓÉ Kibana ¶ÔÆä½øÐи÷ÖÖ·ÖÎö²¢ÒÔͼ±íµÄÐÎʽչʾ¡£

ͼ 5.ELK ЭÒéÕ»Ìåϵ½á¹¹

ELK Èý¿îÈí¼þÖ®¼ä»¥ÏàÅäºÏʹÓã¬ÍêÃÀÏνӣ¬¸ßЧµÄÂú×ãÁ˺ܶೡºÏµÄÓ¦Ó㬲¢ÇÒ±»ºÜ¶àÓû§Ëù²ÉÄÉ£¬ÖîÈç·͸É磬Á³Ê飨Facebook£©£¬StackOverFlow µÈµÈ¡£

ELK µÄ°²×°¼°ÅäÖÃ

ÕâÒ»²¿·Ö£¬ÎÒ½«ÃèÊöÒ»ÏÂÈçºÎ°²×°ÅäÖà ELK ЭÒéÕ»¡£

ѡȡµÄʵÑéÆ½Ì¨Îª

Ubuntu 14.04

Centos 7.1

ÆäÖÐÓõ½µÄÈí¼þÈçÏÂ

Elasticsearch ʹÓõÄÊÇ 2.1.0

Logstash ʹÓõÄÊÇ 2.1.1

Kibana ʹÓõÄÊÇ 4.3.0

³ý´ËÖ®Í⣬»¹ÐèÒªÓõ½ÒÔÏÂÈí¼þ£¬Nginx£¬Logstash-forwarder ÒÔ¼° JDK¡£

ʵÑéϵͳ¼Ü¹¹¼ûͼ 6¡£

ͼ 6. ʵÑéϵͳ¼Ü¹¹

ÖµµÃ×¢ÒâµÄÊÇ£¬ÔÚÎÒÃǵÄʵÑéÖУ¬Ê¹ÓÃÁË Nginx µÄ·´Ïò´úÀí£¬Ê¹µÃÓû§¿ÉÒÔ´ÓÍⲿ·ÃÎʵ½ Kibana£¬²¢ÇÒËü±¾Éí¾ßÓиºÔؾùºâµÄ×÷Óã¬Ò²Äܹ»Ìá¸ßÐÔÄÜ¡£

ÌØ±ð»¹ÌᵽһϠLogstash-forwarder£¬ÕâÊÇÒ»¿îʹÓà Go ÓïÑÔ±àдµÄÈÕÖ¾´«Ê乤¾ß¡£ÓÉÓÚ Logstash ÊÇʹÓà Java À´ÔËÐУ¬ÎªÁËÌáÉýÍøÂç´«ÊäЧÂÊ£¬ÎÒÃDz¢²»ÔÚ¿Í»§ÏµÍ³ÉÏÃæÊ¹Óà Logstash À´´«ÊäÊý¾Ý¡£Õâ¿îÈí¼þ¾ÍÊÇÔ­À´µÄ Lumberjack£¬½ñºóÂýÂý½«±» Elastic.co ¹«Ë¾µÄÁíÍâÒ»¿î²úÆ· Beat ÎüÊպϲ¢µ½ Filebeat ÖУ¬Õâ¸ö³¬³ö±¾ÎÄÐðÊöµÄ·¶³ë£¬¾Í²»ÔÚÕâÀïÏêϸÌÖÂÛÁË¡£

¾ßÌå°²×°¹ý³ÌÈçÏÂ

²½Öè 1£¬°²×° JDK

²½Öè 2£¬°²×° Elasticsearch

²½Öè 3£¬°²×° Kibana

²½Öè 4£¬°²×° Nginx

²½Öè 5£¬°²×° Logstash

²½Öè 6£¬ÅäÖà Logstash

²½Öè 7£¬°²×° Logstash-forwarder

²½Öè 8£¬×îÖÕÑéÖ¤

°²×°Ç°µÄ×¼±¸

Á½Ì¨ 64 λÐéÄâ»ú£¬²Ù×÷ϵͳÊÇ Ubuntu 14.04£¬2 CPU£¬4G Äڴ棬30G Ó²ÅÌ

Á½Ì¨ 64 λÐéÄâ»ú£¬²Ù×÷ϵͳÊÇ CentOS 7.1£¬2 CPU£¬4G Äڴ棬30G Ó²ÅÌ

´´½¨Óû§ elk ºÍ×é elk£¬ÒÔÏÂËùÓеݲװ¾ùÓÉÕâ¸öÓû§²Ù×÷£¬²¢ÊÚÓè sudo ȨÏÞ

Èç¹ûÊÇ CentOS£¬»¹ÐèÒªÅäÖùٷ½ YUM Ô´£¬¿ÉÒÔ·ÃÎÊ CentOS Èí¼þ°ü

×¢Ò⣺ÒÔÏÂËùÓвÙ×÷¶¼ÊÇÔÚÁ½¸öƽ̨ÉÏÍê³É¡£

²½Öè 1£¬°²×° JDK

Elasticsearch ÒªÇóÖÁÉÙ Java 7¡£Ò»°ãÍÆ¼öʹÓà Oracle JDK 1.8 »òÕß OpenJDK 1.8¡£ÎÒÃÇÕâÀïʹÓà OpenJDK 1.8¡£

Ubuntu 14.04

¼ÓÈë Java Èí¼þÔ´£¨Repository£©

$ sudo add-apt-repository ppa:openjdk-r/ppa

¸üÐÂϵͳ²¢°²×° JDK

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

ÑéÖ¤ Java

$ java -version
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

CentOS 7.1

ÅäÖÃ YUM Ô´

$ cd /etc/yum.repos.d
$ sudo vi centos.repo

¼ÓÈëÒÔÏÂÄÚÈÝ

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=
$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever
/os/$basearch/ gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates [updates] name=CentOS-$releasever
-Updates mirrorlist=http://mirrorlist.centos.org/?release=
$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever
/updates/$basearch/ gpgcheck=1
gpgkey=<a href="../../../../../etc/pki/rpm-gpg/RPM-GPG
-KEY-CentOS-7"><code>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7</code></a>

°²×° JDK

$ sudo yum install java-1.8.0-openjdk

ÑéÖ¤ Java

$ java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

²½Öè 2£¬°²×° Elasticsearch

Ubuntu 14.04

ÏÂÔØ Elasticsearch Èí¼þ

$ wget https://download.elasticsearch.org/elasticsearch/
release/org/elasticsearch/distribution/tar/elasticsearch
/2.1.0/elasticsearch-2.1.0.tar.gz

½âѹ

$ tar xzvf elasticsearch-2.1.0.tar.gz

ÎļþĿ¼½á¹¹ÈçÏ£º

$ pwd
/home/elk/elasticsearch-2.1.0
$ ls
bin config lib LICENSE.txt NOTICE.txt README.textile

ÐÞ¸ÄÅäÖÃÎļþ

$ cd config
$ vi elasticsearch.yml

ÕÒµ½ # network.host Ò»ÐУ¬Ð޸ijÉÒÔÏ£º

network.host: localhost

Æô¶¯ elasticsearch

$ cd ../bin
$ ./elasticsearch

ÑéÖ¤ elasticsearch

$ curl 'localhost:9200/'
{
"name" : "Surge",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.1.0",
"build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87",
"build_timestamp" : "2015-11-18T22:40:03Z",
"build_snapshot" : false,
"lucene_version" : "5.3.1"
},
"tagline" : "You Know, for Search"
}

CentOS 7.1

²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖÂ

²½Öè 3£¬°²×° Kibana

Ubuntu 14.04

ÏÂÔØ Kibana °²×°Èí¼þ

$ wget https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz

½âѹ

$ tar xzvf kibana-4.3.0-linux-x64.tar.gz

ÎļþĿ¼½á¹¹ÈçÏ£º

$ pwd
/home/elk/kibana-4.3.0-linux-x64
$ ls
bin config installedPlugins LICENSE.txt node node_modules optimize
package.json README.txt src webpackShims

ÐÞ¸ÄÅäÖÃÎļþ

$ cd config
$ vi kibana.yml

ÕÒµ½ # server.host£¬Ð޸ijÉÒÔÏ£º

server.host:¡°localhost¡±

Æô¶¯ Kibana

$ cd ../bin
$ ./kibana
[¡­]
log [07:50:29.926] [info][listening] Server running at http://localhost:5601
[¡­]

ÑéÖ¤ Kibana

ÓÉÓÚÎÒÃÇÊÇÅäÖÃÔÚ localhost£¬ËùÒÔÊÇÎÞ·¨Ö±½Ó·ÃÎÊ Web Ò³ÃæµÄ¡£

¿ÉÒÔʹÓà netstat À´¼ì²éȱʡ¶Ë¿Ú 5601£¬»òÕßʹÓà curl£º

$ curl localhost:5601
<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';

var hash = window.location.hash;
if (hash.length) {
window.location = hashRoute + hash;
} else {
window.location = defaultRoute;
}</script>

CentOS 7.1

²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖ¡£

²½Öè 4£¬°²×° Nginx

Nginx ÌṩÁË·´Ïò´úÀí·þÎñ£¬¿ÉÒÔʹÍâÃæµÄÇëÇó±»·¢Ë͵½ÄÚ²¿µÄÓ¦ÓÃÉÏ¡£

Ubuntu 14.04

°²×°Èí¼þ

$ sudo apt-get install nginx apache2-utils

ÐÞ¸Ä Nginx ÅäÖÃÎļþ

$ sudo vi /etc/nginx/sites-available/default

ÕÒµ½ server_name£¬Ð޸ijÉÕýÈ·µÄÖµ¡£»òÕßʹÓà IP£¬»òÕßʹÓà FQDN¡£

È»ºóÔÚ¼ÓÈëÏÂÃæÒ»¶ÎÄÚÈÝ£º

server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
£ý
}

×¢Ò⣺½¨ÒéʹÓà IP¡£

ÖØÆô Nginx ·þÎñ

$ sudo service nginx restart

ÑéÖ¤·ÃÎÊ

http://FQDN »òÕß http://IP

CentOS 7.1

ÅäÖÃ Nginx ¹Ù·½ yum Ô´

$ sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

°²×°Èí¼þ

$ sudo yum install nginx httpd-tools

ÐÞ¸Ä Nginx ÅäÖÃÎļþ

$ sudo vi /etc/nginx/nginx.conf

¼ì²éÊÇ·ñ http ¿é£¨http{...}£©º¬ÓÐÏÂÃæÕâÒ»ÐУº

include /etc/nginx/conf.d/*conf

Ϊ Kibana ´´½¨Ò»¸öÅäÖÃÎļþ

$ sudo vi /etc/nginx/conf.d/kibana.conf

¼ÓÈëÒÔÏÂÕâÒ»¶ÎÄÚÈÝ£º

server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
£ý

×¢Ò⣺½¨ÒéʹÓà IP¡£

Æô¶¯ Nginx ·þÎñ

$ sudo systemctl enable nginx
$ sudo systemctl start nginx

ÑéÖ¤·ÃÎÊ

http://FQDN »òÕß http://IP

²½Öè 5£¬°²×° Logstash

Ubuntu 14.04

ÏÂÔØ Logstash °²×°Èí¼þ

$ wget https://download.elastic.co/logstash/logstash/logstash-2.1.1.tar.gz

½âѹ

$ tar xzvf logstash-2.1.1.tar.gz

ÎļþĿ¼½á¹¹ÈçÏ£º

$ pwd
/home/elk/logstash-2.1.1
$ ls
bin CHANGELOG.md CONTRIBUTORS Gemfile Gemfile.jruby-1.9.lock lib LICENSE NOTICE.TXT vendor

ÑéÖ¤ Logstash

$ cd bin
$ ./logstash -e 'input { stdin { } } output { stdout {} }'
Settings: Default filter workers: 1
Logstash startup completed

ÏÔʾÈçÏ£º

hello elk stack
2015-12-14T01:17:24.104Z 0.0.0.0 hello elk stack

˵Ã÷ Logstash ÒѾ­¿ÉÒÔÕý³£¹¤×÷ÁË¡£°´CTRL-D Í˳ö

CentOS 7.1

²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖ¡£

²½Öè 6£¬ÅäÖà Logstash

ÎÒÃÇÐèÒªÅäÖà Logstash ÒÔÖ¸Ã÷´ÓÄÄÀï¶ÁÈ¡Êý¾Ý£¬ÏòÄÄÀïÊä³öÊý¾Ý¡£Õâ¸ö¹ý³ÌÎÒÃdzÆÖ®Îª¶¨Òå Logstash ¹ÜµÀ£¨Logstash Pipeline£©¡£

ͨ³£Ò»¸ö¹ÜµÀÐèÒª°üÀ¨±ØÐëµÄÊäÈ루input£©£¬Êä³ö£¨output£©£¬ºÍÒ»¸ö¿ÉÑ¡ÏîÄ¿ Filter¡£¼ûͼ 7¡£

ͼ 7.Logstash ¹ÜµÀ½á¹¹Ê¾Òâ

±ê×¼µÄ¹ÜµÀÅäÖÃÎļþ¸ñʽÈçÏ£º

# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input {
}
# The filter part of this file is commented out to indicate that it is
# optional.
#filter {
#}
output {
}

ÿһ¸öÊäÈë/Êä³ö¿éÀïÃæ¶¼¿ÉÒÔ°üº¬¶à¸öÔ´¡£Filter ÊǶ¨ÒåÈçºÎ°´ÕÕÓû§Ö¸¶¨µÄ¸ñʽдÊý¾Ý¡£

ÓÉÓÚÎÒÃÇÕâ´ÎÊÇʹÓà logstash-forwarder ´Ó¿Í»§»úÏò·þÎñÆ÷À´´«ÊäÊý¾Ý£¬×÷ΪÊäÈëÊý¾ÝÔ´¡£ËùÒÔ£¬ÎÒÃÇÊ×ÏÈÐèÒªÅäÖà SSL Ö¤Ê飨Certification£©¡£ÓÃÀ´ÔÚ¿Í»§»úºÍ·þÎñÆ÷Ö®¼äÑéÖ¤Éí·Ý¡£

Ubuntu 14.04

ÅäÖÃ SSL

$ sudo mkdir -p /etc/pki/tls/certs etc/pki/tls/private
$ sudo vi /etc/ssl/openssl.cnf

ÕÒµ½ [v3_ca] ¶Î£¬Ìí¼ÓÏÂÃæÒ»ÐУ¬±£´æÍ˳ö¡£

subjectAltName = IP: logstash_server_ip

Ö´ÐÐÏÂÃæÃüÁ

$ cd /etc/pki/tls
$ sudo openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout
private/logstash-forwarder.key -out certs/logstash-forwarder.crt

ÕâÀï²úÉúµÄ logstash-forwarder.crt Îļþ»áÔÚÏÂÒ»½Ú°²×°ÅäÖà Logstash-forwarder µÄʱºòʹÓõ½¡£

ÅäÖà Logstash ¹ÜµÀÎļþ

$ cd /home/elk/logstash-2.1.1
$ mkdir conf
$ vi simple.conf

Ìí¼ÓÒÔÏÂÄÚÈÝ£º

input {
lumberjack {
port => 5043
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}

Æô¶¯ Logstsh

$ cd /home/elk/logstash-2.1.1/bin
$ ./logstash -f ../conf/simple.conf

CentOS 7.1

ÔÚ CentOS 7.1 ÉÏÅäÖà Logstash£¬Ö»ÓÐÒ»²½ÅäÖà SSL ÊÇÉÔ΢Óе㲻ͬ£¬ÆäËûÈ«²¿Ò»Ñù¡£

$ sudo vi /etc/pki/tls/openssl.cnf

ÕÒµ½ [v3_ca] ¶Î£¬Ìí¼ÓÏÂÃæÒ»ÐУ¬±£´æÍ˳ö¡£

subjectAltName = IP: logstash_server_ip

$ cd /etc/pki/tls
$ sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey
rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

ÕâÀï²úÉúµÄ logstash-forwarder.crt Îļþ»áÔÚÏÂÒ»½Ú°²×°ÅäÖà Logstash-forwarder µÄʱºòʹÓõ½¡£

²½Öè 7£¬°²×° Logstash-forwarder

×¢Ò⣺Logstash-forwarder Ò²ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬×îÔçÊÇÓÉ lumberjack ¸ÄÃû¶øÀ´¡£ÔÚ×÷ÕßдÕâÆªÎÄÕµÄʱºò£¬±»ÎüÊպϲ¢µ½ÁË Elastic.co ¹«Ë¾µÄÁíÍâÒ»¸ö²úÆ· Beat ÖÐµÄ FileBeat¡£Èç¹ûÊÇÓà FileBeat£¬ÅäÖÃÉÔ΢ÓÐЩ²»Ò»Ñù£¬¾ßÌåÐèҪȥ²Î¿¼¹ÙÍø¡£

Ubuntu14.04

°²×° Logstash-forwarder Èí¼þ

×¢Ò⣺Logstash-forwarder Êǰ²×°ÔÚÁíÍâһ̨»úÆ÷ÉÏ¡£ÓÃÀ´Ä£Äâ¿Í»§»ú´«ÊäÊý¾Ýµ½ Logstash ·þÎñÆ÷¡£

ÅäÖÃ Logstash-forwarder °²×°Ô´

Ö´ÐÐÒÔÏÂÃüÁ

$ echo 'deb http://packages.elastic.co/logstashforwarder/debian
stable main' | sudo tee /etc/apt/sources.list.d/logstashforwarder.list

°²×°Èí¼þ°ü

$ sudo apt-get update
$ sudo apt-get install Logstash-forwarder

ÅäÖÃ SSL

$ sudo mkdir -p /etc/pki/tls/certs

°ÑÔÚ²½ÖèÁùÖÐÔÚ Logstash ·þÎñÆ÷ÉϲúÉúµÄ ssl Ö¤ÊéÎļþ¿½±´µ½¸Õ¸Õ´´½¨³öÀ´µÄĿ¼Ï£º

$ sudo scp user@logstash_server:/etc/pki/tls/certs/logstash_forwarder
.crt /etc/pki/tls/certs/

ÅäÖÃ Logstash-forwarder

$ sudo vi /etc/logstash-forwarder.conf

ÔÚ network ¶Î£¨"network": {£©£¬ÐÞ¸ÄÈçÏ£º

"servers": [ "logstash_server_private_address:5043" ],
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",
"timeout": 15

ÔÚ files ¶Î£¨"files": [£©£¬ÐÞ¸ÄÈçÏ£º

{
"paths": [
"/var/log/syslog",
"/var/log/auth.log"
],
"fields": { "type": "syslog" }
}

Æô¶¯ Logstash-forwarder

$ sudo service logstash-forwarder start

ÑéÖ¤ Logstash-forwarder

$ sudo service logstash-forwarder status
logstash-forwarder is running

Èç¹ûÓдíÎó£¬ÔòÐèҪȥ/var/log/logstash-forwarder Ŀ¼ÏÂÃæ¼ì²é¡£

CentOS 7.1

ÅäÖÃ Logstash-forwarder °²×°Ô´

Ö´ÐÐÒÔÏÂÃüÁ

$ sudo rpm --import http://packages.elastic.co/
GPG-KEY-elasticsearch $ sudo vi /etc/yum.repos.d/logstash-forwarder.repo

¼ÓÈëÒÔÏÂÄÚÈÝ£º

[logstash-forwarder]
name=logstash-forwarder repository
baseurl=http://packages.elastic.co/logstashforwarder
/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

´æÅÌÍ˳ö¡£

°²×°Èí¼þ°ü

$ sudo yum -y install logstash-forwarder

Ê£ÓಽÖèºÍÉÏÊöÔÚ Ubuntu 14.04 ÉÏÃæµÄ×ö·¨ÍêȫһÑù¡£

²½Öè 8£¬×îºóÑéÖ¤

ÔÚÇ°Ãæ°²×° Kibana µÄʱºò£¬Ôø¾­ÓйýÑéÖ¤¡£²»¹ý£¬µ±Ê±Ã»ÓÐÊý¾Ý£¬´ò¿ª Web Ò³ÃæµÄʱºò£¬½«ÈçÏÂËùʾ£º

ͼ 8. ÎÞÊý¾Ý³õÊ¼Ò³Ãæ

ÏÖÔÚ£¬ÓÉÓÚ logstash-forwarder ÒѾ­¿ªÊ¼´«ÊäÊý¾ÝÁË£¬Ôٴδò¿ª Web Ò³Ãæ£¬½«ÈçÏÂËùʾ£º

ͼ 9. ÅäÖÃË÷ÒýÒ³Ãæ

µã»÷´´½¨°´Å¥£¨Create£©£¬ÔÚÑ¡Ôñ Discover£¬¿ÉÒÔ¿´µ½ÈçÏ»­Ã棺

ͼ 10. Êý¾ÝÕ¹Ê¾Ò³Ãæ

ÖÁ´Ë£¬ËùÓв¿¼þµÄ¹¤×÷¶¼¿ÉÒÔÕý³£Ê¹ÓÃÁË¡£¹ØÓÚÈçºÎ¾ßÌåʹÓà Kibana ¾Í²»ÔÚ±¾ÎÄÖмÓÒÔÃèÊöÁË£¬ÓÐÐËȤµÄͬѧ¿ÉÒԲο¼¹ÙÍø¡£

½áÊøÓï

ELK ЭÒéÕ»¿ÉÒԺܷ½±ãµÄÔÚ´óÐÍÉú²úϵͳÖÐÀ©³ä¼¯ÈºÒÔÌá¸ßÐÔÄÜ£¬±ÈÈ磬ʹÓöà¸öʵÀýÀ´Ôö¼Ó Logstash µÄдÈëÄÜÁ¦£»Èç¹ûµ¥¸ö½ÚµãµÄ Elasticsearch Âú×ã²»Á˶ÁÈ¡£¬»¹¿ÉÒÔ²ÉÓà AMQP ¼¼ÊõÀ´»º³å£¬µÈµÈ¡£ÖîÈç´ËÀàµÄ»°Ì⣬ϣÍûÓлú»áÔÚÒÔºóµÄÎÄÕÂÖÐÌÖÂÛ¡£

   
1430 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

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